Andrew NG 机器学习课程笔记(五)
来源:互联网 发布:什么软件可以root 编辑:程序博客网 时间:2024/06/05 09:16
生成学习算法
本次课Andrew老师主要讲述了生成学习算法的定义,并详细描述了高斯判别分析的例子。之后对比了生成学习算法和判别学习算法的不同,介绍了一个适合对文本分类的算法,朴素贝叶斯。并借此介绍了一种平滑技术——拉普拉斯平滑。
生成学习算法的定义:
这里借用李航博士《统计学习方法》中的一段话
生成方法由数据学习联合概率分布P(x,y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型
P(Y|X)=P(X,Y)/P(X)
这样的方法之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系。典型的生成模型有:朴素贝叶斯法和隐马尔科夫模型。
判别方法由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。判别方法关心的是对给定的输入X,应该预测什么样的输出Y。典型的判别模型包括:K近邻法、感知机、决策树、逻辑回归,最大熵模型、支持向量机、提升方法和条件随机场等。
上述两者都属于监督学习。两者各有优缺点,适合不同条件下的学习问题。
生成方法的特点:生成方法可以还原出联合概率分布P(X,Y),而判别方法则不能;生成方法的学习收敛速度更快,即当样本容量增加的时候,学习到的模型可以更快的收敛于真实模型;当存在隐变量时,仍可以用生成算法学习,此时判别方法就不能用。
判别方法的特点:判别方法直接学习的时条件概率P(Y|X)或决策函数f(X),直接面对预测,往往学习的准确率更高;可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。
高斯判别分析:
多变量正态分布描述的是n维随机变量的分布情况,这里的u变成了向量,σ也变成了矩阵Σ。写作N(u,Σ),假设有n个随机变量X1,X2。。。Xn.u的第i个分量是E(Xi),而概率密度函数为:
其中|Σ|是Σ的行列式,Σ是协方差矩阵,而且是对称半正定的。当Σ是二维的时候如下所示:
u决定的是中心位置,Σ决定的是投影椭圆的朝向和大小
如果输入的X是连续随机变量,那么可以用高斯判别分析模型来确定P(X|Y)。
输出结果服从伯努利分布,在给定模型下特征符合多值高斯分布。
概率密度函数如下:
然后就可以做最大似然估计
求导后得到参数估计公式:
是训练样本中y=1占的比例
u0是y=0样本中特征的均值
u1是y=1样本中特征的均值
是样本中特征方差的均值
直线两边的y值不同,但协方差矩阵相同,因此形状相同,u不同,因此位置不同。
朴素贝叶斯:
如果X是离散值的话,可以考虑采用朴素贝叶斯的分类方法。假如要分类垃圾邮件和正常邮件,采用最简单的特征描述方法,首先找一部英文词典,将里面的单词全部列出来。然后将每封邮件表示成一个向量,向量中的每一维都是字典中的一个词的0/1值,1表示该词在邮件中出现,0表示未出现。
比如一封邮件中出现了a和buy,没有出现aardvark、aardwolf、zygmurgy,那么可以形式化表示为:
假设字典中共有50000个词,那么X是50000维的。这时候如果要建立多项式分布模型对应到上面的问题上来,把每封邮件当做一次随机试验,那么结果的可能性有2^50000种,意味着参数有这么多个,不可能用来建模
换一种思路,我们要求的是P(y|X),根据生成模型定义我们可以求P(X|Y)和P(Y),假设X中的特征是条件独立的,这个称作朴素贝叶斯假设。如果一封邮件是垃圾邮件(y=1),且这封邮件出现词buy与是否出现price无关,那么这两个词是独立的。当然这是不可能的,不可能完全没关系。
所以这里我们实际上建了2个模型,这50000个词每个出现都有一个概率值,分别对于y=0和y=1这个概率值就是需要我们估计的,这里用二项分布去拟合它们。
最大似然求出:
那么,新输入一个X:输出y=1的概率为
当遇到X为连续值时,可以采用分段的方式把连续值转化为离散值。
拉普拉斯平滑:
朴素贝叶斯有个致命的缺点就是对数据稀疏问题过于敏感。前面提到的邮件分类,如果某个词在训练数据中从来没出现过,那不论y=0或1,概率都是0了。但实际上不可能概率就是0.这时候我们赋予它之前出现过的次数一个极小值。简单的讲就是遇到为0的情况,就分子加1,分母有几类就加几。如下所示,对二项分布的出现概率估计修正如下(二类问题,j是第j个单词,i是样本):
0 0
- Andrew NG 机器学习课程笔记(五)
- Andrew Ng 机器学习笔记(五)
- Andrew Ng机器学习课程笔记(五)之应用机器学习的建议
- Andrew Ng 《机器学习》课程笔记
- Andrew Ng机器学习课程笔记
- Andrew Ng机器学习课程笔记--week3
- Andrew Ng机器学习课程笔记--week4
- Andrew Ng机器学习课程笔记--week6
- Andrew Ng机器学习课程笔记--week7
- Andrew Ng机器学习课程笔记--week8
- Andrew Ng机器学习课程笔记--汇总
- Andrew NG 机器学习课程笔记(一)
- Andrew NG 机器学习课程笔记(二)
- Andrew NG 机器学习课程笔记(三)
- Andrew NG 机器学习课程笔记(四)
- Andrew NG机器学习课程笔记(六)
- Andrew NG机器学习课程笔记(七)
- Andrew NG机器学习课程笔记(八)
- vs2010asp.net网站制作用户注册登录界面源代码(包含验证码)并把用户信息保存到数据库sql2008
- 【编程工具】如何管理自己的编程环境
- HttpClient4.3教程 第二章 连接管理
- QT 遇到的问题
- [C#基础]委托与事件
- Andrew NG 机器学习课程笔记(五)
- 我在Facebook干不下去的10个理由
- SQL Servier 2000 无法安装解决方法
- 严澜:创业公司如何实施敏捷开发
- C++
- 在公司里如何写好一封电子邮件
- HttpClient4.3教程 第三章 Http状态管理
- [小例子]计算商品价格
- JAVA敏捷开发环境搭建