系列文章
- 机器学习模型一文通之——朴素贝叶斯
- 机器学习模型一文通之——线性回归
现有如下西瓜:
编号 | 色泽( X 1 X_1 X1) | 根蒂( X 2 X_2 X2) | 敲声( X 3 X_3 X3) | 纹理( X 4 X_4 X4) | 脐部( X 5 X_5 X5) | 触感( X 6 X_6 X6) | 好瓜( Y Y Y) |
---|---|---|---|---|---|---|---|
1 | 青绿 | 蜷缩 | 浊响 | 清晰 | 凹陷 | 硬滑 | 是 |
2 | 乌黑 | 蜷缩 | 沉闷 | 清晰 | 凹陷 | 硬滑 | 是 |
3 | 乌黑 | 蜷缩 | 浊响 | 清晰 | 凹陷 | 硬滑 | 是 |
4 | 青绿 | 蜷缩 | 沉闷 | 清晰 | 凹陷 | 硬滑 | 是 |
5 | 浅白 | 蜷缩 | 浊响 | 清晰 | 凹陷 | 硬滑 | 是 |
6 | 青绿 | 稍蜷 | 浊响 | 清晰 | 稍凹 | 软粘 | 是 |
7 | 乌黑 | 稍蜷 | 浊响 | 稍糊 | 稍凹 | 软粘 | 是 |
8 | 乌黑 | 稍蜷 | 浊响 | 清晰 | 稍凹 | 硬滑 | 是 |
9 | 乌黑 | 稍蜷 | 沉闷 | 稍糊 | 稍凹 | 硬滑 | 否 |
10 | 青绿 | 硬挺 | 清脆 | 清晰 | 平坦 | 软粘 | 否 |
11 | 浅白 | 硬挺 | 清脆 | 模糊 | 平坦 | 硬滑 | 否 |
12 | 浅白 | 蜷缩 | 浊响 | 模糊 | 平坦 | 软粘 | 否 |
13 | 青绿 | 稍蜷 | 浊响 | 稍糊 | 凹陷 | 硬滑 | 否 |
14 | 浅白 | 稍蜷 | 沉闷 | 稍糊 | 凹陷 | 硬滑 | 否 |
15 | 乌黑 | 稍蜷 | 浊响 | 清晰 | 稍凹 | 软粘 | 否 |
16 | 浅白 | 蜷缩 | 浊响 | 模糊 | 平坦 | 硬滑 | 否 |
17 | 青绿 | 蜷缩 | 沉闷 | 稍糊 | 稍凹 | 硬滑 | 否 |
现有一西瓜特征为 青绿,稍蜷,浊响,清晰,凹陷,硬滑
,判断该瓜是否为好瓜。
换一个说法,就是在已知上述数据分布下,分别求该瓜为好瓜的概率 P ( 好瓜 ∣ ( 青绿 , 稍蜷 , 浊响 , 清晰 , 凹陷 , 硬滑 ) ) P(好瓜|(青绿,稍蜷,浊响,清晰,凹陷,硬滑)) P(好瓜∣(青绿,稍蜷,浊响,清晰,凹陷,硬滑)),分析到这里,需要先引入相关概率知识。
联合概率: 包含多个事件并且所有事件同时成立的概率,例如对于事件A,B,联合概率记做 P ( A , B ) P(A,B) P(A,B)。对于不相关事件,其联合概率即为 P ( A , B ) = P ( A ) P ( B ) P(A,B)=P(A)P(B) P(A,B)=P(A)P(B);对于相关事件,即一个事件的发生会影响另一事件,则涉及到条件概率 P ( A , B ) = P ( A ) P ( B ∣ A ) P(A,B)=P(A)P(B|A) P(A,B)=P(A)P(B∣A)或 P ( B , A ) = P ( B ) P ( A ∣ B ) P(B,A)=P(B)P(A|B) P(B,A)=P(B)P(A∣B)。
条件概率: 表示在一个事件发生的情况下,另一事件发生的概率。例如记事件A发生的概率为 P ( A ) P(A) P(A),事件B发生的概率为 P ( B ) P(B) P(B),则在B事件发生的情况下,A事件发生的概率即为条件概率,记为 P ( A ∣ B ) 。 P(A|B)。 P(A∣B)。
先验概率: 基于统计的概率,基于以往历史经验或分析得到的结果,不依赖当前发生的事件。
后验概率: 是从条件概率而来,强调由果推因,是指在两个相关事件中,已经发生的事件(证据)下,另一事件发生的概率。
贝叶斯定理: 由相关事件的联合概率,又因为 P ( A , B ) = P ( B , A ) P(A,B)=P(B,A) P(A,B)=P(B,A),所以有 P ( A ) P ( B ∣ A ) = P ( B ) P ( A ∣ B ) P(A)P(B|A)=P(B)P(A|B) P(A)P(B∣A)=P(B)P(A∣B),即
P ( A ∣ B ) = P ( A ) P ( B ∣ A ) P ( B ) P(A|B)=\frac{P(A)P(B|A)}{P(B)} P(A∣B)=P(B)P(A)P(B∣A)这就是贝叶斯定理。从先验和后验的角度看,B称为证据,A称为事件,则
完备事件组: 设一系列事件 { A 1 , A 2 , . . . , A n } \{A_1,A_2,...,A_n\} {A1,A2,...,An}构成样本空间 S S S中的一个完备事件组,那么有 A i ∩ A j = ∅ , i ≠ j A_i \cap A_j=\emptyset, i \neq j Ai∩Aj=∅,i=j,并且 A 1 ∩ . . . ∩ A n = S A_1 \cap ...\cap A_n=S A1∩...∩An=S。每次试验中完备事件组中有且仅有一个事件发生,完备事件组构成样本空间的一个划分。
全概率公式: 将对一复杂事件A的概率求解问题转化为了在不同情况下发生的简单事件的概率的求和问题。例如 A 1 , A 2 , . . . , A n {A_1,A_2,...,A_n} A1,A2,...,An构成一个完备事件组,则对任一事件B有
P ( B ) = P ( B ∣ A 1 ) P ( A 1 ) + P ( B ∣ A 2 ) P ( A 2 ) + . . . + P ( B ∣ A n ) P ( A n ) = ∑ i = 1 n P ( B ∣ A i ) P ( A i ) P(B)=P(B|A_1)P(A_1)+P(B|A_2)P(A_2)+...+P(B|A_n)P(A_n)=\sum^{n}_{i=1}{P(B|A_i)P(A_i)} P(B)=P(B∣A1)P(A1)+P(B∣A2)P(A2)+...+P(B∣An)P(An)=i=1∑nP(B∣Ai)P(Ai)
我们要求 P ( 好瓜 ∣ ( 青绿 , 稍蜷 , 浊响 , 清晰 , 凹陷 , 硬滑 ) ) P(好瓜|(青绿,稍蜷,浊响,清晰,凹陷,硬滑)) P(好瓜∣(青绿,稍蜷,浊响,清晰,凹陷,硬滑)),由贝叶斯定理
P ( 好瓜 ∣ ( 青绿 , 稍蜷 , 浊响 , 清晰 , 凹陷 , 硬滑 ) ) = P ( ( 青绿 , 稍蜷 , 浊响 , 清晰 , 凹陷 , 硬滑 ) ∣ 好瓜 ) P ( 好瓜 ) P ( 青绿 , 稍蜷 , 浊响 , 清晰 , 凹陷 , 硬滑 ) P(好瓜|(青绿,稍蜷,浊响,清晰,凹陷,硬滑))=\frac{P((青绿,稍蜷,浊响,清晰,凹陷,硬滑)|好瓜)P(好瓜)}{P(青绿,稍蜷,浊响,清晰,凹陷,硬滑)} P(好瓜∣(青绿,稍蜷,浊响,清晰,凹陷,硬滑))=P(青绿,稍蜷,浊响,清晰,凹陷,硬滑)P((青绿,稍蜷,浊响,清晰,凹陷,硬滑)∣好瓜)P(好瓜)所以只要分别计算出 P ( ( 青绿 , 稍蜷 , 浊响 , 清晰 , 凹陷 , 硬滑 ) ∣ 好瓜 ) P((青绿,稍蜷,浊响,清晰,凹陷,硬滑)|好瓜) P((青绿,稍蜷,浊响,清晰,凹陷,硬滑)∣好瓜), P ( 好瓜 ) P(好瓜) P(好瓜)和 P ( 青绿 , 稍蜷 , 浊响 , 清晰 , 凹陷 , 硬滑 ) P(青绿,稍蜷,浊响,清晰,凹陷,硬滑) P(青绿,稍蜷,浊响,清晰,凹陷,硬滑)就可以得到最终结果。
根据给出的数据,容易统计出先验概率 P ( 好瓜 ) = 8 / 17 P(好瓜)=8/17 P(好瓜)=8/17。而对于 P ( ( 青绿 , 稍蜷 , 浊响 , 清晰 , 凹陷 , 硬滑 ) ∣ 好瓜 ) P((青绿,稍蜷,浊响,清晰,凹陷,硬滑)|好瓜) P((青绿,稍蜷,浊响,清晰,凹陷,硬滑)∣好瓜),自然地一个想法是在给出的数据中统计好西瓜中满足青绿,稍蜷,浊响,清晰,凹陷,硬滑
特征的占比,但是这样的做法有两个问题:
因此,朴素贝叶斯提出一个较强的假设,即各特征之间具有条件独立性,要注意的是这里的条件独立性指的是在某事件发生的情况下,特征之间具有独立性,在现实世界中,这一假设往往很难成立,这也是朴素贝叶斯中朴素一词的由来。在朴素贝叶斯下,有
P ( ( 青绿 , 稍蜷 , 浊响 , 清晰 , 凹陷 , 硬滑 ) ∣ 好瓜 ) = P ( 青绿 ∣ 好 ) P ( 稍蜷 ∣ 好 ) P ( 浊响 ∣ 好 ) P ( 清晰 ∣ 好 ) P ( 凹陷 ∣ 好 ) P ( 硬滑 ∣ 好 ) = 3 8 ∗ 3 8 ∗ 6 8 ∗ 7 8 ∗ 5 8 ∗ 6 8 = 2835 65536 \begin{aligned} P((青绿,稍蜷,浊响,清晰,凹陷,硬滑)|好瓜)&=P(青绿|好)P(稍蜷|好)P(浊响|好)P(清晰|好)P(凹陷|好)P(硬滑|好) \\ &=\frac{3}{8}*\frac{3}{8}*\frac{6}{8}*\frac{7}{8}*\frac{5}{8}*\frac{6}{8} \\ &=\frac{2835}{65536} \end{aligned} P((青绿,稍蜷,浊响,清晰,凹陷,硬滑)∣好瓜)=P(青绿∣好)P(稍蜷∣好)P(浊响∣好)P(清晰∣好)P(凹陷∣好)P(硬滑∣好)=83∗83∗86∗87∗85∗86=655362835
对于概率 P ( 青绿 , 稍蜷 , 浊响 , 清晰 , 凹陷 , 硬滑 ) P(青绿,稍蜷,浊响,清晰,凹陷,硬滑) P(青绿,稍蜷,浊响,清晰,凹陷,硬滑),由于瓜的状态 { 好瓜,坏瓜 } \{好瓜,坏瓜\} {好瓜,坏瓜}构成完备事件集,根据全概率公式有
P ( 青绿 , 稍蜷 , 浊响 , 清晰 , 凹陷 , 硬滑 ) = P ( ( 青绿 , 稍蜷 , 浊响 , 清晰 , 凹陷 , 硬滑 ) ∣ 好 ) P ( 好 ) + P ( ( 青绿 , 稍蜷 , 浊响 , 清晰 , 凹陷 , 硬滑 ) ∣ 坏 ) P ( 坏 ) \begin{aligned} P(青绿,稍蜷,浊响,清晰,凹陷,硬滑)&=P((青绿,稍蜷,浊响,清晰,凹陷,硬滑)|好)P(好) \\ &+P((青绿,稍蜷,浊响,清晰,凹陷,硬滑)|坏)P(坏) \\ \end{aligned} P(青绿,稍蜷,浊响,清晰,凹陷,硬滑)=P((青绿,稍蜷,浊响,清晰,凹陷,硬滑)∣好)P(好)+P((青绿,稍蜷,浊响,清晰,凹陷,硬滑)∣坏)P(坏)
从而进行转化,根据朴素贝叶斯算法求解。
综上,我们可以计算
P ( ( 青绿 , 稍蜷 , 浊响 , 清晰 , 凹陷 , 硬滑 ) ∣ 好瓜 ) = 2835 65536 ∗ 8 17 2835 65536 ∗ 8 17 + 128 59049 ∗ 9 17 = 0.947 \begin{aligned} P((青绿,稍蜷,浊响,清晰,凹陷,硬滑)|好瓜)&=\frac{\frac{2835}{65536}*\frac{8}{17}}{\frac{2835}{65536}*\frac{8}{17}+\frac{128}{59049}*\frac{9}{17}} \\ &=0.947 \end{aligned} P((青绿,稍蜷,浊响,清晰,凹陷,硬滑)∣好瓜)=655362835∗178+59049128∗179655362835∗178=0.947
结果大于0.5,因此该瓜为好瓜。
对于判断西瓜好坏问题,由于各特征在各类别下服从多项式分布,因此也称为多项式朴素贝叶斯。
设有样本数据集 D = { d 1 , d 2 , . . . , d n } D=\{d_1,d_2,...,d_n\} D={d1,d2,...,dn},每个样本拥有多个特征构成特征属性集 X = { X 1 , X 2 , . . . , X k } X=\{X_1,X_2,...,X_k\} X={X1,X2,...,Xk},类变量为 Y = { y 1 , y 2 , . . . , y m } Y=\{y_1,y_2,...,y_m\} Y={y1,y2,...,ym},即样本共有 m m m个类别。由朴素贝叶斯算法,后验概率可以由先验概率 P ( Y ) P(Y) P(Y)、证据 P ( X ) P(X) P(X)和类条件概率 P ( X ∣ Y ) P(X|Y) P(X∣Y)计算出:
P ( Y ∣ X ) = P ( Y ) P ( X ∣ Y ) P ( X ) P(Y|X)=\frac{P(Y)P(X|Y)}{P(X)} P(Y∣X)=P(X)P(Y)P(X∣Y)因为朴素贝叶斯假设各特征之间条件独立,则在给定类别为 y y y的情况下,上式可以表示为
P ( X ∣ Y = y ) = ∏ i = 1 k P ( X i ∣ Y = y ) P(X|Y=y)=\prod_{i=1}^{k}{P(X_i|Y=y)} P(X∣Y=y)=i=1∏kP(Xi∣Y=y)对于条件概率 P ( X i ∣ Y = y ) P(X_i|Y=y) P(Xi∣Y=y),其中特征 X i X_i Xi可能有多个具体的特征取值,对于特定特征值 X i = x X_i=x Xi=x,通过直接统计频率来估计条件概率:
P ( X i = x ∣ Y = y ) = c o u n t ( y i = = y , X i = = x ) + λ c o u n t ( y i = = y ) + m λ P(X_i=x|Y=y)=\frac{count(y_i==y,X_i==x)+\lambda}{count(y_i==y)+m\lambda} P(Xi=x∣Y=y)=count(yi==y)+mλcount(yi==y,Xi==x)+λ其中 m m m为特征 X i X_i Xi中的特征数量, λ \lambda λ为平滑系数,这是为了防止某特征样本数为0时会导致整个概率为0。当 λ \lambda λ为1时,即为拉普拉斯平滑,当 λ < 1 \lambda<1 λ<1时则称为利德斯通平滑。
可得后验概率为:
P ( Y ∣ X ) = P ( y ) ∏ i = 1 k P ( x i ∣ Y ) P ( X ) P(Y|X)=\frac{P(y)\prod_{i=1}^{k}{P(x_i|Y)}}{P(X)} P(Y∣X)=P(X)P(y)∏i=1kP(xi∣Y)即有对一个样本数据属于类别 y i y_i yi的朴素贝叶斯计算公式如下:
P ( y i ∣ x 1 , x 2 , . . . , x k ) = p ( y i ) ∏ j = 1 k P ( x j ∣ y i ) ∏ j = 1 k P ( x j ) P(y_i|x_1,x_2,...,x_k)=\frac{p(y_i)\prod_{j=1}^{k}P(x_j|y_i)}{\prod_{j=1}^{k}P(x_j)} P(yi∣x1,x2,...,xk)=∏j=1kP(xj)p(yi)∏j=1kP(xj∣yi)
假设数据服从伯努利分布,即特征都是二值变量 { 1 , 0 } \{1,0\} {1,0},或者可以通过二值化转换为二值变量。则条件概率为
P ( X i = 1 ∣ Y = y ) = c o u n t ( y i = = y , X i = = 1 ) + λ c o u n t ( y i = = y ) + 2 λ P(X_i=1|Y=y)=\frac{count(y_i==y,X_i==1)+\lambda}{count(y_i==y)+2\lambda} P(Xi=1∣Y=y)=count(yi==y)+2λcount(yi==y,Xi==1)+λ其中同样使用平滑系数处理零值。
在上文列举的例子中,西瓜的各项特征都是离散型变量, 可以直接通过统计频率来估计概率。那么当特征为连续型变量时,例如身高、温度等,就无法直接通过频率估计概率。
先验分布 P ( Y ) P(Y) P(Y)的估计不变,重点是条件概率 P ( X i = x ∣ Y = y ) P(X_i=x|Y=y) P(Xi=x∣Y=y)的估计。由于X为连续型变量,所以对该连续型变量作出假设 P ( X i ∣ Y = y ) ∼ N ( μ , σ 2 ) P(X_i|Y=y)\sim N(\mu,\sigma^{2}) P(Xi∣Y=y)∼N(μ,σ2),即服从正态分布。则条件概率可用高斯概率密度函数来表示:
P ( X i = x ∣ Y = y ) = 1 2 π σ i j 2 e − ( x i − μ i j ) 2 2 σ i j 2 P(X_i=x|Y=y)=\frac{1}{\sqrt{2\pi}\sigma_{ij}^{2}}e^{- \frac{(x_i-\mu_{ij})^2}{2\sigma_{ij}{2}}} P(Xi=x∣Y=y)=2πσij21e−2σij2(xi−μij)2其中 μ i j \mu_{ij} μij和 σ i j \sigma_{ij} σij表示在类 y i y_i yi下特征 x i x_i xi的高斯分布参数。