文章目錄
- 貝葉斯定理
- 樸素貝葉斯法的學習與分類
- 條件獨立假設
- 樸素貝葉斯的后驗概率最大化準則
- 樸素貝葉斯的基本公式
- 樸素貝葉斯法的參數估計
- 極大似然估計
貝葉斯定理
前置知識:條件概率、全概率、貝葉斯公式
推薦視頻,看完視頻后搜索博客了解先驗概率
、后驗概率
這里簡單記錄一下
貝葉斯定理:已知結果找原因/過程
已知事件B發生,求事件 A i A_i Ai?是原因的概率 P ( A i ∣ B ) = P ( A i ) P ( B ∣ A i ) P ( B ) = P ( A i B ) B 的全概率公式 = P ( 類別 ∣ 特征 ) = P ( 特征 ∣ 類別 ) P ( 類別 ) P ( 特征 ) P(Ai|B) = \frac{P(Ai)P(B|Ai)}{P(B)} = \frac{P(A_iB)}{B的全概率公式}=P(類別|特征) = \frac{P(特征|類別)P{(類別)}}{P(特征)} P(Ai∣B)=P(B)P(Ai)P(B∣Ai)?=B的全概率公式P(Ai?B)?=P(類別∣特征)=P(特征)P(特征∣類別)P(類別)?
通常,事件A在事件B(發生)的條件下的概率,與事件B在事件A(發生)的條件下的概率是不一樣的。
這兩者是有確定的關系的,貝葉斯定理就是這種關系的陳述。
每個概率都有特定的名稱
1. P ( A i ) P(A_i) P(Ai?)是A的先驗概率
:基于統計的概率,是基于以往歷史經驗和分析得到的結果。先驗不考慮B方面的因素下,人們對 A i Ai Ai發生概率的理解
2. P ( A i ∣ B ) P(Ai|B) P(Ai∣B)是A的后驗概率
:已知事情B發生了,我們對 A i A_i Ai?發生的概率有了新的認識,其概率由 P ( A i ) P(A_i) P(Ai?)變成了 P ( A i ∣ B ) P(A_i|B) P(Ai?∣B)。 => 后驗概率的計算要以先驗概率為基礎
樸素貝葉斯法的學習與分類
條件獨立假設
樸素貝葉斯:樸素貝葉斯方法是基于貝葉斯定理和特征條件獨立假設的分類方法。
條件獨立假設:條件獨立性假設就是各個特征之間互不影響,每個特征都是條件獨立的。這一假設使得樸素貝葉斯法變得簡單,但是有時候會犧牲一定的分類準確率。
條件獨立假設的公式
X表示實例集合,Y表示類標記集合。
x是一個有n個特征的實例。
X ( j ) X^{(j)} X(j)表示某個實例的第j個特征。
假設特征獨立公式
P ( X = x ∣ Y = c k ) = P ( X 1 = x 1 , . . . , X n = x n ∣ Y = c k ) = p ( X 1 = x 1 ∣ Y = c k ) ? . . . ? p ( , X n ∣ Y = c k ) = ∏ j = 1 n P ( X j = x j ∣ Y = c k ) P(X=x|Y=c_k)=P(X^1=x^1,...,X^n=x^n|Y=c_k)=p(X^1=x^1|Y=c_k)*...*p(,X^n|Y=c_k)=\prod_{j=1}^n P(X^{j}=x^{j}|Y=c_k) P(X=x∣Y=ck?)=P(X1=x1,...,Xn=xn∣Y=ck?)=p(X1=x1∣Y=ck?)?...?p(,Xn∣Y=ck?)=∏j=1n?P(Xj=xj∣Y=ck?)
樸素貝葉斯的后驗概率最大化準則
樸素貝葉斯的基本公式
1.后驗概率根據貝葉斯定理計算
P ( Y = c k ∣ X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) P ( X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) ∑ k P ( X = x ∣ Y = c k ) P ( Y = c k ) ) P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{P(X=x)}=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_k P(X=x|Y=c_k)P(Y=c_k))} P(Y=ck?∣X=x)=P(X=x)P(X=x∣Y=ck?)P(Y=ck?)?=∑k?P(X=x∣Y=ck?)P(Y=ck?))P(X=x∣Y=ck?)P(Y=ck?)?
2.將條件獨立假設公式代入
樸素貝葉斯分類的核心思想:對于給出的待分類樣本,求解在此樣本出現的條件下各個類別出現的概率,哪個最大 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ck?∣X=x),就認為此待分類樣本屬于哪個類別。 => 分類準則:后驗概率最大化
1.樸素貝葉斯分類器就是取后驗概率最大時的分類,所以我們需要比較不同分類(k=1,2,…,k)時 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ck?∣X=x)的概率大小
2.不同貝葉斯分類的分母 P ( X = x ) P(X=x) P(X=x)都是一樣,所以可以簡化只比較分子的大小
y = f ( x ) = a r g max ? c k P ( Y = c k ) ∏ j P ( X j = x j ∣ Y = c k ) y=f(x)=arg \max_{c_k}P(Y=c_k)\prod_{j} P(X^{j}=x^{j}|Y=c_k) y=f(x)=argmaxck??P(Y=ck?)∏j?P(Xj=xj∣Y=ck?)
argmax、argmin的說明
argmax 表示 后面的表達式取最大值的時候,返回自變量 C k C_k Ck?的取值 。
樸素貝葉斯法將樣本分到后驗概率最大的類 ,等價于此時期望風險最小化。
證明 后驗概率最大化 <=> 期望風險最小化
假設選擇0-1損失函數,其中f(X)為分類決策函數 。與真實類別Y比較,相等即沒有損失,不相等則損失為1。
L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X ) L(Y,f(X))= \begin{cases} 1, Y\neq{f(X)} \\ 0 ,Y=f(X) \end{cases} L(Y,f(X))={1,Y=f(X)0,Y=f(X)?
期望風險:對損失函數 L ( Y , f ( X ) ) L(Y,f(X)) L(Y,f(X))求期望 R ( f ) = E [ L ( Y , f ( X ) ) ] R(f)=E[L(Y,f(X))] R(f)=E[L(Y,f(X))]
期望的定義為:值出現的概率*具體的值 累計值,在這里就是損失函數值*聯合概率 累計值
套入二維隨機變量函數的期望公式
期望風險最小化可以轉換為以下式子:
m i n ∑ Y L ( Y , f ( X ) ) P ( y ∣ x ) = m i n ∑ k = 1 k L ( C k , f ( X ) ) P ( C k ∣ X ) min \sum_Y L(Y,f(X))P(y|x) = min \sum_{k=1}^kL(C_k,f(X))P(C_k|X) min∑Y?L(Y,f(X))P(y∣x)=min∑k=1k?L(Ck?,f(X))P(Ck?∣X)
對于一個確定輸入的X=x,判斷輸出類y為哪一個時,損失期望最小。f(x)對應的類y需要滿足的條件是使得期望風險最小化。
f ( x ) = a r g min ? y ∈ Y ∑ k = 1 k L ( C k , f ( x ) ) P ( C k ∣ X = x ) f(x) = arg \min_{y \in Y} \sum_{k=1}^kL(C_k,f(x))P(C_k|X=x) f(x)=argminy∈Y?∑k=1k?L(Ck?,f(x))P(Ck?∣X=x)
C k C_k Ck?為輸出空間中的某一個類。如果 C k = y C_k = y Ck?=y,則說明此時損失函數的值為0,因此在累加的過程中不用計算(0乘任何數結果為0),換句話說,只累加損失值為1的情況。
f ( x ) = a r g min ? y ∈ Y ∑ k = 1 k P ( y ≠ C k ∣ X = x ) = a r g m i n y ∈ Y ∑ k = 1 k ( 1 ? P ( y = C k ∣ X = x ) ) = a r g max ? y ∈ Y P ( y = C k ∣ X = x ) f(x) = arg \min_{y \in Y} \sum_{k=1}^kP(y\neq{C_k}|X=x) = arg min_{y \in Y} \sum_{k=1}^k(1-P(y={C_k}|X=x)) = arg \max_{y\in Y}P(y=C_k|X=x) f(x)=argminy∈Y?∑k=1k?P(y=Ck?∣X=x)=argminy∈Y?∑k=1k?(1?P(y=Ck?∣X=x))=argmaxy∈Y?P(y=Ck?∣X=x)
根據期望風險最小化 => 得到后驗概率最大化
樸素貝葉斯法的參數估計
極大似然估計
在樸素貝葉斯中,學習意味著根據訓練集估計先驗概率 P ( Y = c k ) P(Y=c_k) P(Y=ck?)和條件概率 P ( X = x ∣ Y = c k ) P(X=x|Y=c_k) P(X=x∣Y=ck?)。
根據條件獨立假設公式,條件概率 P ( X = x ∣ Y = c k ) = ∏ j = 1 n P ( X j = x j ∣ Y = c k ) P(X=x|Y=c_k) = \prod_{j=1}^n P(X^{j}=x^{j}|Y=c_k) P(X=x∣Y=ck?)=∏j=1n?P(Xj=xj∣Y=ck?)
先驗概率 P ( Y = c k ) P(Y=c_k) P(Y=ck?)的極大似然估計: 屬于 c k c_k ck?的實例占數據集總數N的比例
P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N P(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)}{N} P(Y=ck?)=N∑i=1N?I(yi?=ck?)? k = 1 , 2 , . . , K k=1,2,..,K k=1,2,..,K
I是指示函數,括號里成立取值1,不成立取值0
條件概率 P ( X = x ∣ Y = c k ) P(X=x|Y=c_k) P(X=x∣Y=ck?)的極大似然估計:
假設第j個特征 x ( j ) x^{(j)} x(j)可能取值的集合為 { a j 1 , a j 2 , . . . , a j S j } \{a_{j1},a_{j2},...,a_{jS_{j}}\} {aj1?,aj2?,...,ajSj??},第1個特征有 S 1 S_1 S1?個選擇,第n個特征有 S n S_n Sn?個選擇。
第j個特征取 a j l a_{jl} ajl?的條件概率 P ( X j = a j l ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a j l , y i = c k ) ∑ i = 1 N I ( y i = c 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)} P(Xj=ajl?∣Y=ck?)=∑i=1N?I(yi?=ck?)∑i=1N?I(xi(j)?=ajl?,yi?=ck?)? j = 1 , 2 , . . . , n ; l = 1 , 2 , . . . , S j ; k = 1 , 2 , . . . , K j=1,2,...,n; l=1,2,...,S_j;k=1,2,...,K j=1,2,...,n;l=1,2,...,Sj?;k=1,2,...,K
這里每一個特征的條件概率都需要計算,一共會計算 K ? S 1 ? . . . . ? S n K*S_1*....*S_n K?S1??....?Sn?次。
概率的核心 = n條件/n總,總個數指類別是 c k c_k ck?的實例個數,符合條件的個數指類別是 c k c_k ck?和第j個特征是 a j l a_{jl} ajl?同時成立的實例個數。
樸素貝葉斯的學習與分類算法
通過學習訓練數據集得到模型(得到先驗概率與條件概率),計算后驗概率分布 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ck?∣X=x),將后驗概率最大的類作為x實例的類輸出。
輸入:訓練集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1?,y1?),(x2?,y2?),...,(xN?,yN?)},實例 x = ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) ) x=(x^{(1)},x^{(2)},...,x^{(n)}) x=(x(1),x(2),...,x(n))
輸出:實例x所屬類別y
第一步:通過學習訓練數據集通過極大似然法得到模型
第二步:計算輸入實例x的先驗概率與條件概率,計算其屬于每一個類別的后驗概率,選出后驗概率最大的類。
例題
由下標的訓練數據學習一個樸素貝葉斯分類器,并確定 x = ( 2 , S ) T x=(2,S)^T x=(2,S)T的類標記 y y y。表中 X ( 1 ) , X ( 2 ) X^{(1)},X^{(2)} X(1),X(2)為特征,取值的集合分別為 A 1 = { 1 , 2 , 3 } , A 2 = { S , M , l } A_1=\{1,2,3\},A_2=\{S,M,l\} A1?={1,2,3},A2?={S,M,l},Y為類標記, Y ∈ C = { 1 , ? 1 } Y \in C=\{1,-1\} Y∈C={1,?1}。
解:本題需要比較后驗概率 P ( Y = 1 ∣ X = x ) P(Y=1|X=x) P(Y=1∣X=x)和 P ( Y = ? 1 ∣ X = x ) P(Y=-1|X=x) P(Y=?1∣X=x)的概率,這兩個概率的分母相同,我們只需要比較分子 P ( Y = 1 ) P ( X ( 1 ) = 2 ∣ Y = 1 ) P ( X ( 2 ) = S ∣ Y = 1 ) P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1) P(Y=1)P(X(1)=2∣Y=1)P(X(2)=S∣Y=1)和 P ( Y = ? 1 ) P ( X ( 1 ) = 2 ∣ Y = ? 1 ) P ( X ( 2 ) = S ∣ Y = ? 1 ) P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1) P(Y=?1)P(X(1)=2∣Y=?1)P(X(2)=S∣Y=?1)的概率
①先計算先驗概率與條件概率
②計算后驗概率的分子
P ( Y = 1 ) P ( X ( 1 ) = 2 ∣ Y = 1 ) P ( X ( 2 ) = S ∣ Y = 1 ) = 1 45 P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=\frac{1}{45} P(Y=1)P(X(1)=2∣Y=1)P(X(2)=S∣Y=1)=451?
P ( Y = ? 1 ) P ( X ( 1 ) = 2 ∣ Y = ? 1 ) P ( X ( 2 ) = S ∣ Y = ? 1 ) = 1 15 P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=\frac{1}{15} P(Y=?1)P(X(1)=2∣Y=?1)P(X(2)=S∣Y=?1)=151?
③比較選更大的值
實例點x的類標記為 y = ? 1 y=-1 y=?1
貝葉斯估計
問題: 極大似然估計可能會出現索要估計的概率值為0(0乘任何值都等于0),這會影響后驗概率的計算,使分類產生誤差。
案例: 假設數據集中全是女性,那么數據集中女性的概率為1。并不是代表就沒有男性,只是恰好數據集中沒有。
解決方法:采用貝葉斯估計
分子加 λ \lambda λ的原因是避免值為0,分母加 K λ K\lambda Kλ( c k c_k ck?的取值有K種)的原因是保證先驗概率和 ∑ k = 1 k P λ ( Y = c k ) = 1 \sum_{k=1}^kP_\lambda (Y=c_k)=1 ∑k=1k?Pλ?(Y=ck?)=1(隨機變量Y的概率分布)。
條件概率同上。
習題
按照拉普拉斯平滑估計( λ = 1 \lambda=1 λ=1),確定 x = ( 2 , S ) T x=(2,S)^T x=(2,S)T的類標記 y y y。表中 X ( 1 ) , X ( 2 ) X^{(1)},X^{(2)} X(1),X(2)為特征,取值的集合分別為 A 1 = { 1 , 2 , 3 } , A 2 = { S , M , l } A_1=\{1,2,3\},A_2=\{S,M,l\} A1?={1,2,3},A2?={S,M,l},Y為類標記, Y ∈ C = { 1 , ? 1 } Y \in C=\{1,-1\} Y∈C={1,?1}。
①先計算先驗概率與條件概率
②計算后驗概率的分子
P ( Y = 1 ) P ( X ( 1 ) = 2 ∣ Y = 1 ) P ( X ( 2 ) = S ∣ Y = 1 ) = 5 153 P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=\frac{5}{153} P(Y=1)P(X(1)=2∣Y=1)P(X(2)=S∣Y=1)=1535?
P ( Y = ? 1 ) P ( X ( 1 ) = 2 ∣ Y = ? 1 ) P ( X ( 2 ) = S ∣ Y = ? 1 ) = 28 459 P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=\frac{28}{459} P(Y=?1)P(X(1)=2∣Y=?1)P(X(2)=S∣Y=?1)=45928?
③比較選更大的值
實例點x的類標記為 y = ? 1 y=-1 y=?1
總結
- 樸素貝葉斯法是典型的生成學習方法。
生成方法由訓練數據學習聯合概率分布 P ( X , Y ) = P ( Y ) P ( X ∣ Y ) P(X,Y)=P(Y)P(X|Y) P(X,Y)=P(Y)P(X∣Y),具體來說,利用訓練數據學習先驗概率 P ( Y ) P(Y) P(Y)與條件概率 P ( X ∣ Y ) P(X|Y) P(X∣Y),然后學習后驗概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)。
概率估計方法可以是極大似然估計或貝葉斯估計
- 樸素貝葉斯利用貝葉斯定理與學習到的聯合概率模型進行分類預測。
P ( Y ∣ X ) = P ( X , Y ) P ( X ) = P ( Y ) P ( X ∣ Y ) ∑ Y P ( Y ) P ( X ∣ Y ) P(Y|X)=\frac{P(X,Y)}{P(X)}=\frac{P(Y)P(X|Y)}{\sum_YP(Y)P(X|Y)} P(Y∣X)=P(X)P(X,Y)?=∑Y?P(Y)P(X∣Y)P(Y)P(X∣Y)?
將輸入的x分到后驗概率最大的類y
y = a r g max ? c k P ( Y = c k ) ∏ j P ( X j = x j ∣ Y = c k ) y=arg \max_{c_k}P(Y=c_k)\prod_{j} P(X^{j}=x^{j}|Y=c_k) y=argmaxck??P(Y=ck?)∏j?P(Xj=xj∣Y=ck?)
- 后驗概率最大等價于0-1損失函數時的期望風險最小化
- 樸素貝葉斯法的基本假設時條件獨立性
P ( X = x ∣ Y = c k ) = P ( X 1 = x 1 , . . . , X n = x n ∣ Y = c k ) = p ( X 1 = x 1 ∣ Y = c k ) ? . . . ? p ( , X n ∣ Y = c k ) = ∏ j = 1 n P ( X j = x j ∣ Y = c k ) P(X=x|Y=c_k)=P(X^1=x^1,...,X^n=x^n|Y=c_k)=p(X^1=x^1|Y=c_k)*...*p(,X^n|Y=c_k)=\prod_{j=1}^n P(X^{j}=x^{j}|Y=c_k) P(X=x∣Y=ck?)=P(X1=x1,...,Xn=xn∣Y=ck?)=p(X1=x1∣Y=ck?)?...?p(,Xn∣Y=ck?)=∏j=1n?P(Xj=xj∣Y=ck?)
這是一個較強的假設。由于這一假設,模型包含的條件概率的數量大為減少,樸素貝葉斯法的學習與預測大為簡化。因此樸素貝葉斯法高效,且易于實現。缺點是分類的性能不一定高。