• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

机器学习导论(5)–GDA高斯判别模型

ml admin 5年前 (2015-05-30) 2998次浏览 1个评论 扫描二维码

引言

之前介绍过分类方法使用最小二乘法或者 Logistic 回归实现分类,通过直接给定相应的预测函数实现数据的划分,例如预测函数在二分类中的实现就是一条直线之类。接下来对于给定的测试样本特征 X,直接判定其是在直线的左边还是右边,从而实现对样本的分类。
上面的描述的都是属于判别学习分析,区别于判别学习分析,今天需要介绍的是生成学习算法,生成学习算法是先对给定的训练样本(正样本与负样本)建立相应的模型,然后对于给定的测试样本匹配相应的模型,假设与正样本模型匹配度较高的话就可以得到当前的测试样本是属于正样本。
从数学层面来看判别学习算法都是直接对 P(y|x)进行建模,然后直接求出相应的测试样本的分类结果。生成学习算法却不是直接对 P(y|x)直接建模,它是先对 P(x|y)和 P(y)进行建模,然后使用贝叶斯后验概率估计得到相应的 P(y|x)。
举例说明:假设我们现在要区分样本是属于大象还是小狗,对于大象设定的标签是 1,对于小狗设定的标签是 0,按照生成学习算法的计算过程就是先要对每一类进行建模,因此我们需要先计算出 P(x|y=1)(这个是对大象正样本模型的建模)和 P(x|y=0)(这个是对小狗负样本模型的建模)。在对正负样本进行建立模型之后我们建立 P(y)先验概率模型,接下来就是使用贝叶斯后验概率规则得到 P(y|x)。

使得后验概率值最大的 y 就是当前测试样本的分类:

由于我们是要求解出使得 P(y|x)最大时 y 的值大小,因此可以忽略 P(x)的值,因此上式中的第二步就是化简之后的计算方程。
备注:argmax 是计算使得函数值最大时变量的大小,上面的函数就是后验概率,变量是 y。

高斯判别分析

乍一看高斯判别分析就误以为是判别分类算法,其实不是,高斯判别分析是生成学习算法之一。

多变量正态分布

均值向量μ∈Rn,协方差矩阵Σ∈Rn*n,相应的概率分布如下所示:

下面给出部分多变量高斯模型的 Matlab 示意图:

上面图像中最左边是标准正态分布,协方差矩阵单位矩阵,中间的那幅图的协方差矩阵是 0.6 倍单位矩阵,最右边的图像的协方差矩阵是 2 倍单位矩阵。
其实更该不同的协方差会得到不一样的高斯分布模型,同理更该均值向量也会得到的不同的模型。

GDA 高斯判别模型

当我们的特征向量是连续的随机变量时就可以使用高斯判别模型去求解相应的分类问题。
模型的建立如下:

相应的分布函数:

上面的式子中通常情况下协方差是大小是一样的,均值一般是不一样的,从等高线图像中可以表示成正负样本模型的大小是一样的,但是所处的位置不一样,然而位置的决定权就在于均值大小。
极大似然估计函数如下:

通过求取极大似然估计函数的最大值,得到如下四个参数的值:

下面给出一个实验例子说明 GDA 分类效果:

上面的两幅图中可以看出高斯分布的协方差矩阵一致,当然均值不一样,否则两个分类的等高线图形会重合到一起,根据建立的 GDA 模型求出最后的分类拟合曲线。

结论

GDA 对于二分类有较好的分类效果,其实 GDA 模型与之前介绍的 Logistic 线性回归有着相关的联系,可以业余时间研究下。


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明机器学习导论(5)–GDA 高斯判别模型
喜欢 (2)
admin
关于作者:
互联网行业码农一枚/业余铲屎官/数码影音爱好者/二次元

您必须 登录 才能发表评论!

(1)个小伙伴在吐槽