Python朴素贝叶斯
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Python樸素貝葉斯
1 聲明
本文的數據來自網絡,部分代碼也有所參照,這里做了注釋和延伸,旨在技術交流,如有冒犯之處請聯系博主及時處理。
2 貝葉斯簡介
相關概念見下:
條件概率P(B|A) = P(AB)/P(A)
即B在A發生的時的概率等于A、B同時發生的概率除以A發生的概率
全概率
P(A)=P(A|B1)P(B1)+ P(A|B2)P(B2)+…… P(A|Bn)Bn
這里B1,B2……Bn是對A的n中劃分,P(Bi)>0,0<i<n+1,i是正整數。
貝葉斯
其中P(H)是假設H成立的概率,又稱為先驗概率,P(E)是證據的可能性(這里與假設無關),
P(E|H)是假設成立對應證據的可能性,P(H|E)是假設存在時證據的概率,是一種推斷。
樸素貝葉斯分類
樸素貝葉斯是一種利用貝葉斯定理的分類器。它預測每個類的成員概率,例如給定記錄或數據點屬于特定類的概率。概率最大的類被認為是最可能的類。這也稱為Maximum A Posteriori(MAP)最大后驗概率。
MAP(H)
= max( P(H|E) )
= ?max( (P(E|H)*P(H))/P(E))
= max(P(E|H)*P(H))
貝葉斯分類的注意點:
1 假設數據的統計分布,比如正態、多項式、伯努利。
2 特征間是獨立的。
3 樸素貝葉斯代碼示例
# 加載樸素貝葉斯相關包 from sklearn import datasets from sklearn.naive_bayes import GaussianNB # 加載iris數據 iris = datasets.load_iris() # 定義X和y features = iris.data target = iris.target # 創建分類器對象 classifer = GaussianNB() # 定義新的樣本 new_observation = [[ 2.6, 2.6, 2.6, 0.4]] # 輸出所屬分類的概率值 print(classifer.fit(features, target).predict_proba(new_observation))4 總結
優點:
1 樸素貝葉斯算法是一種快速、高擴展性的算法
2 樸素貝葉斯算法支持二分類和多分類,有高斯、多項式、伯努利多種實現
3 適合于小樣本上
不足:
因假設各特征間無關,所以處理特征間有關系的效果不好。
總結
以上是生活随笔為你收集整理的Python朴素贝叶斯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 锦州到莲花山坐什么车?
- 下一篇: 09年雪铁龙世嘉1.6手动挡多少钱?