您的位置:首页 > 其它

初学ML笔记N0.2——生成学习算法

2016-06-29 16:30 204 查看
在前几次的学习内容中,我们都是直接对P(Y|X)进行建模分析,线性回归及逻辑斯蒂回归就是这样的,这种方法叫做判别学习算法(discriminative learning algorithms)。

新的这种学习方法,名字叫做生成学习算法(generative learning algorithms),它不直接求P(Y|X),而是根据贝叶斯公式,可以看到,通过求P(X|Y)与P(Y)及P(X),就能得到P(Y|X)了。如下图:



在公开课讲义中,举了个例子帮助理解。要识别一个动物是大象还是小狗,我们可以分别建立大象跟小狗的特征模型,然后看这个动物的特征更匹配大象的还是小狗的,然后就可以对其进行分类。

如果我们把大象定义为1,小狗定义为0,那么P(X|Y=1)就表示大象的特征分布模型,P(X|Y=0)就表示小狗的特征分布模型。

当要识别一个动物时,我们要分别计算Y=0及Y=1下的P(Y|X),并比较它们的大小,并取概率大的那个Y值作为分类。所以,我们要算的是:



由于我们只是比较大小,分母的P(X)项就可以不用计算了。

高斯判别法

首先,做一些假设。假设有X1,X2,两个特征变量,Y作为输出有0跟1两种结果。

那么我们再假设,X1|Y,X2|Y服从高斯分布模型,Y服从伯努利模型,即:



通过求解最大似然函数,可以得到各个变量的取值:



Φ是Y=1的概率,就是用M个点中,Y=1的点的个数除以M。

μ0是Y=0所对应的均值,是用Y=0的那些点对应的X全部加起来,再除以Y=0的点的个数。

μ1是Y=1所对应的均值,是用Y=1的那些点对应的X全部加起来,再除以Y=1的点的个数。

Σ是均方差,用到了所有点进行计算。

当然,以上对应的是一维变量的模型。

下面,直接看图形容易理解:



上图是一个二维变量的模型。×代表Y=1,圈代表Y=0。

那么上边的图形是如何做出来的呢?

我们分别统计Y=1以及Y=0的点对应的X1,X2的均值,以及各自均方差,就能做出图中所示的圆了,每一圈代表一个等高线。从交点处做直线,就能学习到判别方法了。

朴素贝叶斯

先看看概率论的链式法则:



我们做出假设,当Y、X1发生,不影响X2的发生;当X1、X2的发生,不影响X3的发生,等等等。即各个变量之间是独立的,那么可以写成:



但事实上,通常变量之间并不独立。例如垃圾邮件分类例子中,X代表出现每个单词。在实际中,单词与单词之间是有联系的,例如出现了教室单词,那么很大概率上就会出现老师名字单词。

但是即便如此,用朴素贝叶斯进行文本分类的效果还是很好的。

关于朴素贝叶斯,以下博文讲解的非常好,这里就不过多总结了。

http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习 算法