旗下產(chǎn)業(yè): A產(chǎn)業(yè)/?A實(shí)習(xí)/?A計(jì)劃
全國(guó)統(tǒng)一咨詢(xún)熱線(xiàn):010-5367 2995
首頁(yè) > 熱門(mén)文章 > 大數(shù)據(jù)分析 > 大數(shù)據(jù)分析Python有哪些計(jì)數(shù)器類(lèi)和概率質(zhì)量函數(shù)

大數(shù)據(jù)分析Python有哪些計(jì)數(shù)器類(lèi)和概率質(zhì)量函數(shù)

時(shí)間:2020-10-21來(lái)源:m.5wd995.cn點(diǎn)擊量:作者:Sissi
時(shí)間:2020-10-21點(diǎn)擊量:作者:Sissi



  Python Counter類(lèi)
 

  Python中的Counter類(lèi)是collections模塊的一部分。計(jì)數(shù)器提供了一種快速的方法來(lái)計(jì)算列表中存在的唯一項(xiàng)的數(shù)量。Counter類(lèi)也可以擴(kuò)展為表示概率質(zhì)量函數(shù)和貝葉斯假設(shè)組。計(jì)數(shù)器是從值到其頻率的映射。如果使用字符串初始化計(jì)數(shù)器,則會(huì)得到每個(gè)字母到它出現(xiàn)的次數(shù)的映射。如果兩個(gè)單詞是字謎,它們會(huì)產(chǎn)生相等的計(jì)數(shù)器,因此您可以使用Counters在線(xiàn)性時(shí)間內(nèi)測(cè)試字謎。

大數(shù)據(jù)分析Python有哪些計(jì)數(shù)器類(lèi)和概率質(zhì)量函數(shù)
 

  多集
 

  計(jì)數(shù)器是多集的自然表示,多集是元素可以多次出現(xiàn)的集合。您可以使用is_subset之類(lèi)的集合操作來(lái)擴(kuò)展Counter:您可以is_subset在Scrabble之類(lèi)的游戲中使用它來(lái)查看給定的一組圖塊是否可用于拼寫(xiě)給定的單詞。

大數(shù)據(jù)分析Python有哪些計(jì)數(shù)器類(lèi)和概率質(zhì)量函數(shù)
 

  概率質(zhì)量函數(shù)
 

  您還可以擴(kuò)展“計(jì)數(shù)器”以表示概率質(zhì)量函數(shù)(PMF)。normalize計(jì)算頻率的總和并進(jìn)行除法,得到加到1的概率。__add__枚舉所有值對(duì),并返回代表和分布的新Pmf。__hash__并且__id__使保偏光纖哈希的; 這不是最好的方法,因?yàn)樗鼈兪强勺兊?。因此,此?shí)現(xiàn)帶有警告,如果您使用Pmf作為密鑰,則不應(yīng)對(duì)其進(jìn)行修改。更好的選擇是定義一個(gè)凍結(jié)的Pmf。render以準(zhǔn)備繪制的形式返回值和概率:

大數(shù)據(jù)分析Python有哪些計(jì)數(shù)器類(lèi)和概率質(zhì)量函數(shù)
 

  使用Pmf對(duì)象
 

  例如,我們可以制作一個(gè)表示6面模具的Pmf對(duì)象。

大數(shù)據(jù)分析Python有哪些計(jì)數(shù)器類(lèi)和概率質(zhì)量函數(shù)
 

  添加運(yùn)算符
 

  使用加法運(yùn)算符,我們可以計(jì)算兩個(gè)骰子之和的分布。

大數(shù)據(jù)分析Python有哪些計(jì)數(shù)器類(lèi)和概率質(zhì)量函數(shù)
 

  計(jì)算分布
 

  使用numpy.sum,我們可以計(jì)算三個(gè)骰子的和的分布。然后繪制結(jié)果(使用Pmf.render)

