贝叶斯分类器

1 图解极大似然估计

极大似然估计的原理,用一张图片来说明,如下图所示:

深度学习之贝叶斯分类器-LMLPHP

​ 例:有两个外形完全相同的箱子,1号箱有99只白球,1只黑球;2号箱有1只白球,99只黑球。在一次实验中,取出的是黑球,请问是从哪个箱子中取出的?

​ 一般的根据经验想法,会猜测这只黑球最像是从2号箱取出,此时描述的“最像”就有“最大似然”的意思,这种想法常称为“最大似然原理”。

2 极大似然估计原理

​ 总结起来,最大似然估计的目的就是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。

​ 极大似然估计是建立在极大似然原理的基础上的一个统计方法。极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。

​ 由于样本集中的样本都是独立同分布,可以只考虑一类样本集 D D D,来估计参数向量 θ ⃗ \vec\theta θ 。记已知的样本集为:
D = x ⃗ 1 , x ⃗ 2 , . . . , x ⃗ n D=\vec x_{1},\vec x_{2},...,\vec x_{n} D=x 1,x 2,...,x n
似然函数(likelihood function):联合概率密度函数 p ( D ∣ θ ⃗ ) p(D|\vec\theta ) p(Dθ )称为相对于 x ⃗ 1 , x ⃗ 2 , . . . , x ⃗ n \vec x_{1},\vec x_{2},...,\vec x_{n} x 1,x 2,...,x n θ ⃗ \vec\theta θ 的似然函数。
l ( θ ⃗ ) = p ( D ∣ θ ⃗ ) = p ( x ⃗ 1 , x ⃗ 2 , . . . , x ⃗ n ∣ θ ⃗ ) = ∏ i = 1 n p ( x ⃗ i ∣ θ ⃗ ) l(\vec\theta )=p(D|\vec\theta ) =p(\vec x_{1},\vec x_{2},...,\vec x_{n}|\vec\theta )=\prod_{i=1}^{n}p(\vec x_{i}|\vec \theta ) l(θ )=p(Dθ )=p(x 1,x 2,...,x nθ )=i=1np(x iθ )
如果 θ ⃗ ^ \hat{\vec\theta} θ ^是参数空间中能使似然函数 l ( θ ⃗ ) l(\vec\theta) l(θ )最大的 θ ⃗ \vec\theta θ 值,则 θ ⃗ ^ \hat{\vec\theta} θ ^应该是“最可能”的参数值,那么 θ ⃗ ^ ​ \hat{\vec\theta}​ θ ^就是 θ \theta θ的极大似然估计量。它是样本集的函数,记作:
θ ⃗ ^ = d ( D ) = arg ⁡ max ⁡ θ ⃗ l ( θ ⃗ ) \hat{\vec\theta}=d(D)= \mathop {\arg \max}_{\vec\theta} l(\vec\theta ) θ ^=d(D)=argmaxθ l(θ )
θ ⃗ ^ ( x ⃗ 1 , x ⃗ 2 , . . . , x ⃗ n ) \hat{\vec\theta}(\vec x_{1},\vec x_{2},...,\vec x_{n}) θ ^(x 1,x 2,...,x n)称为极大似然函数估计值。

3 贝叶斯分类器基本原理

​ 贝叶斯决策论通过相关概率已知的情况下利用误判损失来选择最优的类别分类。
假设有 N N N种可能的分类标记,记为 Y = { c 1 , c 2 , . . . , c N } Y=\{c_1,c_2,...,c_N\} Y={c1,c2,...,cN},那对于样本 x \boldsymbol{x} x,它属于哪一类呢?

计算步骤如下:

step 1. 算出样本 x \boldsymbol{x} x属于第i个类的概率,即 P ( c i ∣ x ) ​ P(c_i|x)​ P(cix)

step 2. 通过比较所有的 P ( c i ∣ x ) P(c_i|\boldsymbol{x}) P(cix),得到样本 x \boldsymbol{x} x所属的最佳类别。

step 3. 将类别 c i c_i ci和样本 x \boldsymbol{x} x代入到贝叶斯公式中,得到:
P ( c i ∣ x ) = P ( x ∣ c i ) P ( c i ) P ( x ) . P(c_i|\boldsymbol{x})=\frac{P(\boldsymbol{x}|c_i)P(c_i)}{P(\boldsymbol{x})}. P(cix)=P(x)P(xci)P(ci).
​ 一般来说, P ( c i ) P(c_i) P(ci)为先验概率, P ( x ∣ c i ) P(\boldsymbol{x}|c_i) P(xci)为条件概率, P ( x ) P(\boldsymbol{x}) P(x)是用于归一化的证据因子。对于 P ( c i ) P(c_i) P(ci)可以通过训练样本中类别为 c i c_i ci的样本所占的比例进行估计;此外,由于只需要找出最大的 P ( x ∣ c i ) P(\boldsymbol{x}|c_i) P(xci),因此我们并不需要计算 P ( x ) P(\boldsymbol{x}) P(x)
​ 为了求解条件概率,基于不同假设提出了不同的方法,以下将介绍朴素贝叶斯分类器和半朴素贝叶斯分类器。

