小闹钟的机器学习笔记(5)

本次学习内容为cs229第五节

生成学习算法

逻辑回归的工作是观察数据并寻找到一条直线将两类数据尽可能好地隔开。
除了使用一条线将数据分类外,我们也可以通过遍历数据建立模型,对新数据进行检测看它更符合哪个模型的特征。
这种方法称为生成学习算法

判别学习算法一般有两类:
1. 直接学习P(y|x)。
2. 学习一个假设,直接输出0或1。
生成学习算法则用来对P(x|y)进行建模,显示某种概率分布。
P(x|y)表示的是在给定y的情况下的x的概率模型。

如果假设x|y满足高斯分布,这说明y=1|x的后验概率函数是逻辑回归。
如果这个假设成立,则高斯判别分析表现会比逻辑回归好。
如果x|y满足泊松分布,则相反。
即使模型假设不满足,高斯判别分析的效果通常也很好。
同高斯判别相比,逻辑回归需要更多的样本模型。

高斯判别分析

当我们说一个变量满足高斯分布或多元高斯分布时,这个变量的概率密度函数是这样的:

小闹钟的机器学习笔记(5)

当我们描述高斯判别分析算法时,我们会先观察正样本,然后拟合出一个关于正样本的高斯分布。接下来观察另一个样本得到第二个高斯分布,用密度分布得到一个分离器,得到一条将两部分分割的线。
这条线与逻辑回归得到的结果是不同的。

小闹钟的机器学习笔记(5)

然后求得关于参数的似然函数。

小闹钟的机器学习笔记(5)

在逻辑回归中,我们考虑的是conditional likehood,而在高斯判别中,我们考虑的是joint likehood。
求出参数的最大似然估计后,我们会发现:

小闹钟的机器学习笔记(5)

后两个参数的分母部分为label为0或1的y的个数。分子部分为对应的x值的求和。
找到这些参数之后,下一步是进行预测当得到一个新的x时,它对应的y的情况为何。

小闹钟的机器学习笔记(5)

使得P(y|x)最大化的y值为最可能的结果。

朴素贝叶斯算法

以邮件分类为例,对于y,如果y=1,则为垃圾邮件;y=0,则为普通邮件。
创建特征向量x,向量中的元素为1时表示邮件中出现了对应单词。
对参数建立模型:

小闹钟的机器学习笔记(5)

然后求出参数的最大似然估计。

小闹钟的机器学习笔记(5)

最大似然的结果如下表示:

小闹钟的机器学习笔记(5)

分子的含义是,遍历整个邮件集合,对于标签y=1的邮件,计算其中词语j出现的数目的总和,分母是训练集合中垃圾邮件总数。整体表示在垃圾邮件中看到j的概率。

小闹钟的机器学习笔记(5)

以上表示垃圾邮件出现的概率。
所有的这些共同构成一个垃圾邮件分类器。
词语集合由最近两个月收到的邮件中出现三次以上的词语组成。

如果邮件中出现一个没有统计过的新词语,则:

小闹钟的机器学习笔记(5)

实际上分母和分子都是0,所以没有定义。

Laplace平滑

对于两种情况出现的数目都加上1。
如果y可以取k种可能性,如果要估计P(y=j),则在分子(j出现个数)上+1,在分母m上+k。
所以对于朴素贝叶斯算法,得到的结果为:

小闹钟的机器学习笔记(5)

在分子上+1,在分母上+2。
这样就解决了0概率问题,这样即使遇到之前未出现过的词语,你的邮件分类器也能给出有效预测。