本节记录一下由贝叶斯定理延伸出来的几种预测性建模的方法,主要为线性判别分析(一次,二次),朴素贝叶斯(稍稍提一下贝叶斯网络)
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=1KP(Y=i)f(x∣Y=i)P(Y=l)f(x∣Y=l)=∑i=1Kϵifi(x)ϵlfl(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∗=largmaxP(Y=l∣X=x)=largmaxϵlfl(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ϵlfl(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(ϵlfl(x))=log[ϵl(2π)2p∣Σ∣211exp{−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=−2plog(2π)−21log(∣Σ∣)−21xTΣ−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ϵlfl(x)=largmaxlog(ϵlfl(x))=largmaxδl(x)
而δl(x)\delta_l(\bold{x})δl(x)为x\bold{x}x的线性函数,大概就是线性判别分析名称的来源吧。
1.2 二次判别分析
二次判别分析的假设不再像线性判别分析那样,二次判别分析不假设各类别的协方差矩阵Σl\Sigma_lΣl都相等那么我们再计算一下log(ϵlfl(x))log(\epsilon_lf_l(\bold{x}))log(ϵlfl(x))承上面的观点是不是最后转化成了关于x\bold{x}x的线性函数的二次函数的问题?
Bingo
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(ϵlfl(x))=log[ϵl(2π)2p∣Σ∣211exp{−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−21log(∣Σl∣)−21(x−μl)TΣ−1(x−μl),B=−p2log(2π)B=-\frac{p}{2}log(2\pi)B=−2plog(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ϵlfl(x)=largmaxlog(ϵlfl(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−11i∈Cl∑(xi−xˉl)(xi−xˉl)TS=l=1∑KN−KNl−1Sl=N−K1l=1∑Ki∈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=1KP(Y=i)f(x∣Y=i)P(Y=l)f(x∣Y=l)=∑i=1Kϵifi(x)ϵlfl(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∏pfl(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ϵlfl(x)=largmaxlog(ϵlfl(x))=largmaxlog(ϵlr=1∏pfl(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=Nl1i∈Cl∑xirσ^lr2=Nl−11i∈Cl∑(xir−μ^lr)2
3. 贝叶斯网络
接第2节的假设,并不是各自条件独立,存在一定的相关性(全概率公式展开简化),后面再补
小结
最后都是通过贝叶斯公式转化为对argmaxlϵlfl(x)\underset{l}{argmax}\ \epsilon_lf_l(\bold{x})largmaxϵlfl(x)的求解上,在fl(x)f_l(\bold{x})fl(x)上做了不同的假设。
一条线过来的感觉真的舒爽哇!
Reference:
张俊妮(),《数据挖掘与应用》,北京大学出版社