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