700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 数据挖掘 | 判别分析 +朴素贝叶斯分类算法

数据挖掘 | 判别分析 +朴素贝叶斯分类算法

时间:2021-11-23 23:38:06

相关推荐

数据挖掘 | 判别分析 +朴素贝叶斯分类算法

本节记录一下由贝叶斯定理延伸出来的几种预测性建模的方法,主要为线性判别分析(一次,二次),朴素贝叶斯(稍稍提一下贝叶斯网络)

1. 判别分析

判别分析适用于自变量连续,因变量为分类型的情形;

设因变量YYY一共有KKK个类别;ϵl=P(Y=l)\epsilon_l=P(Y=l)ϵl​=P(Y=l)表示类别lll的先验概率,满足∑l=1Kϵl=1\sum^K_{l=1}\epsilon_l=1∑l=1K​ϵl​=1;fl(x)=f(x∣Y=l)f_l(\bold{x})=f(\bold{x}|Y=l)fl​(x)=f(x∣Y=l)表示类别Y=lY=lY=l的观测下自变量X=(X1,⋯,Xp)\bold{X}=(X_1,\cdots,X_p)X=(X1​,⋯,Xp​)的概率密度函数;

由贝叶斯公式

P(Y=l∣X=x)=P(Y=l)f(x∣Y=l)∑i=1KP(Y=i)f(x∣Y=i)=ϵlfl(x)∑i=1Kϵifi(x)P(Y=l|\bold{X}=\bold{x})=\frac{P(Y=l)f(\bold{x}|Y=l)}{\sum^K_{i=1}P(Y=i)f(\bold{x}|Y=i)}=\frac{\epsilon_lf_l(\bold{x})}{\sum^K_{i=1}\epsilon_if_i(\bold{x})} P(Y=l∣X=x)=∑i=1K​P(Y=i)f(x∣Y=i)P(Y=l)f(x∣Y=l)​=∑i=1K​ϵi​fi​(x)ϵl​fl​(x)​

则预测x\bold{x}x的类别l∗l^*l∗为

l∗=argmaxlP(Y=l∣X=x)=argmaxlϵlfl(x)l^* = \underset{l}{argmax}\ P(Y=l|\bold{X}=\bold{x}) = \underset{l}{argmax}\ \epsilon_lf_l(\bold{x}) l∗=largmax​P(Y=l∣X=x)=largmax​ϵl​fl​(x)

线性判别分析的假设为,观测自变量满足多元正态分布,即fl(x)∼MVN(μl,Σl)f_l(\bold{x})\sim MVN(\bold{\mu}_l,\bold{\Sigma}_l)fl​(x)∼MVN(μl​,Σl​)

1.1 线性判别分析

在上述假设中进一步假设所有类别的协方差矩阵都相等:Σl=Σ,l=1,⋯,K\Sigma_l=\Sigma,l=1,\cdots,KΣl​=Σ,l=1,⋯,K

前述已经将预测类别的类转化为求argmaxlϵlfl(x)\underset{l}{argmax}\ \epsilon_lf_l(\bold{x})largmax​ϵl​fl​(x),我们稍微计算一下

log(ϵlfl(x))=log[ϵl1(2π)p2∣Σ∣12exp{−12(x−μl)TΣ−1(x−μl)}]=δl(x)+A\begin{aligned} log(\epsilon_lf_l(\bold{x}))&=log[\epsilon_l\frac{1}{(2\pi)^{\frac{p}{2}}|\Sigma|^{\frac{1}{2}}}exp\{-\frac{1}{2}(\bold{x}-\bold{\mu}_l)^T\Sigma^{-1}(\bold{x}-\bold{\mu}_l)\}]\\ &= \delta_l(\bold{x})+A\\ \end{aligned} log(ϵl​fl​(x))​=log[ϵl​(2π)2p​∣Σ∣21​1​exp{−21​(x−μl​)TΣ−1(x−μl​)}]=δl​(x)+A​

