sklearn调包侠之朴素贝叶斯
文档处理
朴素贝叶斯算法常用于文档的分类问题上,但计算机是不能直接理解文档内容的,怎么把文档内容转换为计算机可以计算的数字,这是自然语言处理(NLP)中很重要的内容。
TF-IDF方法
今天我们简单讲解TF-IDF方法,将文本数据转换为数字。TF-IDF是一个统计方法,用来评估单个单词在文档中的重要程度。
TF表示词频,对一个文档而言,词频就是词在文档出现的次数除以文档的词语总数。例如:一篇文档有1000个字,“我”字出现25次,那就是0.025;“Python”出现5次就是0.005。
IDF表示一个词的逆向文档频率指数。可以由总文档数除以包含该词出现的文档数目,然后取对数。例如:有10000个文档,“Python”只出现了10篇文章,则IDF=log(10000/10)=3;“我”字在所有文档都出现过,则IDF为0。
词频和权重指数相乘,就是词在文档中的重要程度。可以看出,词语的重要性随它在文档中出现的次数呈正比例增加,但同时会随着它在语料库中出现的频率呈反比下降。
实战——文档分类
数据导入和TF-IDF
在sklearn中,通过load_files方法可以将子目录的名字转换为文档类别(target),将目录所有文档读入内存(data)。
from sklearn.datasets import load_files news_train = load_files('data/379/train')
通过TfidfVectorizer方法,将文档数据进行转换:
from sklearn.feature_extraction.text import TfidfVectorizer vect = TfidfVectorizer(encoding='latin-1') X_train = vect.fit_transform(news_train.data)
模型训练
朴素贝叶斯算法使用sklearn.naive_bayes模块中的MultinomialNB方法。
from sklearn.naive_bayes import MultinomialNB y_train = news_train.target clf = MultinomialNB(alpha=0.0001) clf.fit(X_train, y_train) train_score = clf.score(X_train, y_train) # result # 0.99787556904400609
模型评估
简单的,可以通过score方法来评估整个模型的精度。
news_test = load_files('data/379/test') X_test = vect.transform(news_test.data) y_test = news_test.target clf.score(X_test, y_test) # result # 0.90881728045325783
我们也可以通过classification_report方法来查看全方位的评价。
from sklearn.metrics import classification_report pred = clf.predict(X_test) print(classification_report(y_test, pred, target_names=news_test.target_names))
也可以查看我们的混淆矩阵。
from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_test, pred) print(cm)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
如何释放TEE价值的几点思考?
任何商业模式最后对于企业来说落脚点是如何赚钱,但赚钱只是企业坚持放大自身价值的附加品而已!对TEE行业来说,如何释放TEE的价值才应该是TEE从业者应该关注的初心,老话还是要重复一遍,安智客没有资格也没有能力对行业进行讨论,但是展现自我认知也是一种学习提高过程,望大家不吝赐教!上一篇讨论过:TEE有没有商业模式?本篇讨论如何实现TEE价值。首先还是强调一个基础理念:商业模式不等于商业价值,也就是说商业价值不等于赚钱模式!TEE的商业价值=技术价值+安全价值+产品价值。 TEE技术价值主要是操作系统的价值,与其他各种各样操作系统一样需要生态、应用的构建。比如:你知道有多少物联网操作系统吗(41种)这里面提到的诸多物联网操作系统,其生命力在于是否有足够多的芯片支持,以及足够多的应用存在,也就是说操作系统能否成为普遍的或者某个领域的一个基础设施一样的存在是判断其技术价值的关键指标,除去手机终端TEE来看:比如说TEE技术领先厂商trustonic最近与Microchip共同提供全新的SAM L11 MCU系列芯片安全解决方案框架,简化安全措施的实施,让客户能够更快推出最终产品,详见:www....
- 下一篇
【CVPR2018】如何增强Attention Model的推理能力
目前Attention Model已经被用到了机器视觉,自然语言理解,语音识别,机器翻译等等各行各业。各种各样的Attention Model也被各种Task使用。如何增强Attention Model的推理能力、在使用Attention Model的时候提升模型性能,成为了一个关键的问题。在本文中,我们介绍一种在CVPR 2018大会提出的方法,可以通过极为简单的改进有效的提升Attention Model的性能。 论文题目:Stacked Latent Attention for Multimodal Reasoning 什么是Attention Model 首先我们用下图的例子简单的重温Attention Model: 给定Hidden State,Attention Model可以学到对输入(图示中为图像)Tensor最相关的Mask,并使用Mask对输入Tensor进行加权和,并将加权和后得到的Content Vector作为Attention Model的输出。换而言之,Attention Model可以学到给定输入中最重要的部分,从而对输入进行“总结”。 增强Attent...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池