第四章-樸素貝葉斯樸素嗎?

你覺得樸素貝葉斯樸素嗎? 個人覺得,一點也不樸素,如同“平凡出真知”,樸素貝葉斯還是很挺厲害的。如果想要了解樸素貝葉斯,那麼需要先了解貝葉斯估計極大似然估計

極大似然估計

對於一個數據集T服從概率分佈P,但是P中參數未知,針對極大似然估計,就是將未知參數看作一個定值,從而找未知參數能使得數據集T發生的概率最大。
T(x1,x2,...,xn)X N(μ,σ2),θθ^使?:(1)μ:f(x)=12πσe(xμ)22σ2(2)L(μ)=i=1n12πσe(xiμ)22σ2(3)lnL(μ)=nln(2π)12σ2i=1n(xiμ)2(4)lnL(μ)μ=1σ2i=1n(xiμ)2(5)0lnL(μ)μ=0=>μ^=1ni=1nxi=x 極大似然估計:\\ 假設某個數據集T(x_1,x_2,...,x_n)服從正態分佈X~N(\mu,\sigma^2),但是某具體參數\theta未知,\\ 如何通過極大似然估計得到\hat{\theta}使得隨機樣本出現的概率最大?\\ 求解過程:(1) 正態分佈下\mu的極大似然估計是:\\ f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}\\ (2)損失函數:L(\mu)=\prod_{i=1}^n\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x_i-\mu)^2}{2\sigma^2}}\\ (3)取對數:\ln L(\mu)=-nln(\sqrt{2\pi})\frac{1}{2\sigma^2}\sum_{i=1}^n(x_i-\mu)^2 \\ (4)求導:\frac{\partial \ln L(\mu)}{\partial \mu}=-\frac{1}{\sigma^2}\sum_{i=1}^n(x_i-\mu)^2 \\ (5)令導數爲0:\frac{\partial \ln L(\mu)}{\partial \mu}=0 => \hat{\mu}=\frac{1}{n}\sum_{i=1}^n x_i = \overline{x}

貝葉斯估計

相比較貝葉斯估計,極大似然估計會出現概率爲0的情況。

D(x1,x2...xn)N(μ,σ2),σ2μN(0,τ2)(1)DP(D),p(μD)=P(Dμ)P(μ)P(D),P(μ)N(0,τ2)L(μ):L(μ)=P(μD)=P(Dμ)P(μ)P(D)=P(μ)P(x1μ)P(x2μ)...P(xnμ)P(μ,x1,x2,...xn)dμ,P(μ,x1,x2,...xn)dμK=K12πτeμ22τ2i=1n12πσe(xiμ)22σ2(2)lnP(μD)=μ22τ2K+i=1n((xiμ)22σ2)(3)lnμ=μτ2+i=1n((xiμ)σ2)(4)0:μ^=i=1nxin+σ2τ2n,n0,0 假設樣本D(x_1,x_2...x_n)是正態分佈N(\mu,\sigma^2),其中\sigma^2已知。\\ 假設\mu的先驗分佈是正態分佈N(0,\tau^2),如果每個樣本的概率獨立且同步分佈,那麼貝葉斯估計?\\ (1)第一步:假設數據集D的全概率爲P(D),那麼p(\mu|D) = \frac{P(D|\mu)P(\mu)}{P(D)},\\ 其中P(\mu)是服從N(0,\tau^2)分佈的先驗概率,從而得到L(\mu): L(\mu)=P(\mu|D)=\frac{P(D|\mu)P(\mu)}{P(D)}\\ =\frac{P(\mu)P(x_1|\mu)P(x_2|\mu)...P(x_n|\mu)}{\int P(\mu,x_1,x_2,...x_n)d\mu},由此看出\int P(\mu,x_1,x_2,...x_n)d\mu是一個常數,可以記作K。\\ = K\frac{1}{\sqrt{2\pi}\tau}e^{-\frac{\mu^2}{2\tau^2}} \prod_{i=1}^n\frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{(x_i-\mu)^2}{2\sigma^2}} \\ (2) 第二步:取對數。\ln P(\mu|D)=-\frac{\mu^2}{2\tau^2} K + \sum_{i=1}^n(-\frac{(x_i-\mu)^2}{2\sigma^2})\\ (3) 第三步:求導。\frac{\partial ln}{\partial \mu}=-\frac{\mu}{\tau^2} + \sum_{i=1}^n(-\frac{(x_i-\mu)}{\sigma^2})\\ (4)第四步:令導數爲0。可得到:\hat{\mu}=\frac{\sum_{i=1}^n x_i}{n+\frac{\sigma^2}{\tau^2}}\\ 由此可以看出,當n \rightarrow \infty,貝葉斯估計概率和極大似然估計概率是差不多的,\\ 但是如果n \rightarrow 0,貝葉斯估計不會等於0,相對而言,更加精確些。

樸素貝葉斯法

樸素貝葉斯(Native Bayes)法是基於貝葉斯定理與特徵條件獨立假設的分類方法。

樸素貝葉斯實際上學習到的是生成數據機制,因此屬於生成模型

樸素貝葉斯法的基本假設是條件獨立性。

樸素貝葉斯模型

