Stanford机器学习[第五讲]-生成学习算法,stanford第五讲


本课内容:

  • 生成学习算法的介绍;
  • 第一个典型的生成学习算法——高斯判别分析;
  • 生成学习算法与之前的判别学习算法的对比;
  • 朴素贝叶斯算法,
  • Laplace平滑。

1.生成学习算法

学习算法分为两种:一种是判别学习算法(Discriminative Learning Algorithm),简称DLA,另一种是生成学习算法(Generative Learning Algorithm),简称GLA。

DLA通过建立输入空间X与输出标注{1, 0}间的映射关系学习得到p(y|x)。而GLA首先确定p(x|y)p(y),由贝叶斯准则得到后验分布p(y|x)=p(x|y)p(y)p(x)。通过最大后验准则进行预测,即arg maxy p(y|x)=arg maxyp(x|y)p(y)p(x)
<=>arg maxy p(x|y)p(y)

if p(y) is uniform: <=> arg maxy p(x|y).

2.GDA高斯判别分析

当我们有一个分类问题,它的输入特征x是一个连续的随机变量,这时我们就使用高斯判别分析模型来建模,模型如下


这里写图片描述

是一个二类问题,所以假设y服从的是伯努利分布,进一步描述模型

这里写图片描述

根据模型经过训练得到它的似然函数模型


这里写图片描述

然后,通过极大似然估计得到变量的估计值如下:

这里写图片描述

3.GDA和logistic回归模型的关系

如果我们把p(y=1|,x;)看做是一个函数的变量x,我们会发现,这样一个有趣的式子:


这里写图片描述

该式子就是logistic回归模型的一个sigmoid函数。

GDA的优势: 由于有高斯分布的先验信息,如果确实符合实际数据,则只需要少量的样本就可以得到较好的模型。对比之下,logistic回归模型有更好的鲁棒性。

4.朴素贝叶斯Naive Bayes

朴素贝叶斯是通过后验概率来分类的,首先介绍一下贝叶斯公式:
p(X|Y)=p(Y|X)p(X)p(Y)
朴素贝叶斯模型对于输入特征xy,是假设x条件独立于y的。条件独立也就是下列式子是成立的:
p(x1,x2...xn|y)=p(x1|y)p(x2|y)...p(xn|y)

我们根据条件可以得到一个似然函数


这里写图片描述

训练模型(联合概率分布):给定训练样本{(x(i),y(i));i=1..m}
给出极大似然估计值


这里写图片描述

其中:这里写图片描述这里写图片描述这里写图片描述

预测:输入一个n维特征值x(如一个词表),由贝叶斯准则得到后验概率


这里写图片描述

由最大后验准则得到分类结果。

关于贝叶斯的一个实例,可以参考我的另外一篇博文:
机器学习算法-朴素贝叶斯Python实现.

5.Laplace平滑

在实际应用中,有时候我们的数据正负样本的比例不均衡,比如正样本的个数为50,负样本为0,这是计算p(y=0)=0,这个概率在很多的时候是不科学的,所以使用laplace平滑,将正样本和负样本都增加一个,然后计算负样本的概率就变成了这样p(y=0)=numNeg+1numNeg+numPos+2

将它归纳之后的到的公式如下:


这里写图片描述

Reference

Stanford机器学习公开课:http://open.163.com/movie/2008/1/A/R/M6SGF6VB4_M6SGHMFAR.html


本栏目Machine Learning 算法实现持续更新中,欢迎关注:Dream_Angel_Z博客

相关内容