imdb数据集_朴素贝叶斯分类imdb(代码分享)
![](/assets/blank.gif)
这部分是与bilibili上的视频对应的: https://www.bilibili.com/video/BV1ie411x7YC#reply2765711640
应有些网友朋友的要求,放一下源码:
from keras.datasets import imdb
from sklearn.naive_bayes import MultinomialNB
from sklearn.naive_bayes import BernoulliNB
from sklearn.metrics import accuracy_score
from sklearn.metrics import precision_score
from sklearn.metrics import recall_score
from sklearn.metrics import f1_score
import numpy as np
import datetime# 1、load data
time1 = datetime.datetime.now()# 参数num_words = dimension 的意思是仅保留训练数据的前dimension个最常见出现的单词,低频单词将被舍弃。
dimension = 10000
(X_train, y_train), (X_test, y_test) = imdb.load_data(num_words=dimension)# 2、preprocess data
# 定义数据集向量化的函数(转换为one hot编码)
def vectorize_sequences(sequences, dimension=dimension):results = np.zeros((len(sequences), dimension)) #数据集长度for i, sequence in enumerate(sequences):results[i, sequence] = 1 # one-hotreturn results# 数据预处理:转化为one hot编码
X_train = vectorize_sequences(X_train)
X_test = vectorize_sequences(X_test)time2 = datetime.datetime.now()
print("data load and preprocess takes "+str((time2-time1).seconds)+" s")# 3、model train
# 多项式分布、伯努利分布:https://blog.csdn.net/qq_27009517/article/details/80044431
# 二者的计算粒度不一样,多项式模型以单词为粒度,伯努利模型以文件为粒度,因此二者的先验概率和类条件概率的计算方法都不同。
# 计算后验概率时,对于一个文档d,多项式模型中,只有在d中出现过的单词,才会参与后验概率计算,伯努利模型中,没有在d中出现,但是在全局单词表中出现的单词,也会参与计算,不过是作为“反方”参与的。
# 当训练集文档较短,也就说不太会出现很多重复词的时候,多项式和伯努利模型公式的分子相等,多项式分母值大于伯努利分子值,因此多项式的似然估计值会小于伯努利的似然估计值。
# 所以,当训练集文本较短时,我们更倾向于使用伯努利模型。而文本较长时,我们更倾向于多项式模型,因为,在一篇文档中的高频词,会使该词的似然概率值相对较大。# 高斯分布:
# 适合连续变量time1 = datetime.datetime.now()
# model = MultinomialNB()
model = BernoulliNB()
model.fit(X_train,y_train)time2 = datetime.datetime.now()
print("model train takes "+str((time2-time1).seconds)+" s")# 4、model predict
time1 = datetime.datetime.now()
y_pred = model.predict(X_test)
time2 = datetime.datetime.now()
print("model predict takes "+str((time2-time1).seconds)+" s")# 5、model evaluation
print("model accuracy is " +str(accuracy_score(y_test, y_pred)))
print("model precision is "+str(precision_score(y_test, y_pred, average='macro')))
print("model recall is "+str(recall_score(y_test, y_pred, average='macro')))
print("model f1_score is "+str(f1_score(y_test, y_pred, average='macro')))
imdb数据集_朴素贝叶斯分类imdb(代码分享)相关推荐
- python贝叶斯分类器_朴素贝叶斯分类器的简单Python实现
本文介绍如何使用Python实现一个简易的朴素贝叶斯分类器(Naive Baves classifier). 贝叶斯公式 我们先简单回顾一下贝叶斯公式: 其中,我们称P(A)和P(B)为先验概率,P( ...
- 基于sklearn的朴素贝叶斯_朴素贝叶斯分类实战:对文档进行分类
朴素贝叶斯分类最适合的场景就是文本分类.情感分析和垃圾邮件识别.其中情感分析和垃圾邮件识别都是通过文本来进行判断.所以朴素贝叶斯也常用于自然语言处理 NLP 的工具. sklearn 机器学习包 sk ...
- 计算机音乐奇迹再现乐谱,天谕手游奇迹再现乐谱_奇迹再现乐谱代码分享_3DM手游...
在天谕手游中玩家可以把自己喜欢的歌写进乐谱,在这里小编给大家分享一下奇迹再现这首歌的乐谱代码,喜欢的小伙伴不要错过哦,下面小编给大家带来<天谕手游>奇迹再现乐谱代码分享,不清楚代码的小伙伴 ...
- 机器学习实战_朴素贝叶斯分类器_预测疾病
import numpy as np""" 函数说明:创建实验样本 Parameters:无 Returns:postingList - 实验样本切分的词条classLi ...
- java 朴素贝叶斯_朴素贝叶斯分类器和一般的贝叶斯分类器有什么区别?
我根据自己理解,给出朴素贝叶斯分类算法的核心,在里面会有通俗详细的解释,希望对你有帮助~ 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类.而朴素朴素贝叶斯分类是贝叶斯 ...
- 机器学习:朴素贝叶斯分类器代码实现,决策函数非向量化方式
文章目录 朴素贝叶斯离散型的算法描述: 代码实现: 实现一个NaiveBayes的基类,以便扩展: 实现离散型朴素贝叶斯MultiomialNB类: 实现从文件中读取数据: 测试数据: 代码测试: 朴 ...
- java 3d游戏_不放一行代码分享一下java实现3D游戏逻辑
这篇日记是对最近几周Java大作业写的一个3D打怪挖矿游戏进行记录和总结.另一个目的也是因为我发现身边很多朋友对3D游戏逻辑很有兴趣.所以写这篇日记可以介绍一下一个3D游戏是如何实现基础功能的.即使没 ...
- imdb文件_如何停止IMDB应用程序向您发送通知
imdb文件 Recently, the IMDB app started sending out notifications for "Featured Trailers". A ...
- 朴素贝叶斯分类器与Fisher线性判别实践——水果识别为例
开篇:本次博客主要分享二分类水果实现案例,样本构造显然不具备泛化.大数量特性以及背景均为纯白色是为了方便目标提取.大家若需要更好的水果样本,Github上有许多的优秀案例.本次代码计算效率较低,代码有 ...
最新文章
- opencv利用直方图判断人脸光照质量
- 关于MySQL建表对DML的影响
- c#如何wmf图片转换成png图片_每日一学:如何将png图片转换为jpg图片
- java final date_Java 8新特性之Date/Time(八恶人-4)
- 解决性能问题中SQL Server警报:SQL Server警报基础
- mysql 80070057_返回E_INVALIDARG (0x80070057)
- 梅林系统软件无法安装解决方法
- Web视频播放总结,avi、swf、兼容IE6/7/8
- word新建文档默认文件名_如何更改保存Word文档时使用的默认文件名
- extension(扩展)使用详情
- 你知道中国历届奥运会中获得了多少金牌吗?
- 自动组卷系统C语言,自动组卷系统的设计与实现
- 上对不起父母,下对不起孩子,你却自以为美好
- 贝叶斯方法和采样技术结合-MCMC-后验分布
- 赣南雪景美得像妖孽 让人窒息
- 纸浆模塑包装(MPP)行业调研报告 - 市场现状分析与发展前景预测
- 第三人称计算机获奖感言,求一篇获奖感言,加分到300
- 个性化推荐系统设计(2.2)——Few-shot Learning用于冷启动的探索
- 周总结2020-2-16
- 高防CDN和BGP高防有哪些区别和优势
热门文章
- 3.mysql的中文问题,database级操作,表级操作,数据CRUD,分组操作,时间和日期,字符串相关函数,表的约束
- Kettle使用_11 CSV文件输入输出复制数量
- SQL Server 2017 2019 Linux(Centos、Unbuntu16.04、Unbuntu18.04、Unbuntu20.04)安装过程详解
- 深度剖析目标检测算法YOLOV4
- Faster-RCNN算法精读
- VC++动态链接库编程之MFC DLL
- 深度学习之Windows下安装caffe及配置Python和matlab接口
- 引用一个网络图片作为样式的致命悲剧
- Java lambda例子
- C++ ## ... 实用