朴素贝叶斯—疾病的预测
1. 樸素貝葉斯理論基礎
貝葉斯決策理論方法時統計模型決策中的一個基本方法,基本思想如下:
(1)已知類條件概率密度參數表達式和先驗概率
(2)利用貝葉斯公式轉換成后驗概率
(3)根據后驗概率大小進行決策分類
其實就是利用統計中的“條件概率”來進行分類的一種算法。古典概型的概率計算方法是窮舉出所有的情況,然后看看每種情況的占比,這都是基于排列組合的方式去做的概率分析。
而樸素貝葉斯分類用的是條件概率,也就是在某些場景下(帶有某些前提條件)或者某些背景條件的約束下發生的概率問題。
貝葉斯公式如下:設D1、D2、D3.......Dn為樣本空間的S的一個劃分,如果以P(Di)表示Di發生的概率,且P(Di)>0(i=1,2,.....,n)。對于任何一個事件x,P(x)>0,則有
從上式可以推出 P(Dj|x)P(x)=P(x|Di)P(Di)
也就是在全樣本空間下,發生x的概率乘以在發生x的情況下發生 Dj的概率,等于發生 Dj的概率乘以在發生 Dj的情況下發生x的概率,如下圖:
中間交集的部分就是上式等號兩邊各自表示的內容。但貝葉斯分類器通常有一個假設:給定目標值時屬性之間相互條件獨立。基于這種“樸素”的假設,貝葉斯公式一般寫成:
P(A|B)P(B)=P(B|A)P(A)。
對于上式有以下的說法:
- P(A)叫做A事件的先驗概率,就是一般情況下,認為A發生的概率
- P(B|A)叫似然度,是A假設條件成立的情況下發生B的概率
- P(A|B)叫做后驗概率,在B發生的情況下發生A的概率,也就是要計算的概率。
- P(B)叫標準化常量,和A的先驗概率定義類似,就是一般情況下,B的發生概率。
2. 疾病的預測示例
這里用的是python的Scikit-learn庫中的高斯樸素貝葉斯模型。
這里的示例只是簡單的說明問題,忽略了其他的影響因素。所以在得到的訓練樣本給出了個體基因信息和個體的疾病信息,然后建模分析得到基因片段和患病之前的概率轉換關系。
代碼:
from sklearn.naive_bayes import GaussianNB#疾病預測 #基因片段A 基因片段B 高血壓 膽結石 #1: 是 0:否 data_table = [[1, 1, 1, 0],[0, 0, 0, 1],[0, 1, 0, 0],[1, 0, 0, 0],[1, 1, 0, 1],[1, 0, 0, 1],[0, 1, 1, 1],[0, 0, 0, 0],[1, 0, 1, 0],[0, 1, 0, 1] ]#基因片段 X = [[1, 1], [0, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1]]#高血壓 y1 = [1, 0, 0, 0, 0, 0, 1, 0, 1, 0]#訓練 clf = GaussianNB().fit(X, y1)#高血壓預測 p = [[1, 0]] print clf.predict(p)#膽結石 y2 = [0, 1, 0, 0, 1, 1, 1, 0, 0, 1]#訓練 clf = GaussianNB().fit(X, y2)#膽結石預測 p = [[1, 0]] # 要預測的用戶 print clf.predict(p)運行結果:
[0] [0]貝葉斯的理論體系其實是一種機器學習思想,而不是一種簡單的套用公式。
參考:《白話大數據與機器學習》
總結
以上是生活随笔為你收集整理的朴素贝叶斯—疾病的预测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微粒贷可以追加额度吗 借款时注意这几点
- 下一篇: 关联分析的基本概念