高斯判别分析模型

高斯判别分析模型的英文为The Gaussian Discriminant Analysis model.

看下面这组数据,如果按照逻辑回归来分离的话,很可能得到的是这样的一条直线.

image

生成学习算法分布多两类数据建立模型,然后根据两个模型的概率通过高斯分布计算出 p(y|x) ,如果说我们也来画一条线的话,应该是这样:

image

假设y属于伯努利分布,而y的每个类别都属于高斯分布,即
y \sim Bernoulli(\phi)
x|y=0 \sim N(\mu_0,\Sigma)
x|y=1 \sim N(\mu_1,\Sigma)

写成概率的形式:

P(y)=\phi^y*(1-\phi)^{1-y}

{\displaystyle p(x|y=0) ={\frac {1}{\sqrt {(2\pi )^{k}|{\boldsymbol {\Sigma }}|}}}\exp \left(-{\frac {1}{2}}({\mathbf {x} }-{\boldsymbol {\mu_0 }})^{\mathrm {T} }{\boldsymbol {\Sigma }}^{-1}({\mathbf {x} }-{\boldsymbol {\mu_0 }})\right)}

{\displaystyle p(x|y=1) ={\frac {1}{\sqrt {(2\pi )^{k}|{\boldsymbol {\Sigma }}|}}}\exp \left(-{\frac {1}{2}}({\mathbf {x} }-{\boldsymbol {\mu_1 }})^{\mathrm {T} }{\boldsymbol {\Sigma }}^{-1}({\mathbf {x} }-{\boldsymbol {\mu_1 }})\right)}

使用最大似然法,来确定参数:
l(\phi,\mu_0,\mu_1,\Sigma) = log \prod_{i=1}^n p(x^{i},y^{i};\phi,\mu_0,\mu_1,\Sigma) = log \prod_{i=1}^n p(x^{i}|y^{i};\mu_0,\mu_1,\Sigma)p(y^{i},\phi)

得到高斯分布的参数为:

\phi = \frac{1}{m}\sum\limits_{i=1}^{m}I \{ y^{(i)}=1 \}

\mu_0=\dfrac{\sum\limits_{i=1}^{m}I\{y^{(i)}=0\}x^{(i)}}{\sum\limits_{i=1}^{m}I\{y^{(i)}=0\}}

\mu_1=\dfrac{\sum\limits_{i=1}^{m}I\{y^{(i)}=1\}x^{(i)}}{\sum\limits_{i=1}^{m}I\{y^{(i)}=1\}}

\Sigma = \frac{1}{m}\sum\limits_{i=1}^{m}(x^{(i)}-\mu_{y{(i)}})(x^{(i)}-\mu_{y{(i)}})^T

p(y=1|x;\phi,\Sigma,\mu_0,\mu_1)=\frac{1}{1+exp(-\theta^Tx)}

GDA vs 逻辑回归

如果p(x|y)是一个多维的高斯分布,那么p(y|x)可以推出一个logistic函数

image

反之则不一定正确,p(y|x)是一个logistic函数并不能推出p(x|y)服从高斯分布.这说明GDA比logistic回归做了更强的模型假设.

如果p(x|y)真的服从或者趋近于服从高斯分布,则GDA比logistic回归效率高.

当训练样本很大时,严格意义上来说并没有比GDA更好的算法(不管预测的多么精确).

事实证明即使样本数量很小,GDA相对logisic都是一个更好的算法.

但是,logistic回归做了更弱的假设,相对于不正确的模型假设,具有更好的鲁棒性(robust)

posted @ 2018-07-24 08:51:11
评论加载中...
发表评论