大數(shù)據(jù)分析Python有哪些計(jì)數(shù)器類(lèi)和概率質(zhì)量函數(shù)
 

  貝葉斯統(tǒng)計(jì)
 

  套件是表示一組假設(shè)及其概率的Pmf;它提供bayesian_update,可以根據(jù)新數(shù)據(jù)更新假設(shè)的概率。Suite是一個(gè)抽象的父類(lèi)。子類(lèi)應(yīng)提供一種可能性方法,用于評(píng)估給定假設(shè)下數(shù)據(jù)的可能性。bayesian_update遍歷假設(shè),評(píng)估每個(gè)假設(shè)下數(shù)據(jù)的可能性,并相應(yīng)地更新概率。然后,它重新規(guī)范化PMF。

大數(shù)據(jù)分析Python有哪些計(jì)數(shù)器類(lèi)和概率質(zhì)量函數(shù)
 

  套件示例
 

  例如,我將使用Suite解決Think Bayes第3章中的“骰子問(wèn)題” :
 

  “假設(shè)我有一盒骰子,其中包含4面骰子,6面骰子,8面骰子,12面骰子和20面骰子。如果您曾經(jīng)玩過(guò)《龍與地下城》,您就會(huì)知道我在說(shuō)什么。假設(shè)我從盒子中隨機(jī)選擇一個(gè)骰子,將其擲骰并得到6。我擲每個(gè)骰子的概率是多少?”
 

  我將首先列出代表骰子的Pmfs:
 

大數(shù)據(jù)分析Python有哪些計(jì)數(shù)器類(lèi)和概率質(zhì)量函數(shù)
 

  骰子套件
 

  接下來(lái),我將定義DiceSuite,該繼承bayesian_update自Suite并提供likelihood。data是觀察到的模頭輥,本例中為6。hypo是我可能已經(jīng)猜到的假想死亡;為了獲得數(shù)據(jù)的可能性,我從給定的模具中選擇給定值的概率。

大數(shù)據(jù)分析Python有哪些計(jì)數(shù)器類(lèi)和概率質(zhì)量函數(shù)
 

  更新發(fā)行版
 

  最后,我使用骰子列表實(shí)例化從每個(gè)骰子映射到其先驗(yàn)概率的Suite。默認(rèn)情況下,所有骰子的優(yōu)先級(jí)相同。然后,我使用給定值更新分布并打印結(jié)果:

大數(shù)據(jù)分析Python有哪些計(jì)數(shù)器類(lèi)和概率質(zhì)量函數(shù)
 

  另一個(gè)更新
 

  如預(yù)期的那樣,消除了4面模具?,F(xiàn)在它的概率為0。6面模具最有可能,但8面模具仍然很有可能。現(xiàn)在,假設(shè)我再次擲骰子并得到8。我們可以使用新數(shù)據(jù)再次更新套件。現(xiàn)在6面模具已被淘汰,8面模具很有可能,而我滾動(dòng)20面模具的機(jī)會(huì)不到10%。這些示例說(shuō)明了Counter類(lèi)的多功能性,Counter類(lèi)是Python使用不足的數(shù)據(jù)結(jié)構(gòu)之一。

大數(shù)據(jù)分析Python有哪些計(jì)數(shù)器類(lèi)和概率質(zhì)量函數(shù)


 

預(yù)約申請(qǐng)免費(fèi)試聽(tīng)課

填寫(xiě)下面表單即可預(yù)約申請(qǐng)免費(fèi)試聽(tīng)!怕錢(qián)不夠?可先就業(yè)掙錢(qián)后再付學(xué)費(fèi)! 怕學(xué)不會(huì)?助教全程陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可推薦就業(yè)!

?2007-2021/北京漫動(dòng)者教育科技有限公司版權(quán)所有
備案號(hào):京ICP備12034770號(hào)

?2007-2022/ m.5wd995.cn 北京漫動(dòng)者數(shù)字科技有限公司 備案號(hào): 京ICP備12034770號(hào) 監(jiān)督電話(huà):010-53672995 郵箱:bjaaa@aaaedu.cc

京公網(wǎng)安備 11010802035704號(hào)

網(wǎng)站地圖