樸素貝葉斯算法簡單高效,在處理分類問題上,是應該首先考慮的方法之一。
通過本教程,你將學到樸素貝葉斯算法的原理和Python版本的逐步實現(xiàn)。
更新:查看后續(xù)的關于樸素貝葉斯使用技巧的文章“Better Naive Bayes: 12 Tips To Get The Most From The Naive Bayes Algorithm”
樸素貝葉斯分類器,Matt Buck保留部分版權
關于樸素貝葉斯
樸素貝葉斯算法是一個直觀的方法,使用每個屬性歸屬于某個類的概率來做預測。你可以使用這種監(jiān)督性學習方法,對一個預測性建模問題進行概率建模。
給定一個類,樸素貝葉斯假設每個屬性歸屬于此類的概率獨立于其余所有屬性,從而簡化了概率的計算。這種強假定產生了一個快速、有效的方法。
給定一個屬性值,其屬于某個類的概率叫做條件概率。對于一個給定的類值,將每個屬性的條件概率相乘,便得到一個數(shù)據(jù)樣本屬于某個類的概率。
我們可以通過計算樣本歸屬于每個類的概率,然后選擇具有最高概率的類來做預測。
通常,我們使用分類數(shù)據(jù)來描述樸素貝葉斯,因為這樣容易通過比率來描述、計算。一個符合我們目的、比較有用的算法需要支持數(shù)值屬性,同時假設每一個數(shù)值屬性服從正態(tài)分布(分布在一個鐘形曲線上),這又是一個強假設,但是依然能夠給出一個健壯的結果。
預測糖尿病的發(fā)生
本文使用的測試問題是“皮馬印第安人糖尿病問題”。
這個問題包括768個對于皮馬印第安患者的醫(yī)療觀測細節(jié),記錄所描述的瞬時測量取自諸如患者的年紀,懷孕和血液檢查的次數(shù)。所有患者都是21歲以上(含21歲)的女性,所有屬性都是數(shù)值型,而且屬性的單位各不相同。
每一個記錄歸屬于一個類,這個類指明以測量時間為止,患者是否是在5年之內感染的糖尿病。如果是,則為1,否則為0。
機器學習文獻中已經多次研究了這個標準數(shù)據(jù)集,好的預測精度為70%-76%。
下面是pima-indians.data.csv文件中的一個樣本,了解一下我們將要使用的數(shù)據(jù)。
注意:下載文件,然后以.csv擴展名保存(如:pima-indians-diabetes.data.csv)。查看文件中所有屬性的描述。
6,148,72,35,0,33.6,0.627,50,11,85,66,29,0,26.6,0.351,31,08,183,64,0,0,23.3,0.672,32,11,89,66,23,94,28.1,0.167,21,00,137,40,35,168,43.1,2.288,33,1
樸素貝葉斯算法教程
教程分為如下幾步:
1.處理數(shù)據(jù):從CSV文件中載入數(shù)據(jù),然后劃分為訓練集和測試集。
2.提取數(shù)據(jù)特征:提取訓練數(shù)據(jù)集的屬性特征,以便我們計算概率并做出預測。
3.單一預測:使用數(shù)據(jù)集的特征生成單個預測。
新聞熱點
疑難解答