scikit-learn 樸素貝葉斯分類器

在scikit-learn中,一共有3個(gè)樸素貝葉斯的分類算法類。分別是:
GaussianNB 先驗(yàn)為高斯分布的樸素貝葉斯
MultinomialNB 先驗(yàn)為多項(xiàng)式分布的樸素貝葉斯
BernoulliNB 先驗(yàn)為伯努利分布的樸素貝葉斯

一般來(lái)說,如果樣本特征的分布大部分是連續(xù)值,使用GaussianNB會(huì)比較好。如果如果樣本特征的分大部分是多元離散值,使用MultinomialNB比較合適。而如果樣本特征是二元離散值或者很稀疏的多元離散值,應(yīng)該使用BernoulliNB。

GaussianNB

GaussianNB假設(shè)特征的先驗(yàn)概率為正態(tài)分布,即如下式:
P(X_j=x_j|Y=C_k)=\frac{1}{\sqrt{2\pi\sigma_k^2}}e^{-\frac{(x_j-\mu_k)^2}{2\sigma_k^2}}
其中C_k為Y的第k類類別。
\mu_k為在樣本類別C_k中,所有X_j的平均值。\sigma_k^2為在樣本類別C_k中,所有X_j的方差。
GaussianNB類的主要參數(shù)僅有一個(gè),即先驗(yàn)概率priors ,對(duì)應(yīng)Y的各個(gè)類別的先驗(yàn)概率P(Y=C_k)。這個(gè)值默認(rèn)不給出,如果不給出此時(shí)P(Y=C_k)=\frac{m_k}{m}。其中m為訓(xùn)練集樣本總數(shù)量,m_k為輸出為第k類別的訓(xùn)練集樣本數(shù)。
在使用GaussianNB的fit方法擬合數(shù)據(jù)后,我們可以進(jìn)行預(yù)測(cè)。此時(shí)預(yù)測(cè)有三種方法:
predict方法就是我們最常用的預(yù)測(cè)方法,直接給出測(cè)試集的預(yù)測(cè)類別輸出。
predict_proba會(huì)給出測(cè)試集樣本在各個(gè)類別上預(yù)測(cè)的概率。
predict_log_proba會(huì)給出測(cè)試集樣本在各個(gè)類別上預(yù)測(cè)的概率的一個(gè)對(duì)數(shù)轉(zhuǎn)化。

MultinomialNB

MultinomialNB假設(shè)特征的先驗(yàn)概率為多項(xiàng)式分布,即如下式:
P(X_j=x_{jl}|Y=C_k)=\frac{x_{jl}+\lambda}{m_k+n\lambda}
其中,P(X_j=x_{jl}|Y=C_k)是第k個(gè)類別的第j維特征的第l個(gè)個(gè)取值條件概率。m_k是訓(xùn)練集中輸出為第k類的樣本個(gè)數(shù)。
\lambda為一個(gè)大于0的常數(shù),常常取為1,即拉普拉斯平滑。也可以取其他值。
MultinomialNB參數(shù)有3個(gè)。
參數(shù)alpha即為上面的常數(shù)\lambda,默認(rèn)為1。
布爾參數(shù)fit_prior表示是否要考慮先驗(yàn)概率,如果是false,則所有的樣本類別輸出都有相同的類別先驗(yàn)概率。否則可以自己用第三個(gè)參數(shù)class_prior輸入先驗(yàn)概率,或者不輸入第三個(gè)參數(shù)class_prior讓MultinomialNB自己從訓(xùn)練集樣本來(lái)計(jì)算先驗(yàn)概率,此時(shí)的先驗(yàn)概率為P(Y=C_k)=\frac{m_k}{m}。其中m為訓(xùn)練集樣本總數(shù)量,m_k為輸出為第k類別的訓(xùn)練集樣本數(shù)。

fit_prior class_prior 最終先驗(yàn)概率
false 填或者不填沒有意義 P(Y=C_k)=1/k
true 不填 P(Y=Ck)=m_k/m
true P(Y=C_k)=class_prior

BernoulliNB

BernoulliNB假設(shè)特征的先驗(yàn)概率為二元伯努利分布(伯努利分布,又名兩點(diǎn)分布或者0-1分布,是一個(gè)離散型概率分布),即如下式:
P(X_j=x_{jl}|Y=C_k)=P(j|Y=C_k)x_{jl}+[1?P(j|Y=C_k)](1?x_{jl})
此時(shí)l只有兩種取值。x_{jl}只能取值0或者1。
BernoulliNB一共有4個(gè)參數(shù),其中3個(gè)參數(shù)的名字和意義和MultinomialNB完全相同。唯一增加的一個(gè)參數(shù)是binarize,這個(gè)參數(shù)主要是用來(lái)幫BernoulliNB處理二項(xiàng)分布的,小于binarize的會(huì)歸為一類,大于binarize的會(huì)歸為另外一類。如果不輸入,則BernoulliNB認(rèn)為每個(gè)數(shù)據(jù)特征都已經(jīng)是二元的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容