机器学习实验四:贝叶斯分类器

系列文章目录

  1. 机器学习实验一:线性回归
  2. 机器学习实验二:决策树模型
  3. 机器学习实验三:支持向量机模型
  4. 机器学习实验四:贝叶斯分类器
  5. 机器学习实验五:集成学习
  6. 机器学习实验六:聚类

文章目录

  • 系列文章目录
  • 一、实验目的
  • 二、实验原理
  • 三、实验内容
    • 1. 朴素贝叶斯
    • 2. 半朴素贝叶斯
    • 3. 高斯分布的朴素贝叶斯计算方法
    • 4. 实验数据介绍
    • 5. 评价指标介绍
  • 四、实验步骤
    • 1. 划分数据集
    • 2. 训练朴素贝叶斯分类方法
    • 3. 评价分类器
    • 4. 使用分类器进行预测
  • 总结


一、实验目的

(1)了解朴素贝叶斯与半朴素贝叶斯的区别与联系,掌握高斯分布的朴素贝叶
斯计算方法;
(2)编程实现朴素贝叶斯分类器;
(3)使用朴素贝叶斯分类器实现多分类预测,度量模型性能。

二、实验原理

使用 Python 读取数据集信息并生成对应的朴素贝叶斯分类器,随后使用生
成的分类器实现多分类预测,并根据精确率、召回率和 F1值度量模型性能。

三、实验内容

1. 朴素贝叶斯

朴素贝叶斯(Naive Bayes)是基于贝叶斯定理与特征独立假设的分类方法。
使用朴素贝叶斯方法时,首先基于训练数据,基于特征条件独立假设学习输入与
输出的联合概率分布;随后对于给定的 X,利用贝叶斯定理求解后验概率最大的
输出标签。

2. 半朴素贝叶斯

半朴素贝叶斯是适当考虑一部分属性之间的相互依赖信息,其中“独依赖估
计”(One-Dependent Estimator,简称 ODE)是半朴素分类中最常用的一种策略。
所谓“独依赖估计”,也就是假设每个属性在分类类别之外最多仅依赖于一个其
他属性。
与基于特征的条件独立性假设开展的朴素贝叶斯方法相比,其最大的区别就
是半朴素贝叶斯算法放宽了条件独立假设的限制,考虑部分属性之间的相互依赖
信息。但两者有共同特点:假设训练样本所有属性变量的值都已被观测到,即训
练样本是完整的。

3. 高斯分布的朴素贝叶斯计算方法

使用条件:所有特征向量都是连续型特征变量且符合高斯分布。
概率分布密度:在这里插入图片描述

4. 实验数据介绍

实验数据为来自 UCI 的鸢尾花三分类数据集 Iris Plants Database。
数据集共包含 150 组数据,分为 3 类,每类 50 组数据。每组数据包括 4 个
参数和 1 个分类标签,4 个参数分别为:萼片长度 sepal length、萼片宽度 sepal
width、花瓣长度 petal length、花瓣宽度 petal width,单位均为厘米。分类
标签共有三种,分别为 Iris Setosa、Iris Versicolour 和 Iris Virginica。
数据集格式如下图所示:在这里插入图片描述
为方便后续使用,该数据集需要进行特征向量与标签分割以及标签编号。

5. 评价指标介绍

评价指标选择精确率 P、召回率 R、F1度量值 F1,计算公式如下:在这里插入图片描述
具体代码实现时,可以直接调用 sklearn 库中的相应方法进行计算。

四、实验步骤

1. 划分数据集

按照实验要求,本次数据集划分采用随机划分 80%数据用于训练,其余 20%
数据用于测试。使用 sklearn 库的 train_test_split()方法划分数据,代码如
下:

X_train, X_test, y_train, y_test = train_test_split(X, y, 
test_size=0.2)

2. 训练朴素贝叶斯分类方法

