目录

朴素贝叶斯算法​编辑

朴素贝叶斯的三种方式

实战——肿瘤类别的分类


朴素贝叶斯算法

 贝叶斯定理

贝叶斯定理(Bayes Theorem)也称贝叶斯公式,是关于随机 事件的条件概率的定理 定理内容: 如果随机事件A1 ,A2 ,...,An构成样本空间的一个划分(不重、不 漏),且都有正概率,则 对任何一个事件B(P(B)>0),有

 提示: 贝叶斯定理是“由果溯因”的推断,所以计算的是"后验概率"

 举例说明:

据天气预报预测,今日下雨(事件A)的概率为50%——P(A);

堵车(事件B)的概率是80%——P(B)

如果下雨,堵车的概率是95%——P(B|A)

计算:如果放眼望去,已经堵车了,下雨的概率是多少?

根据贝叶斯定理:P(A|B)=0.5x0.95÷0.8=0.59375

 朴素贝叶斯算法原理

重要前提条件: 一定要“朴素”—— 样本的各特征之间相互独立

对于待分类样本,在此待分类样本出现的条件下(也就是样本 各个特征已知),计算 各个类别出现的概率,哪个最大就认为此样本属于哪个类别。

详细过程

  • 1 设x={a1 ,a2 1 ,...,am}为一个待分类项,而每个a为x的一个特征属性
  • 2 有类别集合C={y1 ,y2 2 ,...,yn}
  • 3 计算P(y1|x),P(y2|x),...,P(yn|x)
  • 4 如果P(yk|x)=max{P(y1|x),P(y2|x),...,P(yn|x)},则x∈yk 4

对于第三步的详细计算:

朴素贝叶斯的三种方式

 三种朴素贝叶斯的适用条件

  • 伯努利朴素贝叶斯

适用于离散变量,条件是各个特征是服从伯努利分布(0-1分 布),每一个特征的取值 只能有两种值。在scikit-learn中,使用 sklearn.naive_bayes.BernoulliNB实现伯努利朴素 贝叶斯。

  • 高斯朴素贝叶斯

适用于连续变量,条件是各个特征是服从正态分布的。在scikitlearn中,使用 sklearn.naive_bayes.GaussianNB实现高斯朴素贝叶斯。

  • 多项式朴素贝叶斯

适用于离散变量,条件是各个特征是服从多项式分布的,所以每 个特征值不能是负数。 在scikit-learn中,使用sklearn.naive_bayes.MultinomialNB实 现多项式朴素贝叶斯。

 补充: 多项式分布来源于统计学中的多项式实验:实验包括n次重 复试验,每项试验都有不同的可能结果。在任何给定的试验 中,特定结果发生的概率是不变的

实战——肿瘤类别的分类

数据集简介

威斯康星乳腺肿瘤数据集是一个非常经典的用于医疗病情分析 的数据集,它包括569个 病例的数据样本,每个样本具有30个特征,而样本共分为两类:恶 性(Malignant)、良性 (Benign)。 使用sklearn.datasets.load_breast_cancer加载数据集 。

使用高斯朴素贝叶斯分类

由于数据集的各个特征属于连续型变量(半径、表面积、平滑 度等),所以使用高斯朴 素贝叶斯(GaussianNB)进行分类。

from sklearn.datasets import load_breast_cancercancer = load_breast_cancer()  # 加载威斯康星乳腺肿瘤数据集# 拆分数据集
from sklearn.model_selection import train_test_splitX_train,X_test,y_train,y_test = train_test_split(cancer.data,cancer.target,random_state=666)
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
gnb.fit(X_train,y_train)  # 训练集上拟合
gnb.score(X_test,y_test)  # 测试集上测试

