这部分是与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(代码分享)相关推荐

  1. python贝叶斯分类器_朴素贝叶斯分类器的简单Python实现

    本文介绍如何使用Python实现一个简易的朴素贝叶斯分类器(Naive Baves classifier). 贝叶斯公式 我们先简单回顾一下贝叶斯公式: 其中,我们称P(A)和P(B)为先验概率,P( ...

  2. 基于sklearn的朴素贝叶斯_朴素贝叶斯分类实战:对文档进行分类

    朴素贝叶斯分类最适合的场景就是文本分类.情感分析和垃圾邮件识别.其中情感分析和垃圾邮件识别都是通过文本来进行判断.所以朴素贝叶斯也常用于自然语言处理 NLP 的工具. sklearn 机器学习包 sk ...

  3. 计算机音乐奇迹再现乐谱,天谕手游奇迹再现乐谱_奇迹再现乐谱代码分享_3DM手游...

    在天谕手游中玩家可以把自己喜欢的歌写进乐谱,在这里小编给大家分享一下奇迹再现这首歌的乐谱代码,喜欢的小伙伴不要错过哦,下面小编给大家带来<天谕手游>奇迹再现乐谱代码分享,不清楚代码的小伙伴 ...

  4. 机器学习实战_朴素贝叶斯分类器_预测疾病

    import numpy as np""" 函数说明:创建实验样本 Parameters:无 Returns:postingList - 实验样本切分的词条classLi ...

  5. java 朴素贝叶斯_朴素贝叶斯分类器和一般的贝叶斯分类器有什么区别?

    我根据自己理解,给出朴素贝叶斯分类算法的核心,在里面会有通俗详细的解释,希望对你有帮助~ 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类.而朴素朴素贝叶斯分类是贝叶斯 ...

  6. 机器学习:朴素贝叶斯分类器代码实现,决策函数非向量化方式

    文章目录 朴素贝叶斯离散型的算法描述: 代码实现: 实现一个NaiveBayes的基类,以便扩展: 实现离散型朴素贝叶斯MultiomialNB类: 实现从文件中读取数据: 测试数据: 代码测试: 朴 ...

  7. java 3d游戏_不放一行代码分享一下java实现3D游戏逻辑

    这篇日记是对最近几周Java大作业写的一个3D打怪挖矿游戏进行记录和总结.另一个目的也是因为我发现身边很多朋友对3D游戏逻辑很有兴趣.所以写这篇日记可以介绍一下一个3D游戏是如何实现基础功能的.即使没 ...

  8. imdb文件_如何停止IMDB应用程序向您发送通知

    imdb文件 Recently, the IMDB app started sending out notifications for "Featured Trailers". A ...

  9. 朴素贝叶斯分类器与Fisher线性判别实践——水果识别为例

    开篇:本次博客主要分享二分类水果实现案例,样本构造显然不具备泛化.大数量特性以及背景均为纯白色是为了方便目标提取.大家若需要更好的水果样本,Github上有许多的优秀案例.本次代码计算效率较低,代码有 ...

最新文章

  1. opencv利用直方图判断人脸光照质量
  2. 关于MySQL建表对DML的影响
  3. c#如何wmf图片转换成png图片_每日一学:如何将png图片转换为jpg图片
  4. java final date_Java 8新特性之Date/Time(八恶人-4)
  5. 解决性能问题中SQL Server警报:SQL Server警报基础
  6. mysql 80070057_返回E_INVALIDARG (0x80070057)
  7. 梅林系统软件无法安装解决方法
  8. Web视频播放总结,avi、swf、兼容IE6/7/8
  9. word新建文档默认文件名_如何更改保存Word文档时使用的默认文件名
  10. extension(扩展)使用详情
  11. 你知道中国历届奥运会中获得了多少金牌吗?
  12. 自动组卷系统C语言,自动组卷系统的设计与实现
  13. 上对不起父母,下对不起孩子,你却自以为美好
  14. 贝叶斯方法和采样技术结合-MCMC-后验分布
  15. 赣南雪景美得像妖孽 让人窒息
  16. 纸浆模塑包装(MPP)行业调研报告 - 市场现状分析与发展前景预测
  17. 第三人称计算机获奖感言,求一篇获奖感言,加分到300
  18. 个性化推荐系统设计(2.2)——Few-shot Learning用于冷启动的探索
  19. 周总结2020-2-16
  20. 高防CDN和BGP高防有哪些区别和优势

热门文章

  1. 3.mysql的中文问题,database级操作,表级操作,数据CRUD,分组操作,时间和日期,字符串相关函数,表的约束
  2. Kettle使用_11 CSV文件输入输出复制数量
  3. SQL Server 2017 2019 Linux(Centos、Unbuntu16.04、Unbuntu18.04、Unbuntu20.04)安装过程详解
  4. 深度剖析目标检测算法YOLOV4
  5. Faster-RCNN算法精读
  6. VC++动态链接库编程之MFC DLL
  7. 深度学习之Windows下安装caffe及配置Python和matlab接口
  8. 引用一个网络图片作为样式的致命悲剧
  9. Java lambda例子
  10. C++ ## ... 实用