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)

朴素贝叶斯模型对于输入特征x和输出结果y,是假设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博客

时间: 2024-11-08 18:55:20

Stanford机器学习[第五讲]-生成学习算法的相关文章

(笔记)斯坦福机器学习第五讲--生成学习算法

 本讲内容 1. Generative learning algorithms(生成学习算法) 2. GDA(高斯判别分析) 3. Naive Bayes(朴素贝叶斯) 4. Laplace Smoothing(拉普拉斯平滑) 1.生成学习算法与判别学习算法 判别学习算法:直接学习  或者学习一个假设  直接输出0或者1.logistic回归是判别学习算法的一个例子. 生成学习算法:对  建模,即在给定所属的类别的情况下,对特征出现的概率建模.出于技术上的考虑,也会对  建模.   根据贝叶斯公

Stanford大学机器学习公开课(五):生成学习算法、高斯判别、朴素贝叶斯

(一)生成学习算法 在线性回归和Logistic回归这种类型的学习算法中我们探讨的模型都是p(y|x;θ),即给定x的情况探讨y的条件概率分布.如二分类问题,不管是感知器算法还是逻辑回归算法,都是在解空间中寻找一条直线从而把两种类别的样例分开,对于新的样例,只要判断在直线的哪一侧即可:这种直接对问题求解的方法可以称为判别学习方法. 而生成学习算法则是对两个类别分别进行建模,用新的样例去匹配两个模板,匹配度较高的作为新样例的类别,比如分辨大象(y=1)和狗(y=0),首先,观察大象,然后建立一个大

机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)

我们之前学习的算法都是基于p(y|x;θ), 他的思想是找出找出一个决策边界来将两类分开,而生成算法是先对两个类别分别建模,为了将样本分开,将样本代入两个模型,看样本与哪个类别更匹配. 这种试图直接从输入x映射到类别标签{0,1}的算法被称为判别学习算法:而通过计算p(x|y)(和p(y))来得到模型的算法被称为生成学习算法 通过贝叶斯函数得到p(y|x)=p(x|y)p(y)p(x), argmaxyp(y|x)=argmaxyp(x|y)p(y)p(x)=argmaxyp(x|y)p(x)

【cs229-Lecture5】生成学习算法:1)高斯判别分析(GDA);2)朴素贝叶斯(NB)

参考: cs229讲义 机器学习(一):生成学习算法Generative Learning algorithms:http://www.cnblogs.com/zjgtan/archive/2013/06/08/3127490.html 首先,简单比较一下前几节课讲的判别学习算法(Discriminative Learning Algorithm)和本节课讲的生成学习算法(Generative Learning Algorithm)的区别. eg:问题:Consider a classi?cat

生成学习算法

生成学习算法引入 目前为止,我们主要讲解了条件概率模型p(y|x,θ)的学习算法.接下来,我们将讨论其他的学习算法.接下来举个例子,比如现在遇到一个分类问题,基于一些特征来判断一个动物是大象 (y = 1) 还是小狗 (y = 0).基于给定的数据集,我们可以采用logistic回归或者感知器学习的方法来寻找一条直线(称之为决策边界)把大象和小狗分割开割开来.之后预测新的动物时,只要判断它在决策边界的哪一边就可以预测其所属分类. 现在有另外一种方法.首先是查看大象的数据,然后建立一个什么是大象的

生成学习算法(Generative Learning algorithms)

一:引言 在前面我们谈论到的算法都是在给定x的情况下直接对p(y|x;Θ)进行建模.例如,逻辑回归利用hθ(x) = g(θTx)对p(y|x;Θ)建模. 现在考虑这样一个分类问题,我们想根据一些特征来区别动物是大象(y=1)还是狗(y=0).给定了这样一个训练集,逻辑回归或感知机算法要做的就是去找到一个决策边界,将大象和狗的样本分开来.但是如果换个思路,首先根据大象的特征来学习出一个大象的模型,然后根据狗的特征学习出狗的模型,最后对于一个新的样本,提取它的特征先放到大象的模型中求得是大象的概率

生成学习算法、朴素Bayes入门

PART0  判别学习算法 引入:二元分类问题 建模:判别学习算法(discriminative learning algorithm)直接根据P(y|x)[即给定特征x下的分类结果y]建模 之前我们用的算法(如logistic回归)就是判别学习算法 PART1  生成学习算法 PART1.1  Definition 引入:还是二元分类问题 建模:生成学习算法(generative learning algorithm)对P(x|y)[即给定具体的一类y下的特征x].P(y)建模,然后由baye

分类和逻辑回归(Classification and logistic regression),广义线性模型(Generalized Linear Models) ,生成学习算法(Generative Learning algorithms)

分类和逻辑回归(Classification and logistic regression) http://www.cnblogs.com/czdbest/p/5768467.html 广义线性模型(Generalized Linear Models) http://www.cnblogs.com/czdbest/p/5769326.html 生成学习算法(Generative Learning algorithms) http://www.cnblogs.com/czdbest/p/5771

Stanford机器学习---第五讲. 神经网络的学习 Neural Networks learning

原文见http://blog.csdn.net/abcjennifer/article/details/7758797,加入了一些自己的理解 本栏目(Machine learning)包含单參数的线性回归.多參数的线性回归.Octave Tutorial.Logistic Regression.Regularization.神经网络.机器学习系统设计.SVM(Support Vector Machines 支持向量机).聚类.降维.异常检測.大规模机器学习等章节.全部内容均来自Standford