Board logo

标题: 判别模型、生成模型与朴素贝叶斯方法(4) [打印本页]

作者: yuyang911220    时间: 2016-7-11 10:02     标题: 判别模型、生成模型与朴素贝叶斯方法(4)

5文本分类的事件模型回想一下我们刚刚使用的用于文本分类的朴素贝叶斯模型,这个模型称作多值伯努利事件模型(multi-variate Bernoulli event model)。在这个模型中,我们首先随机选定了邮件的类型(垃圾或者普通邮件,也就是p(y)),然后一个人翻阅词典,从第一个词到最后一个词,随机决定一个词是否要在邮件中出现,出现标示为1,否则标示为0。然后将出现的词组成一封邮件。决定一个词是否出现依照概率p(xi|y)。那么这封邮件的概率可以标示为。  
让我们换一个思路,这次我们不先从词典入手,而是选择从邮件入手。让i表示邮件中的第i个词,xi表示这个词在字典中的位置,那么xi取值范围为{1,2,…|V|},|V|是字典中词的数目。这样一封邮件可以表示成,n可以变化,因为每封邮件的词的个数不同。然后我们对于每个xi随机从|V|个值中取一个,这样就形成了一封邮件。这相当于重复投掷|V|面的骰子,将观察值记录下来就形成了一封邮件。当然每个面的概率服从p(xi|y),而且每次试验条件独立。这样我们得到的邮件概率是。居然跟上面的一样,那么不同点在哪呢?注意第一个的n是字典中的全部的词,下面这个n是邮件中的词个数。上面xi表示一个词是否出现,只有0和1两个值,两者概率和为1。下面的xi表示|V|中的一个值,|V|个p(xi|y)相加和为1。是多值二项分布模型。上面的x向量都是0/1值,下面的x的向量都是字典中的位置。  
形式化表示为:  
m个训练样本表示为:  
  
表示第i个样本中,共有ni个词,每个词在字典中的编号为。  
那么我们仍然按照朴素贝叶斯的方法求得最大似然估计概率为  
  
解得,  
  
与以前的式子相比,分母多了个ni,分子由0/1变成了k。  
举个例子:  
X1
X2
X3
Y
1
2
-
1
2
1
-
0
1
3
2
0
3
3
3
1
假如邮件中只有a,b,c这三词,他们在词典的位置分别是1,2,3,前两封邮件都只有2个词,后两封有3个词。  
Y=1是垃圾邮件。  
那么,  
  
  
  
假如新来一封邮件为b,c那么特征表示为{2,3}。  
那么  
  
  
那么该邮件是垃圾邮件概率是0.6。  
注意这个公式与朴素贝叶斯的不同在于这里针对整体样本求的,而朴素贝叶斯里面针对每个特征求的,而且这里的特征值维度是参差不齐的。  
这里如果假如拉普拉斯平滑,得到公式为:  
  
表示每个k值至少发生过一次。  
另外朴素贝叶斯虽然有时候不是最好的分类方法,但它简单有效,而且速度快。
作者: yuchengze    时间: 2016-8-20 12:32

很好的帖子,感谢大家分享




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0