基于朴素贝叶斯算法对肿瘤类别分类相关推荐

  1. 《机器学习实战》基于朴素贝叶斯算法实现垃圾邮件分类

    import random import sys import numpy as np import pandas as pd from pandas import Series, DataFrame ...

  2. python:基于朴素贝叶斯算法的垃圾邮件过滤分类

    目录 一.朴素贝叶斯算法 1.概述 2.推导过程 二.实现垃圾邮件过滤分类 1.垃圾邮件问题背景 2.朴素贝叶斯算法实现垃圾邮件分类的步骤 3.python实现 参考学习网址:https://blog ...

  3. 朴素贝叶斯算法:实现邮件分类

    朴素贝叶斯算法:实现邮件分类 注:代码和数据已上传:https://download.csdn.net/download/j__max/10705454 一.实验准备 1.实验内容和目的 使用5000 ...

  4. 朴素贝叶斯算法实现英文文本分类

    目录 1. 作者介绍 2. 朴素贝叶斯算法简介及案例 2.1朴素贝叶斯算法简介 2.2文本分类器 2.3对新闻文本进行文本分类 3. Python 代码实现 3.1文本分类器 3.2 新闻文本分类 参 ...

  5. 基于朴素贝叶斯+Python实现垃圾邮件分类和结果分析

    基于朴素贝叶斯+Python实现垃圾邮件分类 朴素贝叶斯原理 请参考: 贝叶斯推断及其互联网应用(二):过滤垃圾邮件 Python实现 源代码主干来自: python实现贝叶斯推断--垃圾邮件分类 我 ...

  6. 基于朴素贝叶斯算法的脱贫攻坚小数据分类算法

    通过对**县**乡**村扶贫工作数据分析,提出一种适用于精准扶贫的小数据分析方法.将机器学习.数据理论中的相关性分析和推理方法进行改进,得出基于朴素贝叶斯的小数据分析方法.本程序依据如下公式设计: 式 ...

  7. Python scikit-learn,分类,朴素贝叶斯算法,文档分类,MultinomialNB,拉普拉斯平滑系数

    朴素贝叶斯预测分类的思想就是根据待预测文档的特征(TF-IDF高的词)分别计算属于各个类别的概率,其中概率最大的类别,就是预测的类别.(朴素的意思就是文档的特征(词)之间相互独立) 朴素贝叶斯进行文档 ...

  8. 机器学习——朴素贝叶斯算法(垃圾邮件分类)

    朴素贝叶斯算法介绍以及垃圾邮件分类实现 1.一些数学知识 2.贝叶斯公式 3.朴素贝叶斯算法 (1)介绍 (2)核心思想 (3)朴素贝叶斯算法 (4)拉普拉斯修正 (5)防溢出策略 (6)一般过程 ( ...

  9. 朴素贝叶斯算法之鸢尾花特征分类【机器学习】【伯努利分布,多项式分布,高斯分布】

    文章目录 一.前言 1.1 本文原理 1.2 本文目的 二.实验过程 2.1使用BernoulliNB(伯努利分布)给鸢尾花分类,写出代码,对运行结果截图并对分类结果进行分析: 2.2 使用Multi ...

最新文章

  1. deepin linux桌面设置,在Deepin Linux桌面创建快捷方式
  2. Intellij启动界面导入maven工程,且该maven工程不具备intellij配置文件
  3. 2018/03/25
  4. 服务提供者和服务消费者
  5. git冲突Please move or remove them before you can merge
  6. python爬取百度文库_利用Python语言轻松爬取数据
  7. 假期读书|《步履不停》读后感
  8. 七牛云图片--Java文档
  9. Modbus调试软件--ModbusPoll、ModbusSlave使用详解
  10. android 自定义布局 根据布局获取类,阿里高级Android面试题解析:Android自定义View—布局过程的自定义...
  11. 风变Python8编程时,两大思维模式
  12. 苹果mac视频编辑和制作软件:Premiere Pro
  13. 右键菜单 GenericMenu
  14. 微软ODBC服务器驱动,Microsoft SQL Server ODBC 驱动程序修复
  15. uniapp中uni.navigateTo传递变量
  16. android_97_TouchSlop
  17. 让Python程序自动玩数独游戏,秒变最强大脑!
  18. 图解数组计算模块NumPy下(三角函数、四舍五入函数(around)、取整、将弧度转化为角度、统计分析函数、中位数、数组的排序、argsort()、lexsort())
  19. C:\Users\86131\.gradle\caches\transforms-2\files-2.1\6753cd877c1ba9dbc8b7c64e227cb479\transition-1.2
  20. Windows删除文件的打开方式

热门文章

  1. 在petalinux下提示:Failed to menu config project component....
  2. CentOS8中安装SQL Server 2019 for Docker和sqlcmd工具
  3. 从零开始学VUE之Webpack(JS打包压缩插件的使用)
  4. 中专计算机专业期末考试,职业中专第一学期计算机应用基础WIN7和Word2010版期末考试题...
  5. 使用bilibili_api与pyttsx3制作简单的弹幕姬
  6. android 锥形进度条,canvas锥形渐变进度条
  7. 使用EXCEL 完成分组统计
  8. spring过滤器Filter 、 拦截器Interceptor 、 切片Aspect 详解
  9. Navicat v12.0.28破解
  10. shell基础-04 数组(定义数组、查看数组、访问数组、删除数组、关联数组、二维数组)