由于实验数据中四个特征变量均为连续型特征变量,我们如果需要使用高斯
分布朴素贝叶斯的话,只需要验证他是否符合高斯分布即可。这里使用 Q-Q 图来
验证数据是否符合高斯分布,如果数据符合高斯分布,则该 Q-Q 图趋近于落在
y=x 线上,绘制的代码如下:

from scipy.stats import probplot
probplot(data,dist='norm',plot=plt)
plt.title('sepal length')
plt.show()
#然后,使用 sklearn 库的 GaussianNB()方法训练分类器
clf = GaussianNB()
clf.fit(X_train, y_train)

3. 评价分类器

使用精确率、召回率、F1度量值对分类器作为评价指标,使用 sklearn 库中
的 accuracy_score()、precision_score()、recall_score()、f1_score()方法
进行计算,具体代码如下:

y_pred = clf.predict(X_test)
print(precision_score(y_test, y_pred, average=None))
print(recall_score(y_test, y_pred, average=None))
print(f1_score(y_test, y_pred, average=None))

4. 使用分类器进行预测

我们选取测试集的最后一条数据进行预测,观察分类器计算得到的概率、分
类结果与真实标签的内容。具体代码如下:

y_proba = clf.predict_proba(X_test[:1])
y_pred_num = clf.predict(X_test[:1])[0]
print("预测值:"+str(y_pred_num)+ " "+label[y_pred_num])
print("预计的概率值:", y_proba)
print("实际值:"+str(y_test[:1][0])+ " "+label[y_test[:1][0]])

总结

以上就是今天要讲的内容,机器学习实验四:贝叶斯分类器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/218944.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络之IP篇

目录 一、IP 的基本认识 二、DNS 三、ARP 四、DHCP 五、NAT 六、ICMP 七、IGMP 七、ping 的工作原理 ping-----查询报文的使用 traceroute —— 差错报文类型的使用 八、断网了还能 ping 通 127.0.0.1 吗? 8.1、什么是 127.0.0.1 ? 8.2、为…

11.10Redis基础

一.安装,启动,操作 二.远程连接 三.官方文档 https://redis.io/commands/ 四.Redis的数据类型 1.String 2.Hash(注意: value是字典类型) 3.List(类似于队列) 4.Set(无序) 5. ZSet(有序) 五.持久化 六.分布 七.SpringBoot集成Redis 1.添加依赖 2. 配置Redis 3.操作Redis(Serv…

如何选择适合自己的成品短视频app源码?

在当今数字化社会,短视频成为了人们日常生活中不可或缺的一部分。对于想要投身这一领域的创业者来说,选择适合自己的成品短视频app源码显得至关重要。在这篇文章中,我将为您提供一些建议,帮助您在众多选择中找到最合适的短视频app…

红警For Mac(RAM芯片可玩)

1、文件损坏解决版本! 执行以下命令,(注意:命令2应用路径根据实际情况修改) sudo spctl --master-disable sudo xattr -r -d com.apple.quarantine /Applications/红警2尤里复仇M芯片.app2、新系统14,第一…

【3】密评-物理和环境安全测评

0x01 依据 GB/T 39786 -2021《信息安全技术 信息系统密码应用基本要求》针对等保三级系统要求: 物理和环境层面: a)宜采用密码技术进行物理访问身份鉴别,保证重要区域进入人员身份的真实性; b)宜采用密码技术保证电子门…

Centos7.4安装nginx1.24.0_安装详细步骤---Linux工作笔记066

以前安装的太模糊了,干脆重新写一个: 1.首先下载对应的nginx-1.24.0.tar.gz安装文件 2.然后: 去执行命令 安装依赖 yum install -y gcc yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel 3.然后:去解压 tar -zxvf ngi…

mac苹果笔记本电脑如何强力删除卸载app软件?

苹果电脑怎样删除app?不是把app移到废纸篓就行了吗,十分简单呢! 其实不然,因为在Mac电脑上,删除应用程序只是删除了应用程序的主要组件。大多数时候,系统会有一个相当长的目录,包含所有与应用程…

08、分析测试执行时间及获取pytest帮助