其中δl(x)=log(ϵl)−12μlTΣ−1μl+μlTΣ−1x\delta_l(\bold{x})=log(\epsilon_l)-\frac{1}{2}\bold{\mu}_l^T\Sigma^{-1}\bold{\mu}_l+\bold{\mu}_l^T\Sigma^{-1}\bold{x}δl​(x)=log(ϵl​)−21​μlT​Σ−1μl​+μlT​Σ−1x,A=−p2log(2π)−12log(∣Σ∣)−12xTΣ−1xA=-\frac{p}{2}log(2\pi)-\frac{1}{2}log(|\Sigma|)-\frac{1}{2}\bold{x}^T\Sigma^{-1}\bold{x}A=−2p​log(2π)−21​log(∣Σ∣)−21​xTΣ−1x

可以看到AAA的值与类别lll无关(对于所有的类别都是一样的),所以现在就将问题转化成了

l∗=argmaxlϵlfl(x)=argmaxllog(ϵlfl(x))=argmaxlδl(x)\begin{aligned} l^* &= \underset{l}{argmax}\ \epsilon_lf_l(\bold{x})\\ &= \underset{l}{argmax}\ log(\epsilon_lf_l(\bold{x}))\\ &= \underset{l}{argmax}\ \delta_l(\bold{x}) \end{aligned} l∗​=largmax​ϵl​fl​(x)=largmax​log(ϵl​fl​(x))=largmax​δl​(x)​

而δl(x)\delta_l(\bold{x})δl​(x)为x\bold{x}x的线性函数,大概就是线性判别分析名称的来源吧。

1.2 二次判别分析

承上面的观点是不是最后转化成了关于x\bold{x}x的线性函数的二次函数的问题?

Bingo

二次判别分析的假设不再像线性判别分析那样,二次判别分析不假设各类别的协方差矩阵Σl\Sigma_lΣl​都相等那么我们再计算一下log(ϵlfl(x))log(\epsilon_lf_l(\bold{x}))log(ϵl​fl​(x))

log(ϵlfl(x))=log[ϵl1(2π)p2∣Σ∣12exp{−12(x−μl)TΣ−1(x−μl)}]=ψl(x)+B\begin{aligned} log(\epsilon_lf_l(\bold{x}))&=log[\epsilon_l\frac{1}{(2\pi)^{\frac{p}{2}}|\Sigma|^{\frac{1}{2}}}exp\{-\frac{1}{2}(\bold{x}-\bold{\mu}_l)^T\Sigma^{-1}(\bold{x}-\bold{\mu}_l)\}]\\ &= \psi_l(\bold{x})+B\\ \end{aligned} log(ϵl​fl​(x))​=log[ϵl​(2π)2p​∣Σ∣21​1​exp{−21​(x−μl​)TΣ−1(x−μl​)}]=ψl​(x)+B​

