本课内容:
- 生成学习算法的介绍;
- 第一个典型的生成学习算法——高斯判别分析;
- 生成学习算法与之前的判别学习算法的对比;
- 朴素贝叶斯算法,
- 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(如一个词表),由贝叶斯准则得到后验概率
由最大后验准则得到分类结果。
关于贝叶斯的一个实例,可以参考我的另外一篇博文:
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博客