官方用例 # content of test_slow_func.py import pytest from time import sleeppytest.mark.parametrize(delay,(1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,1.0,0.1,0.2,0,3)) def test_slow_func(delay):print("test_slow_func {}".format(delay))sleep(delay)assert…

分享68个节日PPT,总有一款适合您

分享68个节日PPT,总有一款适合您 68个节日PPT下载链接:https://pan.baidu.com/s/1c1-K7Gjw8bWT-cbToIZQTA?pwd6666 提取码:6666 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易…

vue3 setup语法糖 多条件搜索(带时间范围)

目录 前言: setup介绍: setup用法: 介绍: 前言: 不管哪个后台管理中都会用到对条件搜索带有时间范围的也不少见接下来就跟着我步入vue的多条件搜索(带时间范围) 在 Vue 3 中,你…

YOLOv8改进 | 2023 | Deformable-LKA可变形大核注意力(涨点幅度超高)

一、本文介绍 本文给大家带来的改进内容是Deformable-LKA(可变形大核注意力)。Deformable-LKA结合了大卷积核的广阔感受野和可变形卷积的灵活性,有效地处理复杂的视觉信息。这一机制通过动态调整卷积核的形状和大小来适应不同的图像特征&…

硬盘分区丢失?这样轻松恢复!

​“在我安装操作系统的过程中,我先把C盘(100G)进行了格式化,而我的D盘大小为297G,然而在Win PE中,所显示的仅是247G(CD盘总容量),这247G是空无一物的。让我感到困惑的是…

vmware虚拟机磁盘扩容与挂载

解决工作中遇到vmware虚拟机磁盘容量不足的问题 一、添加新磁盘并将磁盘挂载到空目录 1、关机加硬盘 1)首先,需要将虚拟机关机,然后在虚拟机设置页面进行硬盘添加 2) 默认选择SCSI,点击下一步 3) 保持默认,点击下一步…

智能优化算法应用:基于世界杯算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于世界杯算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于世界杯算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.世界杯算法4.实验参数设定5.算法结果6.参考文献7.…

直面多云困境,聊聊F5分布式云的破局之道

在数字化浪潮的大背景下,我们迎来了一个万物上云的时代。Gartner的调查数据显示,81%的公有云用户选择两个或两个以上的云服务供应商。对企业来说,充分利用多云网络可以实现业务的成功转型和增长。然而机遇与挑战并存,本文从多云网…

高效合并技巧:视频合并,保证质量,提升剪辑效率

在视频制作过程中,视频剪辑和合并是常见的操作步骤。不过这些步骤往往需要耗费大量的时间和精力。那要如何提高效率呢?下面讲解一些高效合并技巧,引用云炫AI智剪快速整合视频,随机合并视频,保证质量,并提升…

WVP-RPO开源项目搭建实践

0.拉取代码 GitHub - 648540858/wvp-GB28181-pro: WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的网络视频平台,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR、DVR接入。支持国标级联,支持rtsp/rtmp等视频流转发到国标平台&…

自定义软件app定制开发的需求和趋势|企业网站小程序搭建

自定义软件app定制开发的需求和趋势|企业网站小程序搭建 随着智能手机的普及和移动互联网的快速发展,移动应用程序(App)成为人们日常生活和工作中必不可少的一部分。然而,市面上已有的应用程序并不能完全满足用户的个性化需求&…

我有才知识付费小程序免费搭建:轻松拥有知识付费平台

用户管理 提供会员特权和积分奖励,提高用户忠诚度和购买力。 用户通过在平台上进行消费、签到、参与活动等方式获取积分,用于兑换丰厚奖品或提升会员等级。增强用户的参与感与忠诚度,提高用户粘性,并刺激用户的购买力。 为用户打…

Git 分支合并时 Merge, Rebase, Squash 的使用场景

前言 Git 的分支设计大大提升了并行开发的能力,但相应的,也就要解决如何进行分支合并。毕竟分久必合,最终还是要把大家的工作合并起来,进行统一发布的。在合并时,通常有三种操作: Merge commitsRebaseSqu…