χRnnY=(c1,c2,..cK)xχ,yY,P(X,Y)XYT={(x1,y1),(x2,y2),...(xN,yN)}x,y=f(x)=argmaxP(Y=cK)jP(X(j)=x(j)Y=cK)KP(Y=cK)jP(X(j)=x(j)Y=cK) 設輸入空間\chi \subseteq R^n爲n維向量的集合,輸出空間維類標記集合Y=(c_1,c_2,..c_K)。\\ 輸入爲特徵向量x \in \chi,輸出標記y\in Y,P(X,Y)是X和Y的聯合概率分佈。\\ 訓練數據集T=\{(x_1,y_1),(x_2,y_2),...(x_N,y_N)\}。\\ 樸素貝葉斯分類時,對給定的輸入x,樸素貝葉斯分類器模型如下:\\ y=f(x)=arg max\frac{P(Y=c_K)\prod_jP(X^{(j)}=x^{(j)}|Y=c_K)}{\sum_K P(Y=c_K)\prod_jP(X^{(j)}=x^{(j)}|Y=c_K)}

損失函數

樸素貝葉斯法將實例分到後驗概率最大的類中,這損失函數正符合0-1損失函數。根據期望風險最小化準則得到後驗概率最大化準則:
f(x)=argmaxcKP(cKX=x) f(x)=arg max_{c_K} P(c_K|X=x)
參數估計就是採用上面剛開始談到的極大似然估計貝葉斯估計

樸素貝葉斯算法

T={(x1,y1),(x2,y2),...(xN,yN)}xi=(xi(1),xi(2),...xi(n))T,xi(j)ij,xi(j){aj1,aj2...ajSj},ajljlj=1,2..n,l=1,2,..Sj,yi{c1,c2,...cK}x;x(1)P(Y=cK)=i=1NI(yi=cK)N,k=1,2,...KP(X(j)=ajlY=cK)=i=1NI(xi(j)=ajl,yi=cK)i=1NI(yi=cK),j=1,2...n;l=1,2,..Sj;k=1,2,...K(2)P(Y=cK)j=1nP(X(j)=x(j)Y=cK),k=1,2...K(3)xy=argmaxcKP(Y=cK)j=1nP(X(j)=x(j)Y=cK) 輸入:訓練數據集T=\{(x_1,y_1),(x_2,y_2),...(x_N,y_N)\},其中x_i=(x_i^{(1)},x_i^{(2)},...x_i^{(n)})^T,\\ x_i^{(j)}表示第i個樣本的j個特徵,x_i^{(j)} \in \{a_{j1},a_{j2}...a_{jS_j}\},\\ a_{jl}是第j個特徵可能取得第l個值,j=1,2..n,l=1,2,..S_j,y_i \in \{c_1,c_2,...c_K\};實例x; 輸出:實例x的分類。\\ (1)計算先驗概率以及每個條件概率\\ P(Y=c_K)=\frac{\sum_{i=1}^N I(y_i=c_K)}{N},k=1,2,...K \\ P(X^{(j)}=a_{jl}|Y=c_K)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_K)}{\sum_{i=1}^NI(y_i=c_K)},j=1,2...n;l=1,2,..S_j;k=1,2,...K \\ (2) 計算每個標籤下的實例的概率 \\ P(Y=c_K)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_K),k=1,2...K \\ (3)確定的實例x的類。\\ y=arg max_{c_K} P(Y=c_K)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_K)

在樸素貝葉斯估計中,條件概率的貝葉斯估計是:
Pλ(X(j)=ajlY=cK)=i=1NI(xi(j)=ajl,yi=cK)+λi=1NI(yi=cK)+Sjλλ0,λλ=0λ=1,(LaplaceSmoothing):Pλ(X(j)=ajlY=cK)>0l=1SjP(X(j)=ajlY=cK)=1Pλ(X(j)=ajlY=cK)=i=1NI(xi(j)=ajl,yi=cK)+λi=1NI(yi=cK)+Sjλλ0,λλ=0λ=1,(LaplaceSmoothing):Pλ(X(j)=ajlY=cK)>0l=1SjP(X(j)=ajlY=cK)=1 P_{\lambda}(X^{(j)}=a_{jl}|Y=c_K)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_K)+\lambda}{\sum_{i=1}^NI(y_i=c_K)+S_j\lambda} \\ 當\lambda \geq 0,等價於在隨機變量上各個取值的頻數上賦予一個正數\lambda。\\ 當\lambda=0,貝葉斯估計等於極大似然估計。常取\lambda=1,這時稱爲拉普拉斯平滑(Laplace Smoothing)。此時有:\\ P_{\lambda}(X^{(j)}=a_{jl}|Y=c_K) > 0 \\ \sum_{l=1}^{S_j} P(X^{(j)}=a_{jl}|Y=c_K) = 1P_{\lambda}(X^{(j)}=a_{jl}|Y=c_K)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_K)+\lambda}{\sum_{i=1}^NI(y_i=c_K)+S_j\lambda} \\ 當\lambda \geq 0,等價於在隨機變量上各個取值的頻數上賦予一個正數\lambda。\\ 當\lambda=0,貝葉斯估計等於極大似然估計。常取\lambda=1,這時稱爲拉普拉斯平滑(Laplace Smoothing)。此時有:\\ P_{\lambda}(X^{(j)}=a_{jl}|Y=c_K) > 0 \\ \sum_{l=1}^{S_j} P(X^{(j)}=a_{jl}|Y=c_K) = 1
先驗概率的貝葉斯估計是:
Pλ(Y=cK)=i=1NI(yi=cK)+λN+Kλ,k=1,2,3...K,l=1,2,3...Sj P_{\lambda}(Y=c_K) = \frac{\sum_{i=1}^N I(y_i=c_K)+\lambda}{N+K\lambda},k=1,2,3...K,l=1,2,3...S_j

小結

樸素貝葉斯是在條件獨立性的基礎上的,由於這一假設,模型包含的條件概率的數量大大減少,樸素貝葉斯法的學習與預測大爲簡化。因此樸素貝葉斯法高效,且易於實現,缺點就是分類的性能不一定很高

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章