你覺得樸素貝葉斯樸素嗎? 個人覺得,一點也不樸素,如同“平凡出真知”,樸素貝葉斯還是很挺厲害的。如果想要了解樸素貝葉斯,那麼需要先了解貝葉斯估計和極大似然估計。
極大似然估計
對於一個數據集T服從概率分佈P,但是P中參數未知,針對極大似然估計,就是將未知參數看作一個定值,從而找未知參數能使得數據集T發生的概率最大。
極大似然估計:假設某個數據集T(x1,x2,...,xn)服從正態分布X N(μ,σ2),但是某具體參數θ未知,如何通過極大似然估計得到θ^使得隨機樣本出現的概率最大?求解過程:(1)正態分布下μ的極大似然估計是:f(x)=2πσ1e−2σ2(x−μ)2(2)損失函數:L(μ)=i=1∏n2πσ1e−2σ2(xi−μ)2(3)取對數:lnL(μ)=−nln(2π)2σ21i=1∑n(xi−μ)2(4)求導:∂μ∂lnL(μ)=−σ21i=1∑n(xi−μ)2(5)令導數爲0:∂μ∂lnL(μ)=0=>μ^=n1i=1∑nxi=x
貝葉斯估計
相比較貝葉斯估計,極大似然估計會出現概率爲0的情況。
假設樣本D(x1,x2...xn)是正態分布N(μ,σ2),其中σ2已知。假設μ的先驗分布是正態分布N(0,τ2),如果每個樣本的概率獨立且同步分布,那麼貝葉斯估計?(1)第一步:假設數據集D的全概率爲P(D),那麼p(μ∣D)=P(D)P(D∣μ)P(μ),其中P(μ)是服從N(0,τ2)分布的先驗概率,從而得到L(μ):L(μ)=P(μ∣D)=P(D)P(D∣μ)P(μ)=∫P(μ,x1,x2,...xn)dμP(μ)P(x1∣μ)P(x2∣μ)...P(xn∣μ),由此看出∫P(μ,x1,x2,...xn)dμ是一個常數,可以記作K。=K2πτ1e−2τ2μ2i=1∏n2πσ1e−2σ2(xi−μ)2(2)第二步:取對數。lnP(μ∣D)=−2τ2μ2K+i=1∑n(−2σ2(xi−μ)2)(3)第三步:求導。∂μ∂ln=−τ2μ+i=1∑n(−σ2(xi−μ))(4)第四步:令導數爲0。可得到:μ^=n+τ2σ2∑i=1nxi由此可以看出,當n→∞,貝葉斯估計概率和極大似然估計概率是差不多的,但是如果n→0,貝葉斯估計不會等於0,相對而言,更加精確些。
樸素貝葉斯法
樸素貝葉斯(Native Bayes)法是基於貝葉斯定理與特徵條件獨立假設的分類方法。
樸素貝葉斯實際上學習到的是生成數據機制,因此屬於生成模型。
樸素貝葉斯法的基本假設是條件獨立性。
樸素貝葉斯模型
設輸入空間χ⊆Rn爲n維向量的集合,輸出空間維類標記集合Y=(c1,c2,..cK)。輸入爲特徵向量x∈χ,輸出標記y∈Y,P(X,Y)是X和Y的聯合概率分布。訓練數據集T={(x1,y1),(x2,y2),...(xN,yN)}。樸素貝葉斯分類時,對給定的輸入x,樸素貝葉斯分類器模型如下:y=f(x)=argmax∑KP(Y=cK)∏jP(X(j)=x(j)∣Y=cK)P(Y=cK)∏jP(X(j)=x(j)∣Y=cK)
損失函數
樸素貝葉斯法將實例分到後驗概率最大的類中,這損失函數正符合0-1損失函數。根據期望風險最小化準則得到後驗概率最大化準則:
f(x)=argmaxcKP(cK∣X=x)
參數估計就是採用上面剛開始談到的極大似然估計和貝葉斯估計。
樸素貝葉斯算法
輸入:訓練數據集T={(x1,y1),(x2,y2),...(xN,yN)},其中xi=(xi(1),xi(2),...xi(n))T,xi(j)表示第i個樣本的j個特徵,xi(j)∈{aj1,aj2...ajSj},ajl是第j個特徵可能取得第l個值,j=1,2..n,l=1,2,..Sj,yi∈{c1,c2,...cK};實例x;輸出:實例x的分類。(1)計算先驗概率以及每個條件概率P(Y=cK)=N∑i=1NI(yi=cK),k=1,2,...KP(X(j)=ajl∣Y=cK)=∑i=1NI(yi=cK)∑i=1NI(xi(j)=ajl,yi=cK),j=1,2...n;l=1,2,..Sj;k=1,2,...K(2)計算每個標籤下的實例的概率P(Y=cK)j=1∏nP(X(j)=x(j)∣Y=cK),k=1,2...K(3)確定的實例x的類。y=argmaxcKP(Y=cK)j=1∏nP(X(j)=x(j)∣Y=cK)
在樸素貝葉斯估計中,條件概率的貝葉斯估計是:
Pλ(X(j)=ajl∣Y=cK)=∑i=1NI(yi=cK)+Sjλ∑i=1NI(xi(j)=ajl,yi=cK)+λ當λ≥0,等價於在隨機變量上各個取值的頻數上賦予一個正數λ。當λ=0,貝葉斯估計等於極大似然估計。常取λ=1,這時稱爲拉普拉斯平滑(LaplaceSmoothing)。此時有:Pλ(X(j)=ajl∣Y=cK)>0l=1∑SjP(X(j)=ajl∣Y=cK)=1Pλ(X(j)=ajl∣Y=cK)=∑i=1NI(yi=cK)+Sjλ∑i=1NI(xi(j)=ajl,yi=cK)+λ當λ≥0,等價於在隨機變量上各個取值的頻數上賦予一個正數λ。當λ=0,貝葉斯估計等於極大似然估計。常取λ=1,這時稱爲拉普拉斯平滑(LaplaceSmoothing)。此時有:Pλ(X(j)=ajl∣Y=cK)>0l=1∑SjP(X(j)=ajl∣Y=cK)=1
先驗概率的貝葉斯估計是:
Pλ(Y=cK)=N+Kλ∑i=1NI(yi=cK)+λ,k=1,2,3...K,l=1,2,3...Sj
小結
樸素貝葉斯是在條件獨立性的基礎上的,由於這一假設,模型包含的條件概率的數量大大減少,樸素貝葉斯法的學習與預測大爲簡化。因此樸素貝葉斯法高效,且易於實現,缺點就是分類的性能不一定很高。