模型介绍:朴素贝叶斯(Naive Bayes)是一个非常简单,但是实用性很强的分类模型。不过,和线性分类器、支持向量机分类器等基于线性假设的模型不同,朴素贝叶斯分类器的构造基础是贝叶斯理论。抽象一些说,朴素贝叶斯分类器会单独考量每一维度特征被分类的条件概率,进而综合这些概率并对其所在的特征向量做出分类预测。因此,这个模型的基本数学假设是:各个维度上的特征被分类的条件概率之间是相互独立的。

#---读取20类新闻文本的数据细节
#从sklearn.datasets里导入新闻数据抓取器fetch_20newsgroups
from sklearn.datasets import fetch_20newsgroups
#与之前预存的数据不同,fetch_20newsgroups需要即时从互联网下载数据
news=fetch_20newsgroups(subset='all')
#查验数据规模和细节
print(len(news.data))
print(news.data[0])

由代码的输出,可获知该数据共有18846条新闻;不同于前面的样例数据,这些文本数据既没有被设定特征,也没有数字化的量度。因此,在交给朴素贝叶斯分类器学习之前,要对数据做进一步的处理。
对数据进行分割并且随机采样一部分用于测试:

#--20类新闻文本数据分割
from sklearn.model_selection import train_test_split
#随机采样25%的数据样本作为测试集
x_train,x_test,y_train,y_test=train_test_split(news.data,news.target,test_size=0.25,random_state=33)
这部分的工作首先将文本转化为特征向量,然后利用朴素贝叶斯模型从训练数据中估计参数,最后利用这些概率参数对同样转化为特征向量的测试新闻样本进行类别预测。

#--使用朴素贝叶斯分类器对新闻文本数据进行类别预测
#从sklearn.feature_extraction.text里导入用于文本特征向量转化模块
from sklearn.feature_extraction.text import CountVectorizer
vec=CountVectorizer()
x_train=vec.fit_transform(x_train)
x_test=vec.transform(x_test)

#从sklearn.naive_bayes里导入朴素贝叶斯模型
from sklearn.naive_bayes import MultinomialNB
#从使用默认配置初始化朴素贝叶斯模型
mnb=MultinomialNB()
#利用训练数据对模型参数进行估计
mnb.fit(x_train,y_train)
#对测试样本进行类别预测,结果存储在变量y_predict中
y_predict=mnb.predict(x_test)

我们使用准确性、召回率、精确率和F1指标,这4个测度对朴素贝叶斯模型在20类新闻文本分类任务上的性能进行评估:
#---对朴素贝叶斯分类器在新闻文本数据上的表现性能进行评估
#从sklearn.metrics里导入classification_report用于详细的分类性能报告
from sklearn.metrics import classification_report
print('The accuracy of Naive Bayes Classifier is',mnb.score(x_test,y_test))
print(classification_report(y_test,y_predict,target_names=news.target_names))

通过代码的输出,我们获知朴素贝叶斯分类器对4712条新闻文本测试样本分类的准确性约为83.977%,平均精确率、召回率以及F1指标分别为0.86,0.84和0.82;

特点分析:
朴素贝叶斯模型被广泛应用于海量互联网文本分类任务。由于其较强的特征条件独立假设,使得模型预测所需要估计的参数规模从幂指数量级向线性量级减少,极大地节约了内存消耗和计算时间。但是,也正是受这种强假设的限制,模型训练时无法将各个特征之间的联系考量在内,使得该模型在其它数据特征关联性较强的分类任务上的性能表现不佳。

