做一個很樸素的貝葉斯預測模型

一、背景

看見這種以人名命名的理論我都會查一下這個人到底是誰,這是百度百科里貝葉斯的頭像:

Paste_Image.png

這一身神甫打扮不禁讓我想起了豌豆狂魔孟德爾五慈,于是我又在網(wǎng)上搜索一下“貝葉斯生平”导而,發(fā)現(xiàn)了一篇奇文《貝葉斯身世之謎》,長篇大論地研究了一下貝葉斯到底是哪一年出生的洽沟,末尾還對貝葉斯的頭像真實性提出了質(zhì)疑。這還是發(fā)在《統(tǒng)計研究》(中文核心期刊)的正經(jīng)的期刊文獻。

我只想問一句哄孤,讀研期間發(fā)了這樣的論文給畢業(yè)嗎?吹截?瘦陈?

二、思路

貝葉斯公式

我在百度百科發(fā)現(xiàn)這么一張配圖:



我們就按照這張圖來講吧波俄,事件A發(fā)生的概率為P(A)晨逝;事件B發(fā)生的概率為P(B);在事件A發(fā)生的條件下事件B發(fā)生的概率為P(B|A)懦铺;在事件B發(fā)生的條件下事件A發(fā)生的概率為P(A|B)捉貌;事件A,B同時發(fā)生的概率為P(A∩B)。

可以得到P(A∩B)=P(A)×P(B|A)趁窃,同樣的P(A∩B)=P(B)×P(A|B)
那么有P(A)×P(B|A)=P(B)×P(A|B)轉化一下變成P(B|A)=P(A|B)×P(B)/P(A)牧挣,這就是我們后面需要用到的公式。

樸素貝葉斯分類器

假設一個樣本醒陆,每個個體有四個特征參數(shù)瀑构,分別為F1,F(xiàn)2统求,F(xiàn)3检碗,F(xiàn)4,有兩個類別码邻,分別為C0折剃,C1。

那么對于某個特定的樣本像屋,其屬于C0類的概率為:P(C0|F1F2F3F4)=P(F1F2F3F4|C0)×P(C0)/P(F1F2F3F4)
屬于C1的概率為:P(C1|F1F2F3F4)=P(F1F2F3F4|C1)×P(C1)/P(F1F2F3F4)

樸素貝葉斯之所以有樸素兩個字怕犁,就是因為它把問題簡化了,假設所有特征參數(shù)均相互獨立己莺,這樣就有:

P(F1F2F3F4|C0)=P(F1|C0)×P(F2|C0)×P(F3|C0)×P(F4|C0)

我們把這個式子帶回去奏甫,樸素貝葉斯分類就變成了比較P(F1|C0)×P(F2|C0)×P(F3|C0)×P(F4|C0)×P(C0)以及P(F1|C1)×P(F2|C1)×P(F3|C1)×P(F4|C1)×P(C1)兩個量那個大的問題。

三凌受、代碼

這次的實例與上一篇k近鄰算法相同阵子,我們直接使用上次經(jīng)過歸一化處理之后的數(shù)據(jù)。

  BallMillAbility  OreGrade  RateofMagnet  TailGrade  ConcentrateGrade
0           0.508755  0.526555      0.418244   0.325203               0.0
1           0.436707  0.481032      0.567986   0.443089               1.0
2           0.529417  0.412747      0.459552   0.483740               1.0
3           0.000000  0.613050      0.656627   0.609756               1.0
4           0.704730  0.464340      0.786575   0.723577               1.0
5           0.569675  0.429439      0.464716   0.686992               0.0
6           0.545946  0.347496      0.431153   0.752033               1.0
7           0.305294  0.391502      0.555077   0.609756               0.0
8           0.594509  0.335357      0.444062   0.776423               1.0
9           0.506505  0.074355      0.302926   0.691057               1.0

..               ...       ...           ...        ...               ...

處理數(shù)據(jù)
由于我們的數(shù)據(jù)是連續(xù)性數(shù)據(jù)胜蛉,所以要先對數(shù)據(jù)進行區(qū)間分級:

