机器学习笔记4——生成学习算法
来源:互联网 发布:手机淘宝几天到货 编辑:程序博客网 时间:2024/06/01 08:45
目前为止,我们主要讨论了关于模型
思考一个分类问题:基于动物的一些特征,我们想要学习把大象
这里有另外一种方法。首先,观测大象,然后对大象的相关特征进行建模。其次,观测狗狗,然后再对属于狗狗的动物特征进行建模。最后,对新来的小动物进行分类,我们可以将它分别与大象和狗狗的模型进行匹配,然后比对结果判断它到底是像大象多一些还是像狗狗多一些。
这个尝试着直接学习
举个例子,如果
在对
在上图的等式中,分母
解析:
对
高斯判别分析
接下来我们要介绍的是第一个生成学习算法——高斯判别分析(GDA)。在这一模型中,假设
1.多元正态分布
多元正态分布是n维的,也被叫做多元高斯分布。该分布以均值向量
等式中,
对于随机变量为
随机的向量变量
下面有一些关于高斯分布的密度的例子:
最左侧的图中显示了均值为0(2×1维的零向量)的高斯正态分布,协方差为2×2维的单位矩阵。该图中显示的是标准正态分布。中间的图中均值为0,协方差
再来看几个例子。
以上所有图中均值都为0,协方差分别取如下的值:
最左侧的图是标准正态分布,随着我们增加协方差反对角线上的值时,整体分布的密度向45度角”挤压“。
我们可以在等高线上看的更清楚:
那么如果减小协方差反对角线上的值时,分布的密度又该如何变化呢
对应的协方差分别取以下的值,
从最左侧和中间的图中可以看到:随着减小协方差矩阵的反对角线上的值时,分度的密度再次”挤压“,但是朝着相反的方向。最后,随着我们更改参数值,等高线上的图形会渐渐成为椭圆(最右图)。
最后一组例子,让协方差等于单位矩阵保持不变,但是更改均值
上图中均值一一对应下面的几个值
2.高斯判别分析模型
当我们面对一个分类问题,其中输入特征
GDA模型分布的等式如下:
此处,模型的参数有
通过每个参数对似然估计
高斯判别分析的原理可以通过解析下面这幅图得到。图中显示的数据点是训练集数据,同样还有两个高斯分布的等高线,这两个等高线分别匹配好了两个分类。两个高斯分布的等高线形状和方向都是一样的,因为他们用同样的协方差矩阵,但是使用不同的均值
3.高斯判别分析和逻辑回归
高斯判别分析模型与逻辑回归之间有个有趣的关系。如果我们把
等式中的
高斯判别分析和逻辑回归在训练过程中给出了不同的决策边界,那么哪一种算法的效果更好一些呢?
如果
这意味着高斯判别分析比逻辑回归具有更强的模型假设。那么,当模型的假设是正确的,高斯判别分析方法匹配数据会更好,会得到一个更好的模型。尤其是,当
相反,即使逻辑回归在假设上稍逊一筹,但它仍然更具健壮性,且对错误的模型假设不敏感。
有很多不同的假设会导致
总结:高斯判别分析有更强的建模假设,如果对模型的假设是正确的或者说是接近正确时,该方法会有很好的效果。逻辑回归的建模假设稍弱,但对建模假设的推导更具有健壮性,尤其是,当训练数据不符合高斯分布,且数据量有限时,逻辑回归的表现会比高斯判别分析要好。也因为这个原因,逻辑回归在实践中应用的更多。
朴素贝叶斯
在高斯判别分析中,特征向量
首先思考这样一个例子,通过机器学习来构建一个垃圾邮件过滤器。我们希望把垃圾邮件和非垃圾邮件分类,然后通过邮件过滤器自动将垃圾邮件分类到另外一个文件夹中(邮件分类是文本分类的一个例子)。
我们通过一个特征向量来代表一封邮件,而这个向量的长度与字典里的单词数量相等。如果一封邮件里包含了字典中的第
举例来说,代表邮件的特征向量包括单词“a”和“buy”,但是不包括“aardvark”,“aardwolf”,“zygmurgy”。
特征向量中的单词被称为词汇,所以
现在我们需要构建一个生成模型。所以我们需要对
为了对
举个例子,如果
由此也可以获得上述的推导公式,第一个等式根据概率的普通性质,第二个等式根据上述的朴素贝叶斯假设(朴素贝叶斯假设非常棒,由此产生的算法很好的解决了很多问题)。
我们的模型中以
通过对
在上述等式中,符号
在对训练样本中所有的参数估计过后,为了对新的样本做出预测,可以对
Laplace平滑
朴素贝叶斯算法对于很多问题有非常不错的解决效果,但是对算法进行简单的修改可能会让效果更好,尤其是对于文本分类问题。这一小节会讨论朴素贝叶斯算法的问题以及如何修改。
针对之前的垃圾邮件分类问题,思考这样一个场景:如果你收到一封新的邮件,包含了从未在过往邮件中出现过的单词,甚至在训练集中都没有出现过,那么该如何判断这封邮件是否是垃圾邮件呢?
假设这个从未见过的单词在字典中处于第35000个位置,朴素贝叶斯垃圾邮件分类器会对
因此,当我们试着去决定这封包含着陌生词汇的邮件是垃圾邮件时,问题出现了。计算类的后验概率时,我们得到了如下等式,因为在两个分类(垃圾/非垃圾)中都存在
进一步说明这个问题,如果仅仅是因为在有限的训练集中没有某个事件就判断这个事件发生的概率为0,那么这种情况进行预测是非常糟糕的(预测也没有意义了不是吗)。
为了避免这个问题,我们可以使用Laplace平滑。
之前对于多元随机变量
如果我们用这个最大似然估计,结果最终还是0,解决不了问题。那么Laplace平滑如何解决呢?它把上面的估计等式改成下面的这种形式:分子+1,分母+k。
要知道每个
回到朴素贝叶斯分类器问题,通过Laplace平滑处理,我们得到了改进后的参数估计:
(在实践中,并不在乎
- 机器学习笔记4——生成学习算法
- 监督学习之生成学习算法——Andrew Ng机器学习笔记(四)
- Andrew Ng机器学习笔记(五)——生成学习算法和朴素贝叶斯算法
- 【机器学习-斯坦福】学习笔记5 - 生成学习算法
- 【机器学习-斯坦福】学习笔记5 - 生成学习算法
- 【机器学习-斯坦福】学习笔记5 - 生成学习算法
- 机器学习-生成学习算法
- 机器学习-生成学习算法
- 机器学习--生成学习算法
- 机器学习实战—笔记-kNN算法
- 公开课机器学习笔记(8)生成学习算法
- 【斯坦福---机器学习】复习笔记之生成学习算法
- 机器学习算法笔记
- 机器学习算法笔记
- 机器学习算法笔记
- 《机器学习实战》学习笔记——kNN算法
- 机器学习实战学习笔记1——KNN算法
- 机器学习实战学习笔记2——决策树算法
- matlab 常用文件读写操作
- POJ 2449 Remmarguts' Date【K短路】
- vs基本快捷键
- 29:合唱队形
- Ubuntu14.04+CUDA8.0+cuDNN-v5.0+py_faster_rcnn实现
- 机器学习笔记4——生成学习算法
- swustoj(变位词(0549))
- 面经
- C/C++ 编译调用 DLL
- JS 语言精粹小结
- PostgreSQL笔记(一)安装、运行、远程访问
- Android之浅谈AsyncTask
- Android文件属性的权限和Permission的联系
- 2017/4/15 哈尔滨理工大学省选题解Day1