生成学习模型概述

        在有监督学习里,总的来说有两种学习模型,第一种是判别学习模型,它直接针对我们给的数据,找出不同类数据在特征上的不同,更形象点说,就是直接在特征空间内画圈圈三角形之类的,把不同的类别给分开。第二种是生成学习模型,它的目的是为啦找到数据究竟是肿么生成的,它背后的机理是什么?有一种就是从概率的角度研究数据的生成方式,说的有点虚,实际点就是求特征和类标签的联合概率分布,然后通过比较最大后验概率的形式得出最后的预测(后验概率:P(Y|X) = P(X,Y)/P(X) X是特征向量,Y是类标签)。那么生成学习模型和判别模型有什么不同呢,请看http://blog.csdn.net/huangfeng1993/article/details/43524263,今天我主要想总结一下具体的生成模型的算法。言归正传,因为P(Y|X) = P(X,Y)/P(X),而P(X)在给定条件下相等,所以我们只要学习出联合概率分布即可完成分类任务。那么如何学习联合概率分布呢,我总结大致有三类方式:

第一种方式是有参数估计

       基于确切的分布的,比如说高斯分布,它假设特征在某个类的条件下,X服从高斯分布,所以这之后我们要做的就是根据已知的数据去估计分布参数,常见的两种估计方法就有最大似然,和贝叶斯估计的方法。贝叶斯方法的最大不同在于它加入了人们对参数的先验假设,而最根本的不同在于贝叶斯学派认为估计值是未知服从一定分布的值而不是未知但确定值,具体描述可以参考http://muxuezi.github.io/posts/frequentism-and-bayesianism-chs

第二种方式是贝叶斯分类的方法

最熟悉的就是朴素贝叶斯,由贝叶斯公式可得

P(Y|X)= P(X,Y)/P(X) = P(X|Y)P(Y)/P(X)

假设特征向量X的各个分量,类条件下独立,则有

P(X|Y)P(Y)/P(X) = P(x1|Y)P(x2|Y)………….P(xn|Y) / P(X)

  然后我们就可以通过训练集简单的估计各个值啦啦。

虽然很我们可能怀疑类条件独立的假设过于强硬,但朴素贝叶斯算法据说简单而强大,比较适合文本分类,其中一个原因我想是因为文本只和附近的词有关联。And比如说磁带模型,它记录的是词频向量,所以这种特征的表示,也已经把上下文信息给抛弃了。所以很大程度上本来就特征不相关啦。

  再考虑另外一个问题,如果说把这个类条件下独立这个假设画成一张图,表述之间的关系,那就可以画成下图的样子:


这是什么,这显然就是贝叶斯网络嘛,只不过是特定结构的贝叶斯网络而已。而贝叶斯网络,我感觉最神秘的地方不是网络确定后肿么肿么算的问题,而是肿么去确定这个网络拓扑结构。有一种回答是,专家知识,( ̄▽ ̄)” 真是厉害有木有,我知道的另一种方式是这么描述的,首先确定好一个变量好的排序,比如说M,J,A

然后在分别检测是否P(J|M) = P(J) NO

是否P(A|J,M) = P(A|J)?   Yes

是否P(A|J,M) = P(A) ? No



然后结构就变成这个样子啦。

好吧,细心的你肯定注意到啦我一个用词,确定一个好的顺序,这个好的顺序肿么确定呢,你这不是把问题转移啦嘛,你不要再告诉用专家知识哈,打死你哈,好吧,那我决定告诉你,你实在买不起专家,就随机的多生成几个顺序,然后分别训练出一个贝叶斯网络,用集成学习嘛。是不是很厉害,说实话,我感觉有点扯,我只能感慨一句为什么集成学习你就这么无所不能呢!!!!

第三种方式是非参估计

这里所说的非参,并不是说算法就不涉及到任何参数,而是说它不假设任何的确定分布,所以它与生俱来的缺点就是需要大量的数据去学习。这就好像朴素贝叶斯是强假设,而knn而它的假设只是物以类聚人以群分,可以想象如果训练knn的数据量不大,在某一块出现空白,就有很大的分类问题。而非参估计最简单的两种方法是p窗,和最邻近估计,它们的共同假设是在比较小的特征空间内,服从均匀分布,所以p窗就把整个特征空间按照确定大小的某种形状进行划分,根据空间里的数据量来估计在这块空间内的概率密度。而最邻近估计则是确定数据量动态确定特征空间的大小的方式估计概率密度。好吧,这其实就是KNN分类的工作机理,提到KNN,我想到一个问题是,KNN是简单的嘛?我认为在机器学习中,说算法简单,大部分时候不是指算法执行步骤的简单,而是指拟合数据的强弱,所以从这个角度KNN是复杂的哦。

如何分类

学习到分布之后,我们应该如何分类呢,之前说啦用最大后验概率的方式,但问题是这种方法隐含的假设是认为所有的分类错误的惩罚是一样的。而显然在实际生活中,你把一个癌症病人诊断成没病,和把一个没病的诊断成癌症的代价是不同的,所以我们就引入了代价矩阵,去衡量不同的分类错误。其实就是不同的错误损失不一样,加啦个权重,就是这样。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值