利用朴素贝叶斯进行新闻分类相关推荐

  1. 利用朴素贝叶斯进行新闻文本分类

    初探文本分类,本文使用的数据是5000条中文新闻文本数据,目的是使用朴素贝叶斯算法,对中文新闻文本进行分类预测.流程如下: 文本数据载入及清洗 搜狗新闻数据源:http://www.sogou.com ...

  2. 朴素贝叶斯进行新闻主题分类,有代码和数据,可以跑通

    folder_path = '/Users/apple/Documents/七月在线/NLP/第2课/Lecture_2/Naive-Bayes-Text-Classifier/Database/So ...

  3. ML之NB:利用朴素贝叶斯NB算法(TfidfVectorizer+不去除停用词)对20类新闻文本数据集进行分类预测、评估

    ML之NB:利用朴素贝叶斯NB算法(TfidfVectorizer+不去除停用词)对20类新闻文本数据集进行分类预测.评估 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 class ...

  4. ML之NB:利用朴素贝叶斯NB算法(CountVectorizer+不去除停用词)对fetch_20newsgroups数据集(20类新闻文本)进行分类预测、评估

    ML之NB:利用朴素贝叶斯NB算法(CountVectorizer+不去除停用词)对fetch_20newsgroups数据集(20类新闻文本)进行分类预测.评估 目录 输出结果 设计思路 核心代码 ...

  5. 基于朴素贝叶斯实现文本分类

    基于朴素贝叶斯实现文本分类 数据集介绍 数据集为网上公开的新闻数据,其中数据集包含10个类别. 模型选择 贝叶斯分类 贝叶斯公式 朴素贝叶斯 拉普拉斯平滑引入 某个属性的条件概率为0,则会导致整体概率 ...

  6. Python实现基于朴素贝叶斯的垃圾邮件分类 标签: python朴素贝叶斯垃圾邮件分类 2016-04-20 15:09 2750人阅读 评论(1) 收藏 举报 分类: 机器学习(19) 听说

    Python实现基于朴素贝叶斯的垃圾邮件分类 标签: python朴素贝叶斯垃圾邮件分类 2016-04-20 15:09 2750人阅读 评论(1) 收藏 举报  分类: 机器学习(19)  听说朴 ...

  7. 七、朴素贝叶斯中文文本分类

    1.朴素贝叶斯中文文本分类 中文分词 停用词 朴素贝叶斯中文分类举例:新闻文档分类 朴素贝叶斯中文分类的具体过程:加载停用词.中文分词.文本向量化.模型训练和保存.模型的加载和预测. 2 中文分词 2 ...

  8. 朴素贝叶斯、费舍尔分类方法

    朴素贝叶斯.费舍尔分类法 案例:有一批图书分类样本数据,用朴素贝叶斯.费舍尔分类法对样本数据学习进行分类. 数据清洗 这里我们不讨论数据的获取和清洗,而是聚焦在使用朴素贝叶斯.费舍尔分类法上.假设我们 ...

  9. python朴素贝叶斯的文本分类_自给自足,完全手写一个朴素贝叶斯分类器,完成文本分类...

    Part 1: 本文解决的问题: 我在有这样的一个数据集,里面存放了人们对近期播放电影的评价,当然评价也就分成两部分,好评和差评.我们想利用这些数据训练一个模型,然后可以自动的对影评做出判断,到底是好 ...

  10. 利用朴素贝叶斯模型识别垃圾邮件

    文章出处: http://blog.csdn.net/gane_cheng/article/details/53219332 http://www.ganecheng.tech/blog/532193 ...

最新文章

  1. 图形驱动程序和显卡驱动什么区别_我们常说的计算机驱动程序到底是什么,深入解读驱动程序本质...
  2. Leetcode 101.对称二叉树 (每日一题 20210709)
  3. 编译优化 | LLVM代码生成技术详解及在数据库中的应用
  4. 如何找到 SAP Spartacus OCC cms page 发送请求时读取 API endpoint 的代码
  5. 收集19个前端开发人员的必备工具
  6. 世界上最诡异的画,到底为何让无数人闻风丧胆?
  7. S5PV210裸机之GPIO
  8. 2017.10.25 打鼹鼠 思考记录
  9. 新版代shua社区源码(云商城1.0)
  10. AMD IOMMU与Linux (3) -- DMA
  11. 从零开始封装windows10 1803 超详细图文分享 第二篇:母盘的定制与安装
  12. python在股市有什么作用_一颗韭菜的自我修养:用Python分析下股市,练练
  13. dell服务器idrac配置
  14. iOS 键盘限制输入内容限制、输入长度限制
  15. vue3采用xlsx库实现上传excel文件,前端解析展示数据(日期转换问题解决)
  16. outlook 日历共享_如何共享您的Outlook日历
  17. 【Mysql数据库】数据库添加索引方式
  18. 转-龙符-146-宝鸣儿
  19. [原创]-[UiPath] UiPath中关于日期的操作
  20. 小内存处理1G或10G大小的log文件

热门文章

  1. 计算机课件网站,课件-优秀课件大全-瑞文网课件频道
  2. 搜狗站长平台多线程推送工具【免码-免VPS】
  3. 论文解读《使用支持向量机和PSSM谱预测蛋白质中的RNA结合位点》
  4. Paper Reading: Re-ranking Person Re-identification with k-reciprocal Encoding
  5. 街区最短路径问题——曼哈顿距离
  6. pdf.js根据路径里传参数高亮显示关键字(跳转到对应页面)
  7. win10打开计算机黑屏怎么办,win10系统重启黑屏怎么办
  8. 【深入理解计算机系统csapp】 attack lab实验四
  9. 【ESP32-IDF】02-2 外设-触摸传感器
  10. 今年过年收大礼,劼哥带你进阿里