朴素贝叶斯(右心室肥厚的辅助识别)

news2024/12/23 22:05:56

在这里插入图片描述
在这里插入图片描述
现在我们判断右心室是否肥厚通常的做法都是借助心电图来识别,左侧的是右心室肥厚的,右侧的是右心室厚度正常,那接下来就要按照给出的图像来处理特征,提取出正常组和肥厚组的不同特征。
在这里插入图片描述
根据上图我们可以得出通过图像提取出了年龄、心率、心电轴等多个不同的特征,右侧前78行是有类标号的,代表正常与不正常,后边7行没有类标号是需要训练的模型进行预测的。在这里插入图片描述
要计算贝叶斯公式需要的预备知识有条件概率、全概率公式和贝叶斯公式,全概率公式主要有在知道有 A1 到 An 等 n 个条件下,分别求这些条件下B发生的概率是多少,最终求总的 B 发生的概率为多少,也就是全概率公式。
在这里插入图片描述
在这个公式中X就是总的样本,Ci 就是要求的样本所属的类别,计算样本归属于某个类别的概率不会达到100%,所以现在要计算的就是其归属于哪个类别的后验概率最大就将其归属于哪个类别。
在这里插入图片描述
argmax 是numpy和其他库中的一个常用函数,它的作用是:
从数组或者列表中返回最大值所在的索引位置。
基本语法如下:

import numpy as np
arr = np.array([5, 2, 8, 3])
index = np.argmax(arr)
print(index)  
# 输出 2

这里arr数组中的最大值8位于索引2的位置,所以argmax返回2。
另一个例子:

import numpy as np
a = np.array([[1,2,3], [4,5,6]])
index = np.argmax(a)  
print(index)
# 输出 5

对于二维数组,它返回的是整个数组的最大值元素的索引位置。
argmax常见的使用场景有:

  • 在机器学习中,找到概率预测最大的类别
  • 在数组搜索中,找到目标值的索引
  • 获取数组或者序列的最大值
    所以argmax一个很有用的函数,可以快速定位到数组或序列的最大值元素。
    对于所有的类别来说,它的分母的值也就是全概率的值是相同的,是一个常量;所以我们只需要对分子进行求解。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
'''step1 调用包'''
import pandas as pd
from sklearn.model_selection import train_test_split
#朴素贝叶斯
from sklearn.naive_bayes import GaussianNB  
#调用准确率计算函数
from sklearn.metrics import accuracy_score  

'''step2 导入数据'''
data = pd.read_excel('data_RVH.xlsx')

'''step3 数据预处理'''
# 把带类标号数据(用于训练和检验)
# 和待判(最后7行)数据分开
data_used = data.iloc[:78,1:] 
#Python从0开始计数,故上一行代码从第0行取到第77行
#共提取了78行。

#最后7行为待判集合
data_unused = data.iloc[78:,1:]
'''step4 划分数据集'''
#(将带类标号数据
#划分为训练集(75%)
#和检验集(25%)

#将类别列和特征列拆分,
#便于下面调用划分函数
y_data=data_used.iloc[:,5]
x_data=data_used.iloc[:,:5]

#调用sklearn中的函数划分上述数据
x_train, x_test, y_train, y_test = train_test_split(
        x_data,y_data,test_size=0.25,random_state=0)

'''step5 模型计算(训练、检验、评价)'''
#step5.1 训练模型
model_NGB = GaussianNB()
model_NGB.fit(x_train, y_train)

#step5.2 检验模型
pred_test = model_NGB.predict(x_test)

#step5.3 模型评价(准确率)
#这里y_test为真实检验集类标号
#pred_test为模型预测的检验集类标号
#比较二者即可得到准确率
acc_test = accuracy_score(y_test,pred_test)
print('检验准确率为:',acc_test)

'''step6 预测结果'''
#模型训练完,检验效果满意,即可对最后7行
#未知类别样本进行预测(分类)
x_unused = data_unused.iloc[:,:5]
pred_unused = model_NGB.predict(x_unused)
print('待判样本预测类别为:',pred_unused)

以上是程序求解的全过程,下边我们分步来求解一下。
1.调用必要的包

'''step1 调用包'''
import pandas as pd
from sklearn.model_selection import train_test_split
#朴素贝叶斯
from sklearn.naive_bayes import GaussianNB  
#调用准确率计算函数
from sklearn.metrics import accuracy_score

这里我们调用的是朴素贝叶斯分类器中的高斯贝叶斯分类器
2.读入数据

'''step2 导入数据'''
data = pd.read_excel('data_RVH.xlsx')

