问题描述

  1. 使用sklearn中的乳腺癌数据集,将数据集以7:3的比例分别划分为训练集与测试集,以及对应的标签;
  2. 使用训练集数据训练基于高斯模型的朴素贝叶斯分类器;
  3. 对测试文档进行测试,得出分类评价指标:精确率、召回率与F1值,并计算测试集中分类错误的样本个数,以及输出错误分类样本的真实标签。

文章目录

  • 问题描述
  • 朴素贝叶斯分类器
  • 分割数据集
  • 高斯模型的朴素贝叶斯分类器
  • 实验结果

朴素贝叶斯分类器

朴素贝叶斯分类器是对于特征维数较小而训练样本数比较多的分类问题而使用的分类器,其假设所有特征在类别已知的条件下相互独立。在构建分类器时,只需要逐个估计出每个类别的训练样本在每一维特征上的分布,就可以得到每个类别的条件概率密度,大大减少了需要估计参数的数量。也就是说,在给定样本的目标特征值的情况下观察到特征x1,x2,…,xn的联合概率等于每个单独的特征的概率的乘积,因此可以得到:

其中p(v)表示先验概率,p(xi|v)表示后验概率,因为我们已经假设各个特征独立,因此p(x1,x2,…,xn|v)可以表示为 上式中乘积的形式


分割数据集

使用train_test_split函数进行分割数据集,通过查看pycharm里面这个函数的源码显示为Split arrays or matrices into random train and test subsets,也就是将数据集进行随机分割为训练集和测试集。这个函数有个test_size参数,这个是指test数据集占整个数据集的比列,在这里设置为0.3,shuffle这个参数用来表示是否进行随机分割打乱数据集的顺序,在这里我设置为了True。

X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer['target'], test_size=0.3, shuffle=True)

X_train为训练集的数据, X_test为预测集的数据, y_train为训练集的标签, y_test为测试集的标签。

高斯模型的朴素贝叶斯分类器

scikit-learn中,一共有3个朴素贝叶斯的分类算法类。分别是GaussianNB,MultinomialNB和BernoulliNB。其中GaussianNB就是先验为高斯分布的朴素贝叶斯,MultinomialNB就是先验为多项式分布的朴素贝叶斯,而BernoulliNB就是先验为伯努利分布的朴素贝叶斯。
如果样本特征的分布大部分是连续值,使用GaussianNB会比较好。
如果如果样本特征的分大部分是多元离散值,使用MultinomialNB比较合适。
如果样本特征是二元离散值或者很稀疏的多元离散值,应该使用BernoulliNB。
GaussianNB假设特征的先验概率为正态分布

在这个实验中使用GaussianNB()函数创建基于高斯模型的朴素贝叶斯分类器

# 创建一个基于高斯模型的朴素贝叶斯分类器
naive = GaussianNB()                            # 创建分类模型
naive.fit(X_train, y_train)                     # 进行训练
y_predict = naive.predict(X_test)               # 进行预测

实验结果

在这个实验中,错误分类的个数为8个,然后通过错误分类的个数除以总的测试集的个数,算出模型的准确率为0.953,这个结果和accuracy_score函数输出的结果一致,然后这个模型的recall值为0.95,F1-score也是0.95,可以看出来这个基于高斯模型的朴素贝叶斯分类器性能较好。

