莺尾花数据集–贝叶斯分类

Step1: 库函数导入

import warnings
warnings.filterwarnings('ignore')  #忽略了警告错误的输出
import numpy as np
# 加载莺尾花数据集
from sklearn import datasets
print(sklearn.__version__)# 导入高斯朴素贝叶斯分类器
#一共有3个朴素贝叶斯的分类算法:
#GaussianNB,先验为高斯分布的朴素贝叶斯
#MultinomialNB,先验为多项式分布的朴素贝叶斯
#BernoulliNB,先验为伯努利分布的朴素贝叶斯
from sklearn.naive_bayes import GaussianNB
#train_test_split是sklearn中用于划分数据集,即将原始数据集划分成测试集和训练集两部分的函数from sklearn.model_selection import train_test_split
#X_train,X_test,y_train,y_test = train_test_split(X,y,train_size = 0.75, random_state=14, stratify=y)
#train_size:训练集大小
#test_size:测试集大小,默认值是0.25
#random_state:可以理解为随机数种子,主要是为了复现结果而设置
#shuffle:表示是否打乱数据位置,True或者False,默认是True
#stratify:表示是否按照样本比例(不同类别的比例)来划分数据集
<IPython.core.display.Javascript object>0.19.2

Step2: 数据导入&分析

X, y = datasets.load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

我们需要计算两个概率分别是:条件概率:P(X(i)=x(i)∣Y=ck)P(X^{(i)}=x^{(i)}|Y=c_k)P(X(i)=x(i)∣Y=ck​)和类目ckc_kck​的先验概率:P(Y=ck)P(Y=c_k)P(Y=ck​)。
通过分析发现训练数据是数值类型的数据,这里假设每个特征服从高斯分布,因此我们选择高斯朴素贝叶斯来进行分类计算。

Step3: 模型训练

# 使用高斯朴素贝叶斯进行计算
#help(GaussianNB)
clf = GaussianNB(priors=None)  #var_smoothing=1e-8
clf.fit(X_train, y_train)
GaussianNB(priors=None)
# 评估
y_pred = clf.predict(X_test)
acc = np.sum(y_test == y_pred) / X_test.shape[0]
print("Test Acc : %.3f" % acc)
# 预测
y_proba = clf.predict_proba(X_test[:1])
print(clf.predict(X_test[:1]))
print("预计的概率值:", y_proba)
Test Acc : 0.967
[2]
预计的概率值: [[1.63380783e-232 2.18878438e-006 9.99997811e-001]]

Step5: 原理简析

高斯朴素贝叶斯假设每个特征都服从高斯分布,我们把一个随机变量X服从数学期望为μ,方差为σ2的数据分布称为高斯分布。对于每个特征我们一般使用平均值来估计μ和使用所有特征的方差估计σ2。

P(X(i)=x(i)∣Y=ck)=12πσy2exp⁡(−(x(i)−μck)22σck2)P(X^{(i)}=x^{(i)}|Y=c_k) = \frac{1}{\sqrt{2\pi\sigma^2_y}} \exp\left(-\frac{(x^{(i)} - \mu_{c_k})^2}{2\sigma^2_{c_k}}\right) P(X(i)=x(i)∣Y=ck​)=2πσy2​​1​exp(−2σck​2​(x(i)−μck​​)2​)

从上述例子中的预测结果中,我们可以看到类别2对应的后验概率值最大,所以我们认为类目2是最优的结果。

莺尾花数据集–贝叶斯分类(day5)相关推荐

  1. ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测daiding

    ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 目录 基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 设计思路 ...

  2. DL之PerceptronAdalineGD:基于iris莺尾花数据集利用Perceptron感知机和AdalineGD算法实现二分类

    DL之Perceptron&AdalineGD:基于iris莺尾花数据集利用Perceptron感知机和AdalineGD算法实现二分类 目录 基于iris莺尾花数据集利用Perceptron ...

  3. ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测

    ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 目录 基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 设计思路 ...

  4. 莺尾花数据集--kNN分类

    Step1: 库函数导入 import numpy as np # 加载莺尾花数据集 from sklearn import datasets # 导入KNN分类器 from sklearn.neig ...

  5. k-近邻(应用sklearn的莺尾花数据集)

    kNN 的作用机制为 在目标周围选取最近k个点,这k个点哪种占比最大,就可以把这个目标分类到那个分类,即有分到相似属性多的类别.  该算法和回归,决策树不同之处是,回归和决策树是通过训练集确定参数,参 ...

  6. KNN实战莺尾花数据集

    0 前言 俗话说,实践才能出真理,能动手就不要逼逼,下面将利用莺尾花数据集实战KNN算法. 1 实战概述 首先,要介绍一下这个实战的整体思路:要做什么.怎么做!第一步,我们应该拿到数据集,了解数据集信 ...

  7. SVM训练莺尾花数据集

    SVM训练莺尾花数据集 代码在莺尾花数据集上训练SVM,数据集由莺尾花的测量值及其相应的物种标签组成.该模型使用70%数据用于训练,然后剩余部分进行测试.其中′fit′'fit'′fit′方法在训练集 ...

  8. 机器学习系列(五) -- 逻辑回归(莺尾花数据集)

    加载数据 import numpy as np import pandas as pddata = pd.read_csv('iris.csv') # 去掉不需要的ID列 data.drop('ID' ...

  9. 以莺尾花数据集为例,探讨R模型部署之道

    感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答.求职一站式搞定! 内容概要: 1.iris数据集简介 2.R模型部署的可能 ...

最新文章

  1. python控制台颜色输出以及字符串格式化输出
  2. 基于Debian9.3安装OpenVAS9.0(kali源)
  3. Nginx优化、服务器状态模块(--with-http_stub_status_module 的安装使用)
  4. ADC知识(2)——直流参数(输入电压参考,参考电流输入,积分非线性误差,差分非线性误差)...
  5. aws中部署防火墙_如何在AWS中设置自动部署
  6. shell的debug模式
  7. 奥鹏17计算机应用基础离线,奥鹏《计算机应用基础》离线
  8. r语言 读取dta_R语言与计量经济学(三)异方差
  9. 怎么撤销定时说说_武夷山币7省线下预约火爆!名字错了怎么办,附预约问题整理...
  10. 最常用的四种设计模式
  11. 20191123每日一句
  12. Django根据现有数据库建立model
  13. 国际新闻|PostgreSQL 14.3、13.7、12.11、11.16 和 10.21 发布
  14. 《SPEA2: Improving the Strength Pareto Evolutionary Algorithm》阅读笔记
  15. 运营日记:App推广手段详解
  16. 非参数与半参数统计之核函数
  17. Homework02
  18. cocos2d-x的初步学习七
  19. error LINK:1181 无法打开lib文件
  20. 外贸订单支付失败有哪些原因导致?有哪些解决方案?

热门文章

  1. thinkadmin关联查询
  2. 3dsMax Biped骨骼缩放
  3. 珍藏多年的视频文案网站
  4. 斯坦福大学校工程学院计算机,加州大学洛杉矶分校:受大脑启发的计算机视觉的对象发现和检测...
  5. 一步一步教你开发微信扫码联合登录
  6. 深度学习之文本摘要自动生成
  7. Win11退Win10/重装Win10教程
  8. 小学计算机教学的趣味性,浅谈小学信息技术课堂教学趣味性方法
  9. 利用自定义函数实现批量爬取多家公司的新闻
  10. 免费云服务器+免费虚拟主机推荐