作者:vicky_siyu 致谢:小龙快跑jly, 巧儿、克力,Esther_or so,雨佳小和尚,老实憨厚的叶子
本文是对贝叶斯分类器(包括朴素贝叶斯分类器,半朴素贝叶斯分类器及贝叶斯网络)算法的演算及案例的详细分析。本文只是在学习后进行了总结并加入了自己的理解,如有不妥之处,还望海涵,也希望大家多多指教,一起学习!
ps.建议先阅读“理解贝叶斯分类器原理及关系 https://blog.csdn.net/weixin_43742744/article/details/85492334 ” 后再阅读本文,会对上述几种贝叶斯分类器有更深入的理解。
一、 朴素贝叶斯分类器
特点:假设输入的变量的特征属性之间具有很强的独立性。
即假设x1,x2,….,xn相互独立。{若AB相互独立,则P(AB)=P(A)P(B)}
通过这个假设,可以把联合分布概率转化为多个类条件概率的乘积。
(以下公式来自SIGAI–机器学习—雷老师)
p ( y = c i ∣ x ) = p ( y = c i ) p ( x ∣ y = c i ) p ( x ) p ( y = c i ∣ x ) = p ( y = c i ) ∏ j = 1 n p ( x j ∣ y = c i ) Z p(y=c_i|x) = \frac{p(y=c_i)p(x|y=c_i)}{p(x)} \\ p(y=c_i|x) = \frac{p(y=c_i)\displaystyle\prod_{j=1}^{n}p(x_j|y=c_i)}{Z} p(y=ci∣x)=p(x)p(y=ci)p(x∣y=ci)p(y=ci∣x)=Zp(y=ci)j=1∏np(xj∣y=ci)
朴素贝叶斯分类器既可以处理离散数值的分类问题,也能处理连续数值的分类问题。
下面分别结合公式和案例分析如何处理这两类问题。
1)离散型
类条件概率 p ( x i = v ∣ y = c ) = N x i = v , y = c N y = c p(x_i=v|y=c) = \frac{N_{x_i=v,y=c}}{N_{y=c}} p(xi=v∣y=c)=Ny=cNxi=v,y=c
类概率 p ( y = c ) = N y = c N p(y=c) = \frac{N_{y=c}}{N} p(y=c)=NNy=c
预测函数 a r g m a x y p ( y = c ) ) ∏ i = 1 n p ( x i = v ∣ y = c ) argmax_yp(y=c) )\displaystyle\prod_{i=1}^{n}p(x_i=v|y=c) argmaxyp(y=c))i=1∏np(xi=v∣y=c)
拉普拉斯平滑 p ( x i = v ∣ y = c ) = N x i = v ∧ y = c + 1 N y = c + k p(x_i=v|y=c) = \frac{N_{x_i=v\land y=c}+1}{N_{y=c}+k} p(xi=v∣y=c)=Ny=c+kNxi=v∧y=c+1
(PS. 拉普拉斯平滑处理是平滑处理的一种方式。平滑处理是为了避免某一类样本数量为0,导致该样本出现的概率为0。只要有一个概率为0,预测函数将概率连乘后就为0了。为了避免这种情况,我们在分子加上λ,分母加上Kλ,保证所有概率都非零。拉普拉斯平滑是λ=1的情况。)
2)连续型
当样本的特征是连续型的数值时,条件概率的分布通常假设为高斯分布,其朴素贝叶斯被称为高斯朴素贝叶斯。高斯分布又分为一维正态分布和多维正态分布。下面依次介绍两种正态分布。
一维正态分布
f ( x i = x ∣ y = c ) = 1 2 π σ e x p ( − ( x − μ ) 2 2 σ 2 ) f(x_i=x|y=c) = \frac{1}{\sqrt{2\pi}\sigma}exp\bigg (- \frac{(x-\mu)^2}{2\sigma^2} \bigg ) f(xi=x∣y=c)=2πσ1exp(−2σ2(x−μ)2)
a r g m a x c p ( y = c ) ) ∐ i = 1 n f ( x i ∣ y = c ) argmax_cp(y=c) )\displaystyle\coprod_{i=1}^{n}f(x_i|y=c) argmaxcp(y=c))i=1∐nf(xi∣y=c)
为了得到函数,需要求出均值和方差:
求得均值和方差后,我们可以得到某类的不同特征属性的高斯函数。
最大化后验概率正比于似然与先验的乘积,算出似然后,还需计算先验概率。
i. 假设各类出现的概率一样
p ( C k ) = 1 K p(C_k)= \frac{1}{K} p(Ck)=K1
ii. 仅考虑训练样本数据时
p ( C k ) = N k N p(C_k)= \frac{N_k}{N} p(Ck)=NNk
平滑处理后的概率:(λ=1时为拉普拉斯平滑修正)
p ( C k ) = N k + λ N + K λ p(C_k)= \frac{N_k+\lambda}{N+K\lambda} p(Ck)=N+KλNk+λ
案例(来源于西瓜书):[1]
编号 | 色泽 | 根蒂 | 敲声 | 纹理 | 脐部 | 触感 | 密度 | 含糖率 | 好瓜 |
---|---|---|---|---|---|---|---|---|---|
1 | 青绿 | 蜷缩 | 浊响 | 清晰 | 凹陷 | 硬滑 | 0.697 | 0.460 | 是 |
2 | 乌黑 | 蜷缩 | 沉闷 | 清晰 | 凹陷 | 硬滑 | 0.774 | 0.376 | 是 |
3 | 乌黑 | 蜷缩 | 浊响 | 清晰 | 凹陷 | 硬滑 | 0.634 | 0.264 | 是 |
4 | 青绿 | 蜷缩 | 沉闷 | 清晰 | 凹陷 | 硬滑 | 0.608 | 0.318 | 是 |
5 | 浅白 | 蜷缩 | 浊响 | 清晰 | 凹陷 | 硬滑 | 0.556 | 0.215 | 是 |
6 | 青绿 | 稍蜷 | 浊响 | 清晰 | 稍凹 | 软粘 | 0.403 | 0.237 | 是 |
7 | 乌黑 | 稍蜷 | 浊响 | 稍糊 | 稍凹 | 软粘 | 0.481 | 0.149 | 是 |
8 | 乌黑 | 稍蜷 | 浊响 | 清晰 | 稍凹 | 硬滑 | 0.437 | 0.211 | 是 |
9 | 乌黑 | 稍蜷 | 沉闷 | 稍糊 | 稍凹 | 硬滑 | 0.666 | 0.091 | 否 |
10 | 青绿 | 硬挺 | 清脆 | 清晰 | 平坦 | 软粘 | 0.243 | 0.267 | 否 |
11 | 浅白 | 硬挺 | 清脆 | 模糊 | 平坦 | 硬滑 | 0.245 | 0.057 | 否 |
12 | 浅白 | 蜷缩 | 浊响 | 模糊 | 平坦 | 软粘 | 0.343 | 0.099 | 否 |
13 | 青绿 | 稍蜷 | 浊响 | 稍糊 | 凹陷 | 硬滑 | 0.639 | 0.161 | 否 |
14 | 浅白 | 稍蜷 | 沉闷 | 稍糊 | 凹陷 | 硬滑 | 0.657 | 0.198 | 否 |
15 | 乌黑 | 稍蜷 | 浊响 | 清晰 | 稍凹 | 软粘 | 0.360 | 0.370 | 否 |
16 | 浅白 | 蜷缩 | 浊响 | 模糊 | 平坦 | 硬滑 | 0.593 | 0.042 | 否 |
17 | 青绿 | 蜷缩 | 沉闷 | 稍糊 | 稍凹 | 硬滑 | 0.719 | 0.103 | 否 |
判断一个具有特征:{色泽=青绿,根蒂=蜷缩,敲声=浊响,纹理=清晰,脐部=凹陷,触感=硬滑,密度=0.697,含糖率=0.460}的测试样例瓜是否为好瓜?
先验: P ( 好 瓜 = 是 ) = 8 / 17 ≈ 0.471 P ( 好 瓜 = 否 ) = 9 / 17 ≈ 0.529 P(好瓜=是)=8/17≈0.471 \\ P(好瓜=否)=9/17≈0.529 P(好瓜=是)=8/17≈0.471P(好瓜=否)=9/17≈0.529
类条件概率:
离散值属性通过样本统计得出,连续值属性假设为一维正态分布,通过样本计算出均值和方差,再代入测试集的数据求解。
P 青 绿 ∣ 是 = P ( 色 泽 = 青 绿 ∣ 好 瓜 = 是 ) = 3 8 = 0.375 P 青 绿 ∣ 否 = P ( 色 泽 = 青 绿 ∣ 好 瓜 = 否 ) = 3 9 = 0.333 P 蜷 缩 ∣ 是 = P ( 根 蒂 = 蜷 缩 ∣ 好 瓜 = 是 ) = 5 8 = 0.625 P 蜷 缩 ∣ 否 = P ( 根 蒂 = 蜷 缩 ∣ 好 瓜 = 否 ) = 3 9 = 0.333 P 浊 响 ∣ 是 = P ( 敲 声 = 浊 响 ∣ 好 瓜 = 是 ) = 6 8 = 0.750 P 浊 响 ∣ 否 = P ( 敲 声 = 浊 响 ∣ 好 瓜 = 否 ) = 4 9 = 0.444 P 清 晰 ∣ 是 = P ( 纹 理 = 清 晰 ∣ 好 瓜 = 是 ) = 7 8 = 0.875 P 清 晰 ∣ 否 = P ( 纹 理 = 清 晰 ∣ 好 瓜 = 否 ) = 2 9 = 0.222 P 凹 陷 ∣ 是 = P ( 脐 部 = 凹 陷 ∣ 好 瓜 = 是 ) = 6 8 = 0.750 P 凹 陷 ∣ 否 = P ( 脐 部 = 凹 陷 ∣ 好 瓜 = 否 ) = 2 9 = 0.222 P 硬 滑 ∣ 是 = P ( 触 感 = 硬 滑 ∣ 好 瓜 = 是 ) = 6 8 = 0.750 P 硬 滑 ∣ 否 = P ( 触 感 = 硬 滑 ∣ 好 瓜 = 否 ) = 6 9 = 0.667 P 密 度 : 0.697 ∣ 是 = P ( 密 度 = 0.697 ∣ 好 瓜 = 是 ) = 1 2 π ⋅ 0.129 e x p ( − ( 0.697 − 0.574 ) 2 2 ⋅ 0.12 9 2 ) ≈ 1.959 P 密 度 : 0.697 ∣ 否 = P ( 密 度 = 0.697 ∣ 好 瓜 = 否 ) = 1 2 π ⋅ 0.195 e x p ( − ( 0.697 − 0.496 ) 2 2 ⋅ 0.19 5 2 ) ≈ 1.203 P 含 糖 率 : 0.460 ∣ 是 = P ( 含 糖 率 = 0.460 ∣ 好 瓜 = 是 ) = 1 2 π ⋅ 0.101 e x p ( − ( 0.460 − 0.279 ) 2 2 ⋅ 0.10 1 2 ) ≈ 0.788 P 含 糖 率 : 0.460 ∣ 否 = P ( 含 糖 率 = 0.460 ∣ 好 瓜 = 否 ) = 1 2 π ⋅ 0.108 e x p ( − ( 0.460 − 0.154 ) 2 2 ⋅ 0.10 8 2 ) ≈ 0.066 P_{青绿|是}=P(色泽=青绿|好瓜=是)=\frac{3}{8}=0.375 \\ P_{青绿|否}=P(色泽=青绿|好瓜=否)=\frac{3}{9}=0.333 \\ P_{蜷缩|是}=P(根蒂=蜷缩|好瓜=是)=\frac{5}{8}=0.625 \\ P_{蜷缩|否}=P(根蒂=蜷缩|好瓜=否)=\frac{3}{9}=0.333 \\ P_{浊响|是}=P(敲声=浊响|好瓜=是)=\frac{6}{8}=0.750 \\ P_{浊响|否}=P(敲声=浊响|好瓜=否)=\frac{4}{9}=0.444 \\ P_{清晰|是}=P(纹理=清晰|好瓜=是)=\frac{7}{8}=0.875 \\ P_{清晰|否}=P(纹理=清晰|好瓜=否)=\frac{2}{9}=0.222 \\ P_{凹陷|是}=P(脐部=凹陷|好瓜=是)=\frac{6}{8}=0.750 \\ P_{凹陷|否}=P(脐部=凹陷|好瓜=否)=\frac{2}{9}=0.222 \\ P_{硬滑|是}=P(触感=硬滑|好瓜=是)=\frac{6}{8}=0.750 \\ P_{硬滑|否}=P(触感=硬滑|好瓜=否)=\frac{6}{9}=0.667 \\ P_{密度:0.697|是}=P(密度=0.697|好瓜=是)=\frac{1}{\sqrt{2\pi}\cdot0.129}exp(-\frac{(0.697-0.574)^2}{2\cdot0.129^2})\approx1.959 \\ P_{密度:0.697|否}=P(密度=0.697|好瓜=否)=\frac{1}{\sqrt{2\pi}\cdot0.195}exp(-\frac{(0.697-0.496)^2}{2\cdot0.195^2})\approx1.203 \\ P_{含糖率:0.460|是}=P(含糖率=0.460|好瓜=是)=\frac{1}{\sqrt{2\pi}\cdot0.101}exp(-\frac{(0.460-0.279)^2}{2\cdot0.101^2})\approx0.788 \\ P_{含糖率:0.460|否}=P(含糖率=0.460|好瓜=否)=\frac{1}{\sqrt{2\pi}\cdot0.108}exp(-\frac{(0.460-0.154)^2}{2\cdot0.108^2})\approx0.066 \\ P青绿∣是=P(色泽=青绿∣好瓜=是)=83=0.375P青绿∣否=P(色泽=青绿∣好瓜=否)=93=0.333P蜷缩∣是=P(根蒂=蜷缩∣好瓜=是)=85=0.625P蜷缩∣否=P(根蒂=蜷缩∣好瓜=否)=93=0.333P浊响∣是=P(敲声=浊响∣好瓜=是)=86=0.750P浊响∣否