樸素貝葉斯法(Naive Bayes model)是基于貝葉斯定理與特征條件獨立假設的分類方法。
貝葉斯定理
P ( A ∣ B ) = P ( B ∣ A ) ? P ( A ) P ( B ) P(A|B)=\frac{P(B|A) * P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)?P(A)?
其中A
表示分類,B
表示屬性,因此此公式更通俗的表述如下:
P ( 分類 ∣ 屬性 ) = P ( 屬性 ∣ 分類 ) ? P ( 分類 ) P ( 屬性 ) P(分類|屬性)=\frac{P(屬性|分類) * P(分類)}{P(屬性)} P(分類∣屬性)=P(屬性)P(屬性∣分類)?P(分類)?
即在已知屬性B
的前提下,分類為A
的概率等于似然率(已知分類中屬性B
的概率)乘以先驗概率(分類A
的概率)除以證據概率(屬性B
的概率)。
優點
- 對于大量數據的預測靠譜。
- 計算簡便。
缺點
- 屬性之間必須獨立。
- 選取沒有相互干涉的屬性是難點。
舉例:在夏季,某公園男性穿涼鞋的概率為 1/2 ,女性穿涼鞋的概率為 2/3 ,
并且該公園中男女比例通常為 2:1 ,問題:若你在公園中隨機遇到一個穿涼鞋的人,
請問他的性別為男性或女性的概率分別為多少?
P(男|穿涼鞋)=P(穿涼鞋|男)P(男)/P(穿涼鞋)
= 1/2 * 2/3 / (2/3 * 1/2 + 1/3 2/3)
= 1/3 / (1/3+2/9)
= 3/5
P(女|穿涼鞋)=P(穿涼鞋|女)P(女)/P(穿涼鞋)
= 2/3 * 1/3 / (2/3 * 1/2 + 1/3 2/3)
= 2/9 / (1/3+2/9)
= 2/9 * 9/5
= 2/5
所以在公園里,隨機遇到一個穿涼鞋的人,性別為女男的概率是 3/5,性別為女的概率為 2/5。
怎樣避免0概率問題
使用拉普拉斯修正,修改公式如下:
P ^ ( C = c j ) = N ( c j ) + 1 N + C \hat{P}(C=c_j)=\frac{N(c_j)+1}{N+C} P^(C=cj?)=N+CN(cj?)+1?
上式表示 c j c_j cj?分類的概率,其中 C 表示分類數量,N 表示所有的數量。
P ^ ( x i ∣ C = c j ) = N ( x i ∣ C = c j ) + 1 N + X \hat{P}(x_i|C=c_j)=\frac{N(x_i|C=c_j)+1}{N+X} P^(xi?∣C=cj?)=N+XN(xi?∣C=cj?)+1?
上式表示特定 x i x_i xi?屬性中類 c j c_j cj?的概率,其中 X 表示屬性數量。
高斯樸素貝葉斯分類器
- 高斯分布
P ( x i ∣ μ , σ ) = 1 ( 2 π σ 2 ) 1 2 ? e ? ( x i ? μ ) 2 2 σ 2 P(x_i|\mu,\sigma)=\frac{1}{(2\pi \sigma^2)^{\frac{1}{2}}} * e^{-\frac{(x_i-\mu)^2}{2\sigma^2}} P(xi?∣μ,σ)=(2πσ2)21?1??e?2σ2(xi??μ)2?
其中 μ = 1 N ∑ i = 1 N x i \mu=\frac{1}{N}\sum\limits_{i=1}^{N}x_i μ=N1?i=1∑N?xi?表示樣本的期望, σ 2 = 1 N ∑ i = 1 N ( x i ? μ ) 2 \sigma^2=\frac{1}{N}\sum\limits_{i=1}^{N}(x_i-\mu)^2 σ2=N1?i=1∑N?(xi??μ)2表示樣本的方差。
如果要使用無偏差估計,N 取 N+1。 - 如果特征值服從高斯分布,那么根據特征值估計分類概率的公式如下:
P ^ ( x i ∣ C = c i ) = 1 ( 2 π σ i j 2 ) 1 2 ? e ? ( x i ? μ i j ) 2 2 σ i j 2 \hat{P}(x_i|C=c_i)=\frac{1}{(2\pi \sigma_{ij}^2)^{\frac{1}{2}}} * e^{-\frac{(x_i-\mu{ij})^2}{2\sigma_{ij}^2}} P^(xi?∣C=ci?)=(2πσij2?)21?1??e?2σij2?(xi??μij)2?
其中 μ i j \mu_{ij} μij?表示分類為 c i c_i ci?時,屬性 x j x_j xj?的期望,
σ i j 2 \sigma_{ij}^2 σij2?表示分了為 c i c_i ci?時,屬性 x j x_j xj?的方差。