4 朴素贝叶斯分类器

​ 假设样本 x \boldsymbol{x} x包含 d d d个属性,即 x = { x 1 , x 2 , . . . , x d } \boldsymbol{x}=\{ x_1,x_2,...,x_d\} x={x1,x2,...,xd}。于是有:
P ( x ∣ c i ) = P ( x 1 , x 2 , ⋯   , x d ∣ c i ) P(\boldsymbol{x}|c_i)=P(x_1,x_2,\cdots,x_d|c_i) P(xci)=P(x1,x2,,xdci)
这个联合概率难以从有限的训练样本中直接估计得到。于是,朴素贝叶斯(Naive Bayesian,简称NB)采用了“属性条件独立性假设”:对已知类别,假设所有属性相互独立。于是有:
P ( x 1 , x 2 , ⋯   , x d ∣ c i ) = ∏ j = 1 d P ( x j ∣ c i ) P(x_1,x_2,\cdots,x_d|c_i)=\prod_{j=1}^d P(x_j|c_i) P(x1,x2,,xdci)=j=1dP(xjci)
这样的话,我们就可以很容易地推出相应的判定准则了:
h n b ( x ) = arg ⁡ max ⁡ c i ∈ Y P ( c i ) ∏ j = 1 d P ( x j ∣ c i ) h_{nb}(\boldsymbol{x})=\mathop{\arg \max}_{c_i\in Y} P(c_i)\prod_{j=1}^dP(x_j|c_i) hnb(x)=argmaxciYP(ci)j=1dP(xjci)
条件概率 P ( x j ∣ c i ) ​ P(x_j|c_i)​ P(xjci)的求解

如果 x j x_j xj是标签属性,那么我们可以通过计数的方法估计 P ( x j ∣ c i ) P(x_j|c_i) P(xjci)
P ( x j ∣ c i ) = P ( x j , c i ) P ( c i ) ≈ # ( x j , c i ) # ( c i ) P(x_j|c_i)=\frac{P(x_j,c_i)}{P(c_i)}\approx\frac{\#(x_j,c_i)}{\#(c_i)} P(xjci)=P(ci)P(xj,ci)#(ci)#(xj,ci)
其中, # ( x j , c i ) \#(x_j,c_i) #(xj,ci)表示在训练样本中 x j x_j xj c i c_{i} ci共同出现的次数。

如果 x j ​ x_j​ xj是数值属性,通常我们假设类别中 c i ​ c_{i}​ ci的所有样本第 j ​ j​ j个属性的值服从正态分布。我们首先估计这个分布的均值 μ ​ μ​ μ和方差 σ ​ σ​ σ,然后计算 x j ​ x_j​ xj在这个分布中的概率密度 P ( x j ∣ c i ) ​ P(x_j|c_i)​ P(xjci)

5 举例理解朴素贝叶斯分类器

使用经典的西瓜训练集如下:

对下面的测试例“测1”进行 分类:

首先,估计类先验概率 P ( c j ) P(c_j) P(cj),有
P ( 好瓜 = 是 ) = 8 17 = 0.471 P ( 好瓜 = 否 ) = 9 17 = 0.529 \begin{align} &P(好瓜=是)=\frac{8}{17}=0.471 \newline &P(好瓜=否)=\frac{9}{17}=0.529 \end{align} P(好瓜=)=178=0.471P(好瓜=)=179=0.529
然后,为每个属性估计条件概率(这里,对于连续属性,假定它们服从正态分布)
P 青绿 ∣ 是 = P (色泽 = 青绿 ∣ 好瓜 = 是) = 3 8 = 0.375 P_{青绿|是}=P(色泽=青绿|好瓜=是)=\frac{3}{8}=0.375 P青绿=P(色泽=青绿好瓜=是)=83=0.375

P 青绿 ∣ 否 = P (色泽 = 青绿 ∣ 好瓜 = 否) = 3 9 ≈ 0.333 P_{青绿|否}=P(色泽=青绿|好瓜=否)=\frac{3}{9}\approx0.333 P青绿=P(色泽=青绿好瓜=否)=930.333

P 蜷缩 ∣ 是 = P (根蒂 = 蜷缩 ∣ 好瓜 = 是) = 5 8 = 0.625 P_{蜷缩|是}=P(根蒂=蜷缩|好瓜=是)=\frac{5}{8}=0.625 P蜷缩=P(根蒂=蜷缩好瓜=是)=85=0.625