在这里插入图片描述
3.数据预处理

'''step3 数据预处理'''
# 把带类标号数据(用于训练和检验)
# 和待判(最后7行)数据分开
data_used = data.iloc[:78,1:] 
#Python从0开始计数,故上一行代码从第0行取到第77行
#共提取了78行。
#最后7行为待判集合
data_unused = data.iloc[78:,1:]

将用于训练检验和预测的数据划分开来。
4.划分数据集

'''step4 划分数据集'''
#(将带类标号数据
#划分为训练集(75%)
#和检验集(25%)
#将类别列和特征列拆分,
#便于下面调用划分函数
y_data=data_used.iloc[:,5]
x_data=data_used.iloc[:,:5]

#调用sklearn中的函数划分上述数据
x_train, x_test, y_train, y_test = train_test_split(
        x_data,y_data,test_size=0.25,random_state=0)

5.模型计算

'''step5 模型计算(训练、检验、评价)'''
#step5.1 训练模型
model_NGB = GaussianNB()
model_NGB.fit(x_train, y_train)

#step5.2 检验模型
pred_test = model_NGB.predict(x_test)

#step5.3 模型评价(准确率)
#这里y_test为真实检验集类标号
#pred_test为模型预测的检验集类标号
#比较二者即可得到准确率
acc_test = accuracy_score(y_test,pred_test)
print('检验准确率为:',acc_test)

调用模型之后训练模型、检验模型再得到模型计算的准确率。
6.预测结果

'''step6 预测结果'''
#模型训练完,检验效果满意,即可对最后7行
#未知类别样本进行预测(分类)
x_unused = data_unused.iloc[:,:5]
pred_unused = model_NGB.predict(x_unused)
print('待判样本预测类别为:',pred_unused)

将刚才最后未加类标号用于预测的数据预测出来。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

〔AI 绘画〕Stable Diffusion 之 VAE 篇

✨ 目录 🎈 什么是VAE🎈 开启VAE🎈 下载常见的VAE🎈 对比不同VAE生成的效果 🎈 什么是VAE VAE:是 Variational Auto-Encoder 的简称,也就是变分自动编码器可以把它理解成给图片加滤镜&#xff…

KCC@深圳开源读书会即将举办,来与行业大咖面对面交流

KCC,全称 KAIYUANSHE City Community(中文:开源社城市社区)是由开源社发起,旨在让开源社区在每个城市落地生根的地域性开源组织。 自2023年2月份发起以来,我们已经在南京、上海、深圳、北京、硅谷、新加坡、…

WebRTC | ICE详解

目录 一、Candidate种类与优先级 二、ICE策略 1. iceServers 2. iceTransportPolicy 三、P2P连接 1.Nat类型 (1)完全锥型NAT (2)IP限制锥型NAT (3)端口限制锥型NAT (4)对称…

HCIP的MPLS实验

题目 拓扑图 IP地址及环回配置 注&#xff1a;R2的g0/0/1口和g0/0/2口还有R4的g0/0/0口和g0/0/2口都先不配置IP&#xff0c;因为后面这些接口的IP需要放入vpn空间中 R1 <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sysname r1 [r1]int l0 […

《Linux从练气到飞升》No.13 Linux进程状态

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…

通过 Amazon SageMaker JumpStart 部署 Llama 2 快速构建专属 LLM 应用

来自 Meta 的 Llama 2 基础模型现已在 Amazon SageMaker JumpStart 中提供。我们可以通过使用 Amazon SageMaker JumpStart 快速部署 Llama 2 模型&#xff0c;并且结合开源 UI 工具 Gradio 打造专属 LLM 应用。 Llama 2 简介 Llama 2 是使用优化的 Transformer 架构的自回归语…

正确治理窜货的方法

所有违规行为的形成原因都离不开利益&#xff0c;窜货是如此&#xff0c;低价也是如此&#xff0c;窜货与低价又是一体的&#xff0c;因为有更多的利润空间&#xff0c;所以经销商或者非授权愿意承担风险去窜货&#xff0c;同样的也是因为窜货可以将价格压更低&#xff0c;上升…

冠达管理:险资最新重仓股曝光!加仓这些股票

随着上市公司半年报陆续发表&#xff0c;险资最新重仓持股状况也逐渐清晰。 到8月14日&#xff0c;在已发表2023年半年报的上市公司中&#xff0c;超越60家上市公司的前十大流通股东中呈现险资身影。 从职业来看&#xff0c;制造业成为险资的“心头好”。在险资重仓个股中&…