其中ψl(x)=log(ϵl−12log(∣Σl∣)−12(x−μl)TΣ−1(x−μl)\psi_l(\bold{x})=log(\epsilon_l-\frac{1}{2}log(|\Sigma_l|)-\frac{1}{2}(\bold{x}-\bold{\mu}_l)^T\Sigma^{-1}(\bold{x}-\bold{\mu}_l)ψl​(x)=log(ϵl​−21​log(∣Σl​∣)−21​(x−μl​)TΣ−1(x−μl​),B=−p2log(2π)B=-\frac{p}{2}log(2\pi)B=−2p​log(2π)

同理线性判别分析的分析,现在就将问题转化成了

l∗=argmaxlϵlfl(x)=argmaxllog(ϵlfl(x))=argmaxlψl(x)\begin{aligned} l^* &= \underset{l}{argmax}\ \epsilon_lf_l(\bold{x})\\ &= \underset{l}{argmax}\ log(\epsilon_lf_l(\bold{x}))\\ &= \underset{l}{argmax}\ \psi_l(\bold{x}) \end{aligned} l∗​=largmax​ϵl​fl​(x)=largmax​log(ϵl​fl​(x))=largmax​ψl​(x)​

而ψl(x)\psi_l(\bold{x})ψl​(x)为x\bold{x}x的二次函数;

1.3 参数估计

有三个参数需要估计:ϵl,xl,Σl\epsilon_l,\bold{x}_l,\Sigma_lϵl​,xl​,Σl​

ϵl\epsilon_lϵl​由训练数据集中属于类别lll的观测的比例来估计;xl\bold{x}_lxl​由训练数据集中属于类别lll的观测的样本均值向量来估计;Σl\Sigma_lΣl​的估计:假设训练数据集有NNN次观测x1,⋯,xN\bold{x}_1,\cdots,\bold{x}_Nx1​,⋯,xN​,NlN_lNl​为属于类别lll的观测个数,ClC_lCl​为类别lll的序号的集合,xˉl\bar{\bold{x}}_lxˉl​为类别lll的均值向量; 二次判别分析:Σl\Sigma_lΣl​由样本协方差矩阵Sl\bold{S}_lSl​来估计;线性判别分析:Σ\SigmaΣ由样本协方差矩阵Sl\bold{S}_lSl​的加权S\bold{S}S来估计;

Sl=1Nl−1∑i∈Cl(xi−xˉl)(xi−xˉl)TS=∑l=1KNl−1N−KSl=1N−K∑l=1K∑i∈Cl(xi−xˉl)(xi−xˉl)T\bold{S}_l = \frac{1}{N_l-1}\sum_{i\in C_l}(\bold{x}_i-\bar{\bold{x}}_l)(\bold{x}_i-\bar{\bold{x}}_l)^T\\ \bold{S} = \sum^K_{l=1}\frac{N_l-1}{N-K}\bold{S}_l=\frac{1}{N-K}\sum^K_{l=1}\sum_{i\in C_l}(\bold{x}_i-\bar{\bold{x}}_l)(\bold{x}_i-\bar{\bold{x}}_l)^T Sl​=Nl​−11​i∈Cl​∑​(xi​−xˉl​)(xi​−xˉl​)TS=l=1∑K​N−KNl​−1​Sl​=N−K1​l=1∑K​i∈Cl​∑​(xi​−xˉl​)(xi​−xˉl​)T

2. 朴素贝叶斯分类算法

朴素贝叶斯分类算法适用于因变量为分类型的情形(自变量不做要求);

还是回到第一节中的贝叶斯公式

P(Y=l∣X=x)=P(Y=l)f(x∣Y=l)∑i=1KP(Y=i)f(x∣Y=i)=ϵlfl(x)∑i=1Kϵifi(x)P(Y=l|\bold{X}=\bold{x})=\frac{P(Y=l)f(\bold{x}|Y=l)}{\sum^K_{i=1}P(Y=i)f(\bold{x}|Y=i)}=\frac{\epsilon_lf_l(\bold{x})}{\sum^K_{i=1}\epsilon_if_i(\bold{x})} P(Y=l∣X=x)=∑i=1K​P(Y=i)f(x∣Y=i)P(Y=l)f(x∣Y=l)​=∑i=1K​ϵi​fi​(x)ϵl​fl​(x)​

此时在朴素贝叶斯分类算法的假设仍然是在fl(x)f_l(\bold{x})fl​(x)上,给定YYY的值,X1,⋯,XpX_1,\cdots,X_pX1​,⋯,Xp​是条件独立的。计fl(xr)f_l(x_r)fl​(xr​)为类别lll中自变量XrX_rXr​的边缘分布;

fl(x)=∏r=1pfl(xr)f_l(\bold{x})=\prod^p_{r=1}f_l(x_r) fl​(x)=r=1∏p​fl​(xr​)

l∗=argmaxlϵlfl(x)=argmaxllog(ϵlfl(x))=argmaxllog(ϵl∏r=1pfl(xr))\begin{aligned} l^* &= \underset{l}{argmax}\ \epsilon_lf_l(\bold{x})\\ &= \underset{l}{argmax}\ log(\epsilon_lf_l(\bold{x}))\\ &= \underset{l}{argmax}\ log(\epsilon_l\prod^p_{r=1}f_l(x_r)) \end{aligned} l∗​=largmax​ϵl​fl​(x)=largmax​log(ϵl​fl​(x))=largmax​log(ϵl​r=1∏p​fl​(xr​))​

2.1 参数估计

1.3节已经把ϵl\epsilon_lϵl​的估计说了,下面就是fl(x)f_l(\bold{x})fl​(x)的估计了;本节的开始也说过,朴素贝叶斯分类算法对于因变量没有特别的要求,所以需要分两类来估计:

因变量为分类变量 简单来说fl(xr)f_l(x_r)fl​(xr​)的估计量可以用极大似然估计来做;用符号来表示的话,假设XrX_rXr​可能的取值为γ1,⋯,γV\gamma_1,\cdots,\gamma_Vγ1​,⋯,γV​,fl(xr=γv)(v=1,⋯,V)f_l(x_r=\gamma_v)(v=1,\cdots,V)fl​(xr​=γv​)(v=1,⋯,V)的极大似然估计为训练数据集中属于类别lll的观测中XrX_rXr​取值为γv\gamma_vγv​的比例

f^l(xr=γv)=∣{i∣i∈Cl,xir=γv}∣Nl\hat{f}_l(x_r=\gamma_v)=\frac{|\{i|i\in C_l,\ x_{ir}=\gamma_v\}|}{N_l} f^​l​(xr​=γv​)=Nl​∣{i∣i∈Cl​,xir​=γv​}∣​

其中,xirx_{ir}xir​表示第iii个观测的XrX_rXr​的取值。做一下平滑处理(若训练数据集中没有满足条件的观测,对应的MLR为0)

f~l(xr=γv)=∣{i∣i∈Cl,xir=γv}∣+n0Nl+n0\tilde{f}_l(x_r=\gamma_v)=\frac{|\{i|i\in C_l,\ x_{ir}=\gamma_v\}|+n_0}{N_l+n_0} f~​l​(xr​=γv​)=Nl​+n0​∣{i∣i∈Cl​,xir​=γv​}∣+n0​​

因变量为分类变量 对于每个类别lll,我们假设XrX_rXr​服从N(μlr,σlr2)\mathcal{N}(\mu_{lr},\sigma^2_{lr})N(μlr​,σlr2​),其中

μ^lr=1Nl∑i∈Clxirσ^lr2=1Nl−1∑i∈Cl(xir−μ^lr)2\hat{\mu}_{lr}=\frac{1}{N_l}\sum_{i\in C_l}x_{ir}\\ \hat{\sigma}^2_{lr}=\frac{1}{N_l-1}\sum_{i\in C_l}(x_{ir}-\hat{\mu}_{lr})^2 μ^​lr​=Nl​1​i∈Cl​∑​xir​σ^lr2​=Nl​−11​i∈Cl​∑​(xir​−μ^​lr​)2

3. 贝叶斯网络

接第2节的假设,并不是各自条件独立,存在一定的相关性(全概率公式展开简化),后面再补

小结

最后都是通过贝叶斯公式转化为对argmaxlϵlfl(x)\underset{l}{argmax}\ \epsilon_lf_l(\bold{x})largmax​ϵl​fl​(x)的求解上,在fl(x)f_l(\bold{x})fl​(x)上做了不同的假设。

一条线过来的感觉真的舒爽哇!

Reference:

张俊妮(),《数据挖掘与应用》,北京大学出版社

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。