P 蜷缩 ∣ 否 = P (根蒂 = 蜷缩 ∣ 好瓜 = 否) = 3 9 = 0.333 P_{蜷缩|否}=P(根蒂=蜷缩|好瓜=否)=\frac{3}{9}=0.333 P蜷缩=P(根蒂=蜷缩好瓜=否)=93=0.333

P 浊响 ∣ 是 = P (敲声 = 浊响 ∣ 好瓜 = 是) = 6 8 = 0.750 P_{浊响|是}=P(敲声=浊响|好瓜=是)=\frac{6}{8}=0.750 P浊响=P(敲声=浊响好瓜=是)=86=0.750

P 浊响 ∣ 否 = P (敲声 = 浊响 ∣ 好瓜 = 否) = 4 9 ≈ 0.444 P_{浊响|否}=P(敲声=浊响|好瓜=否)=\frac{4}{9}\approx 0.444 P浊响=P(敲声=浊响好瓜=否)=940.444

P 清晰 ∣ 是 = P (纹理 = 清晰 ∣ 好瓜 = 是) = 7 8 = 0.875 P_{清晰|是}=P(纹理=清晰|好瓜=是)=\frac{7}{8}= 0.875 P清晰=P(纹理=清晰好瓜=是)=87=0.875

P 清晰 ∣ 否 = P (纹理 = 清晰 ∣ 好瓜 = 否) = 2 9 ≈ 0.222 P_{清晰|否}=P(纹理=清晰|好瓜=否)=\frac{2}{9}\approx 0.222 P清晰=P(纹理=清晰好瓜=否)=920.222

P 凹陷 ∣ 是 = P (脐部 = 凹陷 ∣ 好瓜 = 是) = 6 8 = 0.750 P_{凹陷|是}=P(脐部=凹陷|好瓜=是)=\frac{6}{8}= 0.750 P凹陷=P(脐部=凹陷好瓜=是)=86=0.750

P 凹陷 ∣ 否 = P (脐部 = 凹陷 ∣ 好瓜 = 否) = 2 9 ≈ 0.222 P_{凹陷|否}=P(脐部=凹陷|好瓜=否)=\frac{2}{9} \approx 0.222 P凹陷=P(脐部=凹陷好瓜=否)=920.222

P 硬滑 ∣ 是 = P (触感 = 硬滑 ∣ 好瓜 = 是) = 6 8 = 0.750 P_{硬滑|是}=P(触感=硬滑|好瓜=是)=\frac{6}{8}= 0.750 P硬滑=P(触感=硬滑好瓜=是)=86=0.750

P 硬滑 ∣ 否 = P (触感 = 硬滑 ∣ 好瓜 = 否) = 6 9 ≈ 0.667 P_{硬滑|否}=P(触感=硬滑|好瓜=否)=\frac{6}{9} \approx 0.667 P硬滑=P(触感=硬滑好瓜=否)=960.667

ρ 密度: 0.697 ∣ 是 = ρ (密度 = 0.697 ∣ 好瓜 = 是) = 1 2 π × 0.129 e x p ( − ( 0.697 − 0.574 ) 2 2 × 0.12 9 2 ) ≈ 1.959 \begin{aligned} \rho_{密度:0.697|是}&=\rho(密度=0.697|好瓜=是)\\&=\frac{1}{\sqrt{2 \pi}\times0.129}exp\left( -\frac{(0.697-0.574)^2}{2\times0.129^2}\right) \approx 1.959 \end{aligned} ρ密度:0.697∣=ρ(密度=0.697∣好瓜=是)=2π ×0.1291exp(2×0.1292(0.6970.574)2)1.959

ρ 密度: 0.697 ∣ 否 = ρ (密度 = 0.697 ∣ 好瓜 = 否) = 1 2 π × 0.195 e x p ( − ( 0.697 − 0.496 ) 2 2 × 0.19 5 2 ) ≈ 1.203 \begin{aligned} \rho_{密度:0.697|否}&=\rho(密度=0.697|好瓜=否)\\&=\frac{1}{\sqrt{2 \pi}\times0.195}exp\left( -\frac{(0.697-0.496)^2}{2\times0.195^2}\right) \approx 1.203 \end{aligned} ρ密度:0.697∣=ρ(密度=0.697∣好瓜=否)=2π ×0.1951exp(2×0.1952(0.6970.496)2)1.203

