朴素贝叶斯算法及不同特征值结果的比较

 一、算法简介:

       该算法的基本知识,季季都已经写在这了用朴素贝叶斯做内容分类;这里再稍微重复一下,所谓“贝叶斯”,就是指概率计算中的贝叶斯公式;所谓“朴素”,是指该算法的一个前提假设,即给定类别Y的情况下,观察到联合的W1、W2、 ...、Wn的概率为: \( P(w_{1},w_{2},...,w_{n}|Y)=\prod_{i=1}^{n} P(w_{i}|Y) \)

二、算法实现:

       1)特征值选取:

         目前选取特征值的方法比较简单,主要是按照词频的大小,从每条微博中(包括训练集和测试集的微博)选取词频最高的前N个词作为特征值,记为 \( features(tweet)=\big\{w_{1},w_{2},...,w_{N},\forall i \neq j,w_{i}\neq w_{j}\big\}; \)  

现在我们已经尝试了N=10,N=20和取微博中全部的词作为特征值的情况;

  • 对于训练集,按类选取特征值,每个类的特征值为该类下所有微博的特征值的总和,即 \( features(category Y) = \big\{features(tweet)|\forall tweet, s.t. category(tweet)=Y \big\}; \)
  • 对于预测集,基于每条微博选取特征值,从每条微博中选取出现频率最高的前N个词作为特征值;          

       2)计算后验概率:

            即该tweet属于某一类的概率,设该tweet的特征值为 \( w_{1},w_{2},...,w_{N} \) ,现有M个分类 \( C_{1},C_{2},...,C_{M} \) ,根据贝叶斯公式,得该tweet属于类Ci的概率P(Ci | tweet)为:

\[ P\big\{C_{i}|tweet\big\}=\frac{P\big\{tweet|C_{i}\big\}P(C_{i})}{P\big(tweet\big)} =\frac{P\big\{tweet|C_{i}\big\}P(C_{i})}{\sum_{i=1}^M P\big\{tweet|C_{i}\big\}P(C_{i})} =\frac{\prod_{j=1}^N P\big\{w_{j}|C_{i}\big\}P\big(C_{i}\big)}{ \sum_{i=1}^M \prod_{j=1}^N P\big\{w_{j}|C_{i}\big\}P\big(C_{i}\big)} \]

            其中, \( P\big(C_{i}\big) \) 为Ci这个类下的微博数除以训练集全部的微博数, \( P\big\{w_{j}|C_{i}\big\} \) 为Wj在Ci类的特征值中出现的次数除以Ci类中特征值的总数。如果 \( P\big\{w_{j}|C_{i}\big\} \) 为0,则进行平滑处理,赋为一个很小的概率 \( P_{0} = \frac{1}{count(tweets)+1} \) ,count(tweets)为训练集中全体的微博数。 

三、计算结果:

     利用11月7日review之后的标注结果review_category_20121107.xlsx,我们得到了N(特征值个数)等于10、20和全部词时几个类的PR曲线,蓝色表示N=10,黑色表示N=20,红色表示全部的词,具体结果如下:

 

                       

 

 

 

四、总结

       目前对于贝叶斯算法的尝试还处于初级阶段,对于选取特征值的方法有些简单,还应考虑用互信息和最大熵的方法来选择特征值,或者其他改进的方法。

 

 

转载于:https://www.cnblogs.com/thinkers-dym/p/3412438.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值