机器学习-生成学习算法

本内容主要参考Andrew Ng的机器学习公开课第五讲。

本课内容:

  • 生成学习算法的介绍;
  • 第一个典型的生成学习算法——高斯判别分析;
  • 生成学习算法与之前的判别学习算法的对比;
  • 朴素贝叶斯算法,
  • 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 是一个连续的随机变量,这时我们就使用高斯判别分析模型来建模,模型如下


机器学习-生成学习算法_第1张图片

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

机器学习-生成学习算法_第2张图片

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


机器学习-生成学习算法_第3张图片

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

机器学习-生成学习算法_第4张图片

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}
给出极大似然估计值


机器学习-生成学习算法_第5张图片
其中: 这里写图片描述这里写图片描述这里写图片描述

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


机器学习-生成学习算法_第6张图片

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

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

5.Laplace平滑

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

p(y=0)=numNeg+1numNeg+numPos+2

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


机器学习-生成学习算法_第7张图片

Reference

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

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

你可能感兴趣的:(Algorithm,机器学习,高斯,生成学习算法,GDA)