编程语言
首页 > 编程语言> > 经典机器学习算法:高斯判别分析GDA

经典机器学习算法:高斯判别分析GDA

作者:互联网

高斯判别分析介绍

高斯判别分析 GDA

GDA:Guassian Discrimant Analysis
高斯判别分析属于两分类、软分类、概率生成模型

GDA模型

生成模型中,我们需要对联合概率分布进行建模,然后采用 MAP 来获得参数的最佳值。两分类的情况,我们采用的假设:
对于两类样本,其服从伯努利分布,而对每个类中的样本,假定都服从高斯分布

  1. y ∼ B e r n o u l l i ( ϕ ) y\sim Bernoulli(\phi) y∼Bernoulli(ϕ)
  2. x ∣ y = 1 ∼ N ( μ 1 , Σ ) {x|y=1}\sim\mathcal{N}(\mu_1,\Sigma) x∣y=1∼N(μ1​,Σ)
  3. x ∣ y = 0 ∼ N ( μ 0 , Σ ) x|y=0\sim\mathcal{N}(\mu_0,\Sigma) x∣y=0∼N(μ0​,Σ)

这样,根据训练样本,估计出先验概率以及高斯分布的均值和协方差矩阵(注意这里两类内部高斯分布的协方差矩阵相同),即可通过如下贝叶斯公式求出一个新样本分别属于两类的概率,进而可实现对该样本的分类。
p ( Y ∣ X ) = p ( X ∣ Y ) p ( Y ) p ( X ) p(Y|X) = \frac {p(X|Y)p(Y)}{p(X)} p(Y∣X)=p(X)p(X∣Y)p(Y)​
arg max ⁡ Y p ( Y ∣ X ) = arg max ⁡ Y p ( X ∣ Y ) p ( Y ) p ( X ) = arg max ⁡ Y p ( X ∣ Y ) p ( Y ) \argmax_Y p(Y|X) = \argmax_Y \frac{p(X|Y)p(Y)}{p(X)} = \argmax_Y {p(X|Y)p(Y)} Yargmax​p(Y∣X)=Yargmax​p(X)p(X∣Y)p(Y)​=Yargmax​p(X∣Y)p(Y)

模型求解

具体计算

那么独立全同的数据集最大后验概率可以表示为:
a r g m a x ϕ , μ 0 , μ 1 , Σ log ⁡ p ( X ∣ Y ) p ( Y ) = a r g m a x ϕ , μ 0 , μ 1 , Σ ∑ i = 1 N ( log ⁡ p ( x i ∣ y i ) + log ⁡ p ( y i ) ) = a r g m a x ϕ , μ 0 , μ 1 , Σ ∑ i = 1 N ( ( 1 − y i ) log ⁡ N ( μ 0 , Σ ) + y i log ⁡ N ( μ 1 , Σ ) + y i log ⁡ ϕ + ( 1 − y i ) log ⁡ ( 1 − ϕ ) ) \begin{aligned} \mathop{argmax}_{\phi,\mu_0,\mu_1,\Sigma}\log p(X|Y)p(Y)&=\mathop{argmax}_{\phi,\mu_0,\mu_1,\Sigma} \sum\limits_{i=1}^N (\log p(x_i|y_i)+\log p(y_i))\\ \\ &=\mathop{argmax}_{\phi,\mu_0,\mu_1,\Sigma}\sum\limits_{i=1}^N((1-y_i)\log\mathcal{N}(\mu_0,\Sigma)+y_i\log \mathcal{N}(\mu_1,\Sigma)+y_i\log\phi+(1-y_i)\log(1-\phi)) \end{aligned} argmaxϕ,μ0​,μ1​,Σ​logp(X∣Y)p(Y)​=argmaxϕ,μ0​,μ1​,Σ​i=1∑N​(logp(xi​∣yi​)+logp(yi​))=argmaxϕ,μ0​,μ1​,Σ​i=1∑N​((1−yi​)logN(μ0​,Σ)+yi​logN(μ1​,Σ)+yi​logϕ+(1−yi​)log(1−ϕ))​

求解四个主要参数: ϕ , μ 0 , μ 1 , Σ {\phi,\mu_0,\mu_1,\Sigma} ϕ,μ0​,μ1​,Σ

于是我们就利用最大后验的方法求得了我们模型假设里面的所有参数,根据模型,可以得到联合分布,也就可以得到用于推断的条件分布了。

标签:yi,frac,log,判别分析,mu,GDA,aligned,Sigma,高斯
来源: https://blog.csdn.net/weixin_43999137/article/details/108127556