基于贝叶斯分类器进行sklearn乳腺癌数据集的分类相关推荐

  1. 基于朴素贝叶斯的乳腺癌数据集分类

    目录 1. 作者介绍 2. 朴素贝叶斯算法 2.1 贝叶斯算法 2.2 朴素贝叶斯算法 3. Sklearn中的朴素贝叶斯算法 3.1 高斯朴素贝叶斯算法 3.2 多项式朴素贝叶斯算法 3.3 伯努利 ...

  2. 基于贝叶斯分类器的手写字判别

    项目介绍: 使用贝叶斯分类器进行手写字体判别,数据为mnist.pkl.gz,下载地址https://pan.baidu.com/s/1I9GRg-wLEDvt-JmZ2_Os4A 数据分为训练数据, ...

  3. 朴素贝叶斯分类器简介及C++实现(性别分类)

    贝叶斯分类器是一种基于贝叶斯定理的简单概率分类器. 在机器学习中,朴素贝叶斯分类器是一系列以假设特征之间强(朴素)独立下运用贝叶斯定理为基础的简单概率分类器.朴素贝叶斯是文本分类的一种热门(基准)方法 ...

  4. 基于贝叶斯分类器的社区UGC反垃圾模型

    业务背景 背景:某金融APP的有料社区中,存在潜在用户发布垃圾信息(敏感.广告)等信息,需要构建一个文本分类模型进行相应拦截. 业务特点:广告占主要部分,含有微信.借贷.基金.股票等,敏感占次要. 我 ...

  5. 代码实践:基于LSTM网络的DEAP情感数据集情感分类

    2023/4/5 -4/17 脑机接口学习内容一览: 这一篇文章主要对DEAP数据集转化为python可以处理的格式,并且进一步使用LSTM网络进行分类工作. 一.数据集分析 详情见于官网:DEAPd ...

  6. 基于朴素贝叶斯分类器的西瓜数据集 2.0 预测分类_第十章:利用Python实现朴素贝叶斯模型

    免责声明:本文是通过网络收集并结合自身学习等途径合法获取,仅作为学习交流使用,其版权归出版社或者原创作者所有,并不对涉及的版权问题负责.若原创作者或者出版社认为侵权,请联系及时联系,我将立即删除文章, ...

  7. 基于朴素贝叶斯分类器的钞票真伪识别模型

    基于朴素贝叶斯分类器的钞票真伪识别模型 内容 本实验通过实现钞票真伪判别案例来展开学习朴素贝叶斯分类器的原理及应用. 本实验的主要技能点: 1. 朴素贝叶斯分类器模型的构建 2. 模型的评估与预测 3 ...

  8. 贝叶斯分类器原理——学习笔记

    贝叶斯分类器原理 简介 一.逆概率推理与贝叶斯公式 1.确定性推理与概率推理 2.贝叶斯公式 二.贝叶斯分类的原理 三.概率估计 1.先验概率的估计 2.类条件概率的估计 四.贝叶斯分类的错误率 五. ...

  9. 基于朴素贝叶斯分类器的西瓜数据集 2.0 预测分类_机器学习之朴素贝叶斯

    1.贝叶斯原理 朴素贝叶斯分类(Naive Bayesian,NB)源于贝叶斯理论,是一类基于概率的分类器,其基本思想:假设样本属性之间相互独立,对于给定的待分类项,求解在此项出现的情况下其他各个类别 ...

最新文章

  1. 面向药物发现的深度图学习
  2. 201421410040 张运焘 实验一
  3. 经典KMP算法C++与Java实现代码
  4. 两个充电宝能互充电吗_国人鬼才设计,手掌大智能芯片充电宝能暖手、充电、补光镜三合一...
  5. 承接数字油画图稿/线条图定制(出图)业务
  6. java 条件 等待_java – 如何唤醒等待相同条件的所有线程?
  7. Python 之 sorted()排序详解 适用于任意可迭代对象比如列表,字典等
  8. 系统学习NLP(二十六)--BERT详解
  9. PostgreSQL 数据离散性 与 索引扫描性能(btree and bitmap index scan)
  10. 第十章 Scala 容器基础(二十二):合并有序集合
  11. 细丝菲涅尔衍射MATLAB,任意孔型菲涅尔衍射matlab仿真.docx
  12. 520 miix 小兵 黑苹果,Hackintosh黑苹果长期维护机型整理清单
  13. android类似iphone照片幻灯片,8个最佳照片编辑应用让你的Android或iPhone照片看起来不可思议...
  14. 走向.NET架构设计---第二章:设计 测试 代码
  15. python爬虫脚本 初级入门爬虫英雄联盟所有皮肤_Python爬虫实战,60行代码爬取英雄联盟全英雄全皮肤,找寻曾今那些被删除的绝版皮肤...
  16. HTML入门零基础教程(四)
  17. Android 搭建Linux服务器
  18. 直方图均衡化、自适应直方图均衡化
  19. vue-cli3.0+webpack4中关于svg-sprite-loader踩坑,让svg组件徜徉我的web项目
  20. 【图像压缩】DCT图像压缩(压缩率可调)【含GUI Matlab源码 1049期】

热门文章

  1. SA738GrB核电钢板
  2. AutoCAD如何让把三维模型拆为二维零件
  3. 小程序转换纯数字数字_低代码,快速的应用程序开发和数字转换
  4. WinRAR 4.10 32位 / 64位 + 注册机 + 烈火版
  5. 订单系统jeecgboot
  6. 红包封面红包序列号是什么,红包封面怎么弄,手把手教你制作个人红包封面
  7. nmap操作系统检测_Nmap操作系统检测
  8. jfinal 微信授权登录
  9. x64dbg反汇编进阶之路0x1
  10. MINIS FORUM U820 WINMAC双系统安装教程