莺尾花数据集–贝叶斯分类(day5)
莺尾花数据集–贝叶斯分类
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πσy21exp(−2σck2(x(i)−μck)2)
从上述例子中的预测结果中,我们可以看到类别2对应的后验概率值最大,所以我们认为类目2是最优的结果。
莺尾花数据集–贝叶斯分类(day5)相关推荐
- ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测daiding
ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 目录 基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 设计思路 ...
- DL之PerceptronAdalineGD:基于iris莺尾花数据集利用Perceptron感知机和AdalineGD算法实现二分类
DL之Perceptron&AdalineGD:基于iris莺尾花数据集利用Perceptron感知机和AdalineGD算法实现二分类 目录 基于iris莺尾花数据集利用Perceptron ...
- ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测
ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 目录 基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 设计思路 ...
- 莺尾花数据集--kNN分类
Step1: 库函数导入 import numpy as np # 加载莺尾花数据集 from sklearn import datasets # 导入KNN分类器 from sklearn.neig ...
- k-近邻(应用sklearn的莺尾花数据集)
kNN 的作用机制为 在目标周围选取最近k个点,这k个点哪种占比最大,就可以把这个目标分类到那个分类,即有分到相似属性多的类别. 该算法和回归,决策树不同之处是,回归和决策树是通过训练集确定参数,参 ...
- KNN实战莺尾花数据集
0 前言 俗话说,实践才能出真理,能动手就不要逼逼,下面将利用莺尾花数据集实战KNN算法. 1 实战概述 首先,要介绍一下这个实战的整体思路:要做什么.怎么做!第一步,我们应该拿到数据集,了解数据集信 ...
- SVM训练莺尾花数据集
SVM训练莺尾花数据集 代码在莺尾花数据集上训练SVM,数据集由莺尾花的测量值及其相应的物种标签组成.该模型使用70%数据用于训练,然后剩余部分进行测试.其中′fit′'fit'′fit′方法在训练集 ...
- 机器学习系列(五) -- 逻辑回归(莺尾花数据集)
加载数据 import numpy as np import pandas as pddata = pd.read_csv('iris.csv') # 去掉不需要的ID列 data.drop('ID' ...
- 以莺尾花数据集为例,探讨R模型部署之道
感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答.求职一站式搞定! 内容概要: 1.iris数据集简介 2.R模型部署的可能 ...
最新文章
- python控制台颜色输出以及字符串格式化输出
- 基于Debian9.3安装OpenVAS9.0(kali源)
- Nginx优化、服务器状态模块(--with-http_stub_status_module 的安装使用)
- ADC知识(2)——直流参数(输入电压参考,参考电流输入,积分非线性误差,差分非线性误差)...
- aws中部署防火墙_如何在AWS中设置自动部署
- shell的debug模式
- 奥鹏17计算机应用基础离线,奥鹏《计算机应用基础》离线
- r语言 读取dta_R语言与计量经济学(三)异方差
- 怎么撤销定时说说_武夷山币7省线下预约火爆!名字错了怎么办,附预约问题整理...
- 最常用的四种设计模式
- 20191123每日一句
- Django根据现有数据库建立model
- 国际新闻|PostgreSQL 14.3、13.7、12.11、11.16 和 10.21 发布
- 《SPEA2: Improving the Strength Pareto Evolutionary Algorithm》阅读笔记
- 运营日记:App推广手段详解
- 非参数与半参数统计之核函数
- Homework02
- cocos2d-x的初步学习七
- error LINK:1181 无法打开lib文件
- 外贸订单支付失败有哪些原因导致?有哪些解决方案?