ClickHouse(十九):Clickhouse SQL DDL操作-1

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术&#xff0c;IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &…

学习助手(安卓)

首先&#xff0c;这是一款人工智能的学习软件&#xff0c;功能非常的强大&#xff0c;进入软件就能看见多种功能&#xff0c;它可以根据大家提供的主题&#xff0c;环境&#xff0c;文体&#xff0c;语言等要求进行写作&#xff0c;还有诗歌创作&#xff0c;也可以帮我们进行内…

如何精准预测天气?火山引擎ByteHouse与大地量子这么做

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 伴随着气象技术的发展以及城市气象设施的完善&#xff0c;气象监测服务能力在不断提高&#xff0c;实现短期甚至中长期的气象预测成为可能。 短期、长期的天气形势预…

opencv+ffmpeg+QOpenGLWidget开发的音视频播放器demo

前言 本篇文档的demo包含了 1.使用OpenCV对图像进行处理&#xff0c;对图像进行置灰&#xff0c;旋转&#xff0c;抠图&#xff0c;高斯模糊&#xff0c;中值滤波&#xff0c;部分区域清除置黑&#xff0c;背景移除&#xff0c;边缘检测等操作&#xff1b;2.单纯使用opencv播放…

crm客户管理系统的功能有哪些?

阅读本文&#xff0c;您可以了解&#xff1a;1、CRM客户管理系统的定义&#xff1b;2、CRM客户管理系统的功能。 CRM客户管理系统是一个工具或软件&#xff0c;能够帮助企业更好地与客户进行沟通、理解客户需求&#xff0c;以及有效地处理客户信息和互动。通俗地说&#xff0c…

选择正确的液压密封件的综合指南

在液压系统中&#xff0c;选择正确的密封件对于确保较佳性能和防止潜在泄漏至关重要。由于有许多选择&#xff0c;因此需要选择较合适的液压密封件。在本文中&#xff0c;我们将讨论选择液压密封件时应考虑的关键因素&#xff0c;以帮助您做出明智的决定。 1、了解您的系统要求…

一篇文章告诉你,为什么要使用Javascript流程图来可视化进程?(上)

DHTMLX Diagram库是有各种类型的图组成的&#xff0c;其中最广泛使用的是JavaScript流程图&#xff0c;它可以显示任何类型的的工作流、过程或系统&#xff0c;您可以下载DHTMLX Diagram的评估版并亲自试用。 DHTMLX Diagram正式版下载 Javascript流程图是用来干什么的&#…

项目经理如何做好多项目管理?

多项目管理一直是一项极具挑战性的工作&#xff0c;之所以难&#xff0c;不仅在于项目数量的增加&#xff0c;而且在于项目资源分配不均、项目进度比较难监控、沟通不良&#xff0c;协作不畅。 项目经理应该如何做好多项目管理呢&#xff1f; 1、明确的项目组织结构 一个清晰…

纯js点击按钮切换首页部分页面

像我这种大数据的&#xff0c;不会前端的&#xff0c;懒得学框架&#xff0c;现在有gpt了&#xff0c;前端对于我来说&#xff0c;用原生的更加友好&#xff0c;毕竟算法gpt都能优化。 首页我有个页面&#xff0c;然后我现在想点击gm替换上面的统计&#xff0c;点击用户替换回…

低代码平台轻松玩转业务规则

规则&#xff0c;是运行、运作规律所遵循的法则。规则无处不在&#xff0c;社会活动中的规则通常由传统、公共认识形成&#xff0c;表现为该干什么或是不该干什么。在计算机应用系统中&#xff0c;经常会面对这样的场景&#xff0c;处理执行一个动作时&#xff0c;需要另外的条…

【从零学习python 】29. 「函数参数详解」——了解Python函数参数的不同用法

文章目录 函数参数详解一、缺省参数二、不定长参数三、缺省参数在*args后面可变、不可变类型总结 进阶案例 函数参数详解 一、缺省参数 调用函数时&#xff0c;缺省参数的值如果没有传入&#xff0c;则取默认值。 下例会打印默认的age&#xff0c;如果age没有被传入&#xf…

UI设计师的主要职责说明(合集)

UI设计师的主要职责说明1 职责&#xff1a; 1、负责公司移动端、PC端产品相关的交互、UI等设计 2、负责公司宣传册、海报、运营物料、banner等设计 3、负责公司品牌相关的视觉设计 3、制定相关设计规范&#xff0c;提高产品的可用性、不断优化产品体验; 4、与PM、运营紧密…