本内容主要参考Andrew Ng的机器学习公开课第五讲。
本课内容:
学习算法分为两种:一种是判别学习算法(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) 。通过最大后验准则进行预测,即
if p(y) is uniform: <=> arg maxy p(x|y) .
当我们有一个分类问题,它的输入特征 x 是一个连续的随机变量,这时我们就使用高斯判别分析模型来建模,模型如下
根据模型经过训练得到它的似然函数模型:
如果我们把 p(y=1|,x;几个参数) 看做是一个函数的变量 x ,我们会发现,这样一个有趣的式子:
GDA的优势: 由于有高斯分布的先验信息,如果确实符合实际数据,则只需要少量的样本就可以得到较好的模型。对比之下,logistic回归模型有更好的鲁棒性。
朴素贝叶斯是通过后验概率来分类的,首先介绍一下贝叶斯公式:
我们根据条件可以得到一个似然函数
训练模型(联合概率分布):给定训练样本 {(x(i),y(i));i=1..m}
给出极大似然估计值
预测:输入一个n维特征值 x (如一个词表),由贝叶斯准则得到后验概率
由最大后验准则得到分类结果。
关于贝叶斯的一个实例,可以参考我的另外一篇博文:
机器学习算法-朴素贝叶斯Python实现.
在实际应用中,有时候我们的数据正负样本的比例不均衡,比如正样本的个数为50,负样本为0,这是计算 p(y=0)=0 ,这个概率在很多的时候是不科学的,所以使用laplace平滑,将正样本和负样本都增加一个,然后计算负样本的概率就变成了这样
将它归纳之后的到的公式如下:
Stanford机器学习公开课:http://open.163.com/movie/2008/1/A/R/M6SGF6VB4_M6SGHMFAR.html