1.樸素貝葉斯
注:樸素貝葉斯和貝葉斯法不是同一個概念
樸素貝葉斯法是基於樸素貝葉斯定理和條件獨立性假設的方法。對於給定數據集,先基於特徵條件獨立假設學習輸入/輸出的聯合分佈。然後基於這個模型,求出給定的輸入x的後驗概率最大的輸出y。
定義:設輸入空間χ⊆Rn 爲n維向量的集合,輸出空間爲類標記集合γ = {c1,c2,⋯,ck }。X是定義在輸入空間χ 上的隨機變量,Y是定義在輸出空間γ 上的隨機變量。P(X,Y)是X和Y的聯合概率分佈,訓練數據集T={(x1,y1),(x2,y2),⋯,(xN,yN) }由P(X,Y)獨立同分布產生。
樸素貝葉斯法通過訓練集學習到聯合概率分佈P(X,Y)。想要學習到聯合概率分佈,我們需要先知道先驗概率分佈和條件概率分佈。先驗概率分佈爲
P(Y=ck),k=1,2,⋯,K
條件概率分佈爲
P(X=x|Y=ck)=P(X(1)=x(1),⋯,X(n)=x(n)|Y=ck),k=1,2,⋯,K
於是我們可以得到聯合概率分佈。
樸素貝葉斯法提出了條件獨立性的假設。具體的,條件獨立性假設爲
P(X=x|Y=ck)=P(X(1)=x(1),⋯,X(n)=x(n)|Y=ck)=∏j=1nP(X(j)=x(j)|Y=ck)
樸素貝葉斯分類時,對於給定的x,通過學習到的模型計算後驗概率分佈
P(Y=ck|X=x) ,將後驗概率最大的雷作爲x的類輸出。後驗概率根據貝葉斯定理可以得到:
P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)P(X=x)(此處P(X=x)不展開)=∏nj=1P(X(j)=x(j)|Y=ck)P(X=x)(代入條件獨立性得到)
因爲分母都是一樣的,所以
y=argmaxckP(Y=ck)∏jP(X(j)=x(j)|Y=ck)
2.後驗概率最大化
對於樸素貝葉斯函數,損失函數我們採取0-1損失函數:
L(Y,f(x))={1,Y≠f(X)0,Y=f(X)(2)
接下來,書中求的是期望風險函數,對於期望風險,指的是對新樣本的預測能力,而期望風險函數,也就是泛化誤差:
Rexp(f)=E[L(Y,f(X)]=∫L(Y,f(X))P(X,Y)dxdy
我們需要最小化泛化誤差,也就是期望風險函數,:
f(x)=argmin∫L(Y,f(X))P(X,Y)dxdy=argmin∫L(Y,f(X))P(Y|X)P(X)dxdy(使用條件概率公式)=argmin∫(∫L(Y,f(X))P(Y|X)dy)⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯P(X)dx
要使上述公式最小,我們需要使得上面下劃線上的公式值最小,也就是使得y關於x的條件期望最小。而且y的取值是離散值,於是我們可以把條件期望寫成如下形式
Rexp=Eχ∑k=1K[L(ck,f(X)))]P(ck|X)
於是我們可以得到:
f(x)=argminy∈γ∑k=1KL(ck,y)P(ck|X=x)=argminy∈γ∑k=1KP(y≠ck|X=x)=argminy∈γ(1−P(y=ck|X=x))=argmaxy∈γP(y=ck|X=x)(1)(2)
對於f(x)來說,我們想找到y屬於某一類,使得所需條件最小化或者所需條件最大化,對於(1)處,是k-1個數相加,因爲y屬於某一類,則必定存在一個c_{k}=y,而且對於所有的k=1,2,…,K。可以得到
P(ck|X=x)=1 ,於是我們可以得到(1)到(2)的變化。
貝葉斯估計
採用極大似然估計(本文省略了樸素貝葉斯的參數估計,想了解的看書上內容)會出現概率值爲0的情況,會很大程度影響到後驗概率的計算。解決這一問題的方法是採用貝葉斯估計。具體的,條件概率的貝葉斯估計是
Pλ(X(j)=ajl|Y=ck)=∑Ni=1I(x(j)i=ajl,yi=ck)+λ∑Ni=1I(yi=ck)+Sjλ
式子中
X(j)i 是指第i個樣本的第j個特徵;
ajl 是第j個特徵的可能取的第l個值,
Sj 是指第j個特徵的可能取值數量。先驗概率的貝葉斯估計爲
Pλ(Y=ck)=∑Ni=1I(yi=ck)+λN+Kλ
K是y的類別數量,N是數據集中輸入變量的數量。式子中的
λ≥0 。當
λ=0 時是極大似然估計,
λ=1 時,是拉普拉斯平滑。在實際工程中,比如計算廣告中計算廣告轉換率時,也會採用貝葉斯平滑,想了解的可以去尋找相關博文或者論文。