for i in range(149):
    df['BallMillAbility'][i] = int(df['BallMillAbility'][i]/0.1)
    df['OreGrade'][i] = int(df['OreGrade'][i]/0.1)
    df['RateofMagnet'][i] = int(df['RateofMagnet'][i]/0.1)
    df['TailGrade'][i] = int(df['TailGrade'][i]/0.1)

得到:

BallMillAbility  OreGrade  RateofMagnet  TailGrade  ConcentrateGrade
0                5.0       5.0           4.0        3.0               0.0
1                4.0       4.0           5.0        4.0               1.0
2                5.0       4.0           4.0        4.0               1.0
3                0.0       6.0           6.0        6.0               1.0
4                7.0       4.0           7.0        7.0               1.0
5                5.0       4.0           4.0        6.0               0.0
6                5.0       3.0           4.0        7.0               1.0
7                3.0       3.0           5.0        6.0               0.0
8                5.0       3.0           4.0        7.0               1.0
9                5.0       0.0           3.0        6.0               1.0
..               ...       ...           ...        ...               ...

我們假設一個樣本歸一化處理之后是這樣的:
這里之所以不使用上一篇文章中的那個樣本是因為挠进,那個樣本最后預測出來的結果合格概率為0,太過絕對誊册,所以我換了一個測試樣本领突,應該是因為樣本數(shù)量不夠大才出現(xiàn)這種情況)

BallMillAbility  OreGrade  RateofMagnet  TailGrade  ConcentrateGrade
         6.0          2.0         1.0         7.0           --

兩個變量的比較
指標合格的可能性:

P(F1|C=1)×P(F2|C=1)×P(F3|C=1)×P(F4|C=1)×P(C=1)

不合格的可能性:

P(F1|C=0)×P(F2|C=0)×P(F3|C=0)×P(F4|C=0)×P(C=0)

統(tǒng)計方法很簡單:

m = 0
for i in range(149):
    if df['BallMillAbility'][i] == 6 and df['ConcentrateGrade'][i] == 1:
        m+=1
print(m/149)
合格:0.0738×0.0469×0.0067×0.0402×0.3356=0.0000003128
不合格:0.1812×0.0604×0.0201×0.0738×0.6644=0.00001078

不合格的概率是合格的概率的34.46倍,基本可以確定這個樣本為不合格樣本案怯。

四君旦、總結

  1. 這次講的跟上次一樣,是一個沒有不包含模型訓練這一環(huán)節(jié)的簡單預測模型嘲碱,可以看到我們預測的結果比k近鄰算法得到的結果傾向性更強一些金砍。
  2. 使用這個方法最好數(shù)據(jù)量大一些,否則會出現(xiàn)某一項概率為零的情況麦锯,這樣就不好估計了捞魁。
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市离咐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖宵蛀,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昆著,死亡現(xiàn)場離奇詭異,居然都是意外死亡术陶,警方通過查閱死者的電腦和手機凑懂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梧宫,“玉大人接谨,你說我怎么就攤上這事√料唬” “怎么了脓豪?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長忌卤。 經(jīng)常有香客問我扫夜,道長,這世上最難降的妖魔是什么驰徊? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任笤闯,我火速辦了婚禮,結果婚禮上棍厂,老公的妹妹穿的比我還像新娘颗味。我一直安慰自己,他們只是感情好牺弹,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布浦马。 她就那樣靜靜地躺著,像睡著了一般例驹。 火紅的嫁衣襯著肌膚如雪捐韩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天鹃锈,我揣著相機與錄音荤胁,去河邊找鬼。 笑死屎债,一個胖子當著我的面吹牛仅政,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盆驹,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼圆丹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了躯喇?” 一聲冷哼從身側響起辫封,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤硝枉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后倦微,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妻味,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年欣福,在試婚紗的時候發(fā)現(xiàn)自己被綠了责球。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡拓劝,死狀恐怖雏逾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情郑临,我是刑警寧澤栖博,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站牧抵,受9級特大地震影響笛匙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜犀变,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一妹孙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧获枝,春花似錦蠢正、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至懦傍,卻和暖如春雹舀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背粗俱。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工说榆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寸认。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓签财,卻偏偏與公主長得像,于是被迫代替她去往敵國和親偏塞。 傳聞我的和親對象是個殘疾皇子唱蒸,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容