ρ 含糖: 0.460 ∣ 是 = ρ (密度 = 0.460 ∣ 好瓜 = 是) = 1 2 π × 0.101 e x p ( − ( 0.460 − 0.279 ) 2 2 × 0.10 1 2 ) ≈ 0.788 \begin{aligned} \rho_{含糖:0.460|是}&=\rho(密度=0.460|好瓜=是)\\&=\frac{1}{\sqrt{2 \pi}\times0.101}exp\left( -\frac{(0.460-0.279)^2}{2\times0.101^2}\right) \approx 0.788 \end{aligned} ρ含糖:0.460∣=ρ(密度=0.460∣好瓜=是)=2π ×0.1011exp(2×0.1012(0.4600.279)2)0.788

ρ 含糖: 0.460 ∣ 否 = ρ (密度 = 0.460 ∣ 好瓜 = 是) = 1 2 π × 0.108 e x p ( − ( 0.460 − 0.154 ) 2 2 × 0.10 8 2 ) ≈ 0.066 \begin{aligned} \rho_{含糖:0.460|否}&=\rho(密度=0.460|好瓜=是)\\&=\frac{1}{\sqrt{2 \pi}\times0.108}exp\left( -\frac{(0.460-0.154)^2}{2\times0.108^2}\right) \approx 0.066 \end{aligned} ρ含糖:0.460∣=ρ(密度=0.460∣好瓜=是)=2π ×0.1081exp(2×0.1082(0.4600.154)2)0.066

于是有
P ( 好瓜 = 是 ) × P 青绿 ∣ 是 × P 蜷缩 ∣ 是 × P 浊响 ∣ 是 × P 清晰 ∣ 是 × P 凹陷 ∣ 是 × P 硬滑 ∣ 是 × p 密度: 0.697 ∣ 是 × p 含糖: 0.460 ∣ 是 ≈ 0.063 P ( 好瓜 = 否 ) × P 青绿 ∣ 否 × P 蜷缩 ∣ 否 × P 浊响 ∣ 否 × P 清晰 ∣ 否 × P 凹陷 ∣ 否 × P 硬滑 ∣ 否 × p 密度: 0.697 ∣ 否 × p 含糖: 0.460 ∣ 否 ≈ 6.80 × 1 0 − 5 \begin{align} P(&好瓜=是)\times P_{青绿|是} \times P_{蜷缩|是} \times P_{浊响|是} \times P_{清晰|是} \times P_{凹陷|是}\newline &\times P_{硬滑|是} \times p_{密度:0.697|是} \times p_{含糖:0.460|是} \approx 0.063 \newline\newline P(&好瓜=否)\times P_{青绿|否} \times P_{蜷缩|否} \times P_{浊响|否} \times P_{清晰|否} \times P_{凹陷|否}\newline &\times P_{硬滑|否} \times p_{密度:0.697|否} \times p_{含糖:0.460|否} \approx 6.80\times 10^{-5} \end{align} P(P(好瓜=)×P青绿×P蜷缩×P浊响×P清晰×P凹陷×P硬滑×p密度:0.697∣×p含糖:0.460∣0.063好瓜=)×P青绿×P蜷缩×P浊响×P清晰×P凹陷×P硬滑×p密度:0.697∣×p含糖:0.460∣6.80×105

由于 0.063 > 6.80 × 1 0 − 5 0.063>6.80\times 10^{-5} 0.063>6.80×105,因此,朴素贝叶斯分类器将测试样本“测1”判别为“好瓜”。

6 半朴素贝叶斯分类器

​ 朴素贝叶斯采用了“属性条件独立性假设”,半朴素贝叶斯分类器的基本想法是适当考虑一部分属性间的相互依赖信息。独依赖估计(One-Dependence Estimator,简称ODE)是半朴素贝叶斯分类器最常用的一种策略。顾名思义,独依赖是假设每个属性在类别之外最多依赖一个其他属性,即:
P ( x ∣ c i ) = ∏ j = 1 d P ( x j ∣ c i , p a j ) P(\boldsymbol{x}|c_i)=\prod_{j=1}^d P(x_j|c_i,{\rm pa}_j) P(xci)=j=1dP(xjci,paj)
其中 p a j pa_j paj为属性 x i x_i xi所依赖的属性,成为 x i x_i xi的父属性。假设父属性 p a j pa_j paj已知,那么可以使用下面的公式估计 P ( x j ∣ c i , p a j ) P(x_j|c_i,{\rm pa}_j) P(xjci,paj)
P ( x j ∣ c i , p a j ) = P ( x j , c i , p a j ) P ( c i , p a j ) P(x_j|c_i,{\rm pa}_j)=\frac{P(x_j,c_i,{\rm pa}_j)}{P(c_i,{\rm pa}_j)} P(xjci,paj)=P(ci,paj)P(xj,ci,paj)

有任何其他有关人工智能学习或GPT共享号独享号问题,欢迎私聊咨询

10-01 07:14