十、naive bayes朴素贝叶斯

1 简介

假定:样本属性独立性假定
比如一篇文章w=(词1,词2,词3,...)
我们要看这篇文章属于科技还是娱乐
需要计算p(科技|w)和p(娱乐|w),哪个概率大,我们就把这篇文章分到哪一类
p(科技|w)=p(科技|词1,词2,词3,...)=p(词1,词2,词3,...|科技)p(科技)/p(词1,词2,词3,...)
p(娱乐|w)=p(娱乐|词1,词2,词3,...)=p(词1,词2,词3,...|娱乐)p(娱乐)/p(词1,词2,词3,...)
可以看到分母都是一样的,所以考虑分子大小即可。

2 优缺点

(一)优点
1、不需要调参
2、有稳定的分类效率
3、对缺失数据不太敏感,算法比较简单,常用于文本分类,分类准确性高,速度快
(二)缺点
1、假设条件:样本属性独立性的假定,所以样本属性有关联时效果不好
2、在训练集中进行统计词工作,会对结果造成干扰

3 实例-对新闻进行分类

首先导入模块

from sklearn.model_selection import train_test_split
from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report

朴素贝叶斯算法:

def NB():
    news=fetch_20newsgroups()
    x=news.data
    y=news.target
    x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.25)
    tfidf = TfidfVectorizer()
    x_train = tfidf.fit_transform(x_train)
    x_test = tfidf.transform(x_train)
    nb=MultinomialNB(alph=1.0)
    nb.fit(x_train,y_train)
    y_predict=nb.predict(x_test)
    print('预测文章类别为:', y_predict)
    score=nb.score(x_test,y_test)
    print('准确率为:',score)
    #混合矩阵
    print('每个类别的精准性和召回率',classification_report(y_test,y_predict,target_names=news.target_names))
if __name__='__main__':
    NB()

输出:

预测文章类别为: [ 7 14 17 ... 10 14  5]
准确率为: 0.8404074702886248
每个类别的精确率和召回率:     precision    recall  f1-score   support
             alt.atheism       0.85      0.73      0.79       214
           comp.graphics       0.86      0.73      0.79       252
 comp.os.ms-windows.misc       0.87      0.81      0.84       266
comp.sys.ibm.pc.hardware       0.81      0.81      0.81       267
   comp.sys.mac.hardware       0.83      0.87      0.85       223
          comp.windows.x       0.91      0.86      0.88       260
            misc.forsale       0.94      0.68      0.79       251
               rec.autos       0.85      0.95      0.90       226
         rec.motorcycles       0.95      0.96      0.95       256
      rec.sport.baseball       0.98      0.92      0.95       281
        rec.sport.hockey       0.89      0.96      0.93       226
               sci.crypt       0.78      0.99      0.87       256
         sci.electronics       0.89      0.78      0.83       251
                 sci.med       0.94      0.90      0.92       227
               sci.space       0.81      0.93      0.87       220
  soc.religion.christian       0.56      0.98      0.71       248
      talk.politics.guns       0.75      0.98      0.85       223
   talk.politics.mideast       0.88      0.99      0.93       209
      talk.politics.misc       0.99      0.56      0.72       194
      talk.religion.misc       0.97      0.19      0.31       162
             avg / total       0.86      0.84      0.83      4712
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 注:题中所指的『机器学习』不包括『深度学习』。本篇文章以理论推导为主,不涉及代码实现。 前些日子定下了未来三年左右...
    我偏笑_NSNirvana阅读 40,583评论 12 145
  • title: 朴素贝叶斯分类算法date: 2016-10-07 19:30:29comments: trueca...
    数据挖掘小菜阅读 1,295评论 2 2
  • 晚饭:苹果 今天的天很美呢 然后我们明天要去佛罗伦萨做市场调研的工作,虽然我极力极力的控制着寄几,可是这些东西还是...
    做一个优秀的姑娘阅读 224评论 0 0
  • 2017年2月2日,阴天阵风。 在微博上看到一段话,马克吐温:“政客全都是贼,只要不盯着他们准会偷东西。”———事...
    良小哲阅读 396评论 0 0
  • 学员:黄诗淇 时间:7月14日 任课教师:张老师 课程目标:1.了解桁架桥的基本结构 2.了解桁架结构及定义 3....
    蔓越莓m曲奇_阅读 459评论 0 0

友情链接更多精彩内容