朴素贝叶斯模型(NB model)

  本节开始介绍第一个生成式模型:朴素贝叶斯模型(NB model)。生成式模型与判别式模型的区别在于,生成式模型对样本的联合分布建模:

                                   

因此我们需要求出样本的类别分布p(y)与,样本类概率分布p(x|y)。生成式模型的困难在于p(x|y)计算,有时我们很难去估计类概率分布。因此,我们会做出一些假设,Naive Bayes Assumption 是指:样本在给定类别的条件下,各个特征之间相互独立:

                                       

根据p(xi|y)分布的假设不同,我们可以分成两种假设模型:muti-variate Bernouli model 与 multinomial event model,以下将分两个部分介绍这两种模型。

  1.muti-variate Bernouli model

  这种模型对应于文本分类中,特征权重是BOOL型表示方法,仅关心文本中是否出现某个词。假设当前样本集的字典V=[v1,v2,v3...v|k|],字典的每一个词对应一次Bernouli实验。对于某个样本x=[t1,t2,t3...t|v|],其类概率密度:

          

记Θi|j=p(ti|cj),Θj=p(y=cj)。因此样本的联合概率分布可以写成:

          

 对于训练集{(xk,yk)}(k=1,2,3,...m),其最大似然估计:

          

其中满足条件:

                               

采用拉格朗日乘子法,可以求得:

           

  2.Mutinomianl event model

  多项式模型对应文本中的词频特征权重(Term Frequency),不仅关系某个词是否出现,而且还关心起在文档里出现的次数。假设一篇文档x=[w1,w2,...w|h|,...w|x|]其中w|h|表示文档x第h个单词,在贝叶斯假设下类概率密度函数:

            

使用词典模型表示该篇文档x=[t1,t2,...t|v|],其中ti 表示字典第i个词在文档中出现的次数,因此上式可以改下成:

            

因此,样本的联合概率分布:

                            

对于样本集:D={(xk,yk)}  (k=1,2...N),最大似然估计:

           

其中满足条件:

                                

采用拉格朗日乘子法:

            

  ps:老板写的Naive Bayes开源工具,上面的推导也是老板的一个课件内容整理。

          地址:http://www.openpr.org.cn/index.php/NLP-Toolkit-for-Natural-Language-Processing/43-Naive-Bayes-Classfier/View-details.html

 

 

 

                                      

 

            

              

转载于:https://www.cnblogs.com/wangbogong/archive/2013/05/08/3067162.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你提供的代码实现了一个基于MultinomialNB算法的朴素贝叶斯分类器的建立、训练、保存、预测和评估。具体说明如下: 1. 建立贝叶斯模型:使用MultinomialNB类创建一个名为NB_model的贝叶斯模型对象,其中alpha=0.1表示平滑参数的值,class_prior=None表示使用统一的先验概率,fit_prior=True表示学习类先验概率。 2. 贝叶斯模型训练:使用训练数据x_train_df和标签y_train对贝叶斯模型进行训练,即使用这些数据来学习如何根据输入的特征来预测相应的输出标签。 3. 贝叶斯模型保存:使用joblib库的dump函数将训练好的贝叶斯模型保存在名为nb_model.m的文件中,以备后续使用。 4. 贝叶斯模型预测:使用训练好的贝叶斯模型对测试数据x_test_df进行预测,即使用模型来预测测试数据的标签,预测的结果存储在一个名为prediction的字典对象中,其中"MultinomialNB"表示使用的模型名称,NB_model.predict(x_test_df)表示对测试数据进行预测的结果。 5. 贝叶斯模型评估:使用sklearn.metrics库中的函数来计算贝叶斯模型的性能指标,包括准确率、F1值、混淆矩阵和分类报告。其中,classification_report函数计算并打印模型的分类报告,其中包括每个类别的精确度、召回率、F1值和支持数。y_test是测试数据的真实标签,prediction["MultinomialNB"]是使用MultinomialNB模型预测出的标签,target_names=["Ham","Spam"]表示两个类别的名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值