基于神经网络的心脏病健康系统

news2024/11/18 0:39:54

基于神经网络的心脏病健康系统

导语

这篇文章旨在记录该系统设计的过程,同时指导从零开始搭建本健康系统的环境,并在自己的电脑上把这个心脏病健康系统run起来。

下面是这个文件夹下各个文件的介绍:

.\心脏病预测
├─build						---	该系统可执行文件的相关配置文件
  ├─....
├─dist
  ├─Model_Presicted.exe		  --- 基于神经网络的心脏病预测系统的可执行文件,双击可以打开,有点慢,不推荐
├─dataset.csv				 --- 心脏病各项指标的数据集
├─DiseasePredict_GUI.ui		  --- 由Qt designer生成的.ui文件
├─GUI.py					---  由.ui文件转化为的.py文件,作为模块导入
├─Heart.ico					 --- 系统的图标
├─Model_Predict.py			 --- 运行该脚本运行系统
├─README.md					 --- 手册
├─Z_model.h5				 --- 预训练模型
├─Z_nn_keras.py				 --- 用于数据集的训练的网络配置

安装Python

因为本系统是由纯python实现,所以需要安装python的环境。

检验是否安装成功–>打开cmd–>输入python:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M9xYXfLu-1691279704328)(https://cdn.jsdelivr.net/gh/Miller-em/IMAGS/img/20210722184244.png)]

安装tensorflow

因为现在已经用的是tf2, 虽然我们用的是keras,但是现在keras和tensorflow已经合并了,所以我们只需要安装tensorflow就好了。不懂tensorflow和keras做什么的不要紧,只需要看一下百度百科,知道是是干嘛的。

打开cmd–>输入:pip install tensorflow-cpu -i https://pypi.douban,com/simple

安装pyqt5

我们这套系统的图形界面是由pyqt5来写的,我们需要安装的命令如下:

pip install PyQt5 -i https://pypi.douban.com/simple
pip install PyQt5-tools -i https://pypi.douban.com/simple

数据集介绍:

数据源: UCI开源数据集heart_disease
针对美国某区域的心脏病检查患者的体测数据,共303条数据。具体字段如下表:

字段名含义类型描述
age年龄string对象的年龄,数字表示
sex性别string对象的性别,female和male
cp胸部疼痛类型string痛感由重到无typical、atypical、non-anginal、asymptomatic
trestbps血压string血压数值
chol胆固醇string胆固醇数值
fbs空腹血糖string血糖含量大于120mg/dl为true,否则为false
restecg心电图结果string是否有T波,由轻到重为norm、hyp
thalach最大心跳数string最大心跳数
exang运动时是否心绞痛string是否有心绞痛,true为是,false为否
oldpeak运动相对于休息的ST depressionstringst段压数值
slop心电图ST segment的倾斜度stringST segment的slope,程度分为down、flat、up
ca透视检查看到的血管数string透视检查看到的血管数
thal缺陷种类string并发种类,由轻到重norm、fix、rev
status是否患病string是否患病,buff是健康、sick是患病

算法部分

该系统的算法部分是利用Keras搭建的神经网络:

网络结构如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XfTjK1CS-1691279704329)(https://cdn.jsdelivr.net/gh/Miller-em/IMAGS/img/20210722190338.png)]

我们采用了3层的全连接层,分别是算子size:<7, 128>, <128, 64><64, 2>。为了防止过拟合现象,我还加入了Dropout层,减少过拟合线性。你可以根据自己的需求更改网络,不影响后面程序的运行,修改网络只需要修改这里:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c3T9IKro-1691279704329)(https://cdn.jsdelivr.net/gh/Miller-em/IMAGS/img/20210722190353.png)]

图形界面部分

该系统的实现是通过PyQt5来实现的,首先是利用的Qt Designer设计一个大概的页面:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sdm1SZzA-1691279704330)(https://cdn.jsdelivr.net/gh/Miller-em/IMAGS/img/20210722190405.png)]

Qt Designer生成的ui文件利用下面的命令转化为python文件:

pyuic5 -o GUI.py disease.ui

然后就在这个文件夹下面生成了一个GUI.py

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZjrLLWlN-1691279704330)(https://cdn.jsdelivr.net/gh/Miller-em/IMAGS/img/20210722190421.png)]

接下来就是在预测脚本中(Model_Predict.py)导入GUI模块:

image-20210125213644793

在预测文件中测试一下,看看是不是能够正常的运行,下面是显示的GUI的Code:

from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow
import tensorflow as tf 
from tensorflow import keras
from keras import layers
import pandas as pd 
import numpy as np
import sys 
import GUI



if __name__ == "__main__":
    # model = keras.models.load_model('E:\Github代码管理\Keras_tf2\心脏病预测\Z_model.h5')  #选取自己的.h模型名称
    # model.summary()
    app = QApplication(sys.argv)
    window = QMainWindow()
    ui = GUI.Ui_MainWindow()
    ui.setupUi(window)
    window.show()

    sys.exit(app.exec_())

运行效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HohrzPjB-1691279704331)(https://cdn.jsdelivr.net/gh/Miller-em/IMAGS/img/20210722190438.png)]

上面只是演示了qt designer设计的GUI的展示过程。下面这个是本系统的界面:

image-20210129214210257

效果:

输入以下指标,检测为患病。

image-20210129214931185

image-20210129214829265

检测为未患病:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S7fg7Sui-1691279704332)(https://cdn.jsdelivr.net/gh/Miller-em/IMAGS/img/20210722190525.png)]

让系统run起来

上面的环境如果安装好了,就可以成功的运行该系统了,直接在当前的目录下打开cmd,输入:python Model_Predict.py就好了。

如果想发给别人,然而别人没有安装环境,那么就直接打开dist文件夹下的.exe文件, 然而因为该文件是由python转化为的,所以运行速度较慢,打开也比较慢。

结语

起来

上面的环境如果安装好了,就可以成功的运行该系统了,直接在当前的目录下打开cmd,输入:python Model_Predict.py就好了。

如果想发给别人,然而别人没有安装环境,那么就直接打开dist文件夹下的.exe文件, 然而因为该文件是由python转化为的,所以运行速度较慢,打开也比较慢。

结语

由于本系统的数据集数量较少,拟合程度有限,无法达到很好的数据预测效果,预测时可能会出现一些误判。所以该系统的检测结果只能作为初步的参考,实际结果还是得医院检查为准。

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

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

相关文章

MYSQL进阶-查询优化- 实战 STATUS

回城传送–》《100天精通MYSQL从入门到就业》 文末有送书活动&#xff0c;可以参加&#xff01; 文章目录 一、练习题目二、SQL思路SQL进阶-查询优化- SHOW STATUS初始化数据解法SHOW STATUS是什么实战经验&#xff1a;常用的mysql状态查询1、QPS(每秒处理的请求数量)计算思路…

PyTorch 微调终极指南:第 1 部分 — 预训练模型及其配置

一、说明 如今&#xff0c;在训练深度学习模型时&#xff0c;通过在自己的数据上微调预训练模型来迁移学习已成为首选方法。通过微调这些模型&#xff0c;我们可以利用他们的专业知识并使其适应我们的特定任务&#xff0c;从而节省宝贵的时间和计算资源。本文分为四个部分&…

还不知道Java类加载机制,你算白学了

1 前言 在Java的世界里&#xff0c;每一个类或者接口&#xff0c;在经历编译器后&#xff0c;都会生成一个个.class文件。类加载机制指的是将这些.class文件中的二进制数据读入到内存中&#xff0c;并对数据进行校验&#xff0c;解析和初始化。最终&#xff0c;每一个类都会在…

Not All Features Matter:Enhancing Few-shot CLIP with Adaptive Prior Refinement

APE是ICCV2023的一篇文章&#xff0c;也是我在这个领域里接触的第一篇文章&#xff0c;这里主要做一下记录。 论文链接&#xff1a;2304.01195.pdf (arxiv.org) 代码链接&#xff1a;yangyangyang127/APE: [ICCV 2023] Code for "Not All Features Matter: Enhancing Fe…

【深度学习注意力机制系列】—— SKNet注意力机制(附pytorch实现)

SKNet&#xff08;Selective Kernel Network&#xff09;是一种用于图像分类和目标检测任务的深度神经网络架构&#xff0c;其核心创新是引入了选择性的多尺度卷积核&#xff08;Selective Kernel&#xff09;以及一种新颖的注意力机制&#xff0c;从而在不增加网络复杂性的情况…

立即开始使用 3D 图像

一、说明 这个故事介绍了使用这种类型的数据来训练机器学习3D模型。特别是&#xff0c;我们讨论了Kaggle中可用的MNIST数据集的3D版本&#xff0c;以及如何使用Keras训练模型识别3D数字。 3D 数据无处不在。由于我们希望构建AI来与我们的物理世界进行交互&#xff0c;因此使用3…

安装LED透明屏需要注意这4点

随着LED显示屏的广泛应用&#xff0c;各种大屏幕随处可见。透明LED显示屏的安装方法多种多样&#xff0c;涵盖了屋顶式、立柱式、挂式、壁挂式和镶嵌式等多种方式。虽然安装LED透明屏不像安装空调等广告载体那样简单&#xff0c;但也并非极其复杂。考虑到LED透明屏的特殊性&…

LM+retrieval

retrievalLM https://acl2023-retrieval-lm.github.io/ 在input层利用retrieval信息 主要是通过通过相似度计算或者重要性计算在datasets中得到与询问x最相关的k个document,讲文档放在询问x前面组成新的LM的输入&#xff0c;获取额外知识以回答问题。 在intermediate layer…

nacos2.2.3 删除永久实例

问题描述 在nacos2.2.3中删除非临时性实例 报错 解决方案 在命令行下执行命令&#xff1a; curl -X DELETE "http://127.0.0.1:8848/nacos/v1/ns/instance?serviceNamenacos-restTemplate-stock&groupNameDEFAULT_GROUP&namespaceIdpublic&ip192.168.1…

全网最牛,接口自动化-Linux系统安装Jenkins+Ant详细步骤

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 在Linux系统上安装…

GPT-4助力数据分析:提升效率与洞察力的未来关键技术 | 京东云技术团队

摘要 随着大数据时代的到来&#xff0c;数据分析已经成为企业和组织的核心竞争力。然而&#xff0c;传统的数据分析方法往往无法满足日益增长的数据分析需求的数量和复杂性。在这种背景下&#xff0c;ChatGPT-4作为一种先进的自然语言处理技术&#xff0c;为数据分析带来了革命…

FastAPI和Flask:构建RESTful API的比较分析

Python 是一种功能强大的编程语言&#xff0c;广泛应用于 Web 开发领域。FastAPI 和 Flask 是 Python Web 开发中最受欢迎的两个框架。本文将对 FastAPI 和 Flask 进行综合对比&#xff0c;探讨它们在语法和表达能力、生态系统和社区支持、性能和扩展性、开发工具和调试支持、安…

一键批量删除文件名中的空格,轻松整理您的文件

随着数字化时代的到来&#xff0c;我们的电脑里积攒了越来越多的文件&#xff0c;但是随之而来的问题是&#xff0c;文件名中的空格可能会导致一些不便和混乱。为了解决这一问题&#xff0c;我们开发了一款便捷实用的工具&#xff0c;可以一键批量删除文件名中的空格&#xff0…

ORM 之 阿里 Fluent-Mybatis主推动态SQL 你学废了吗?

Mybatis作为在东亚开发者市场上占有绝对的使用优势&#xff0c;在中国大陆上讨论Mybatis优化的项目也是挺活跃。 局限于原始Mybatis繁琐的流程&#xff0c;自动代码生成、声明式SQL、动态SQL&#xff0c;以及诸多细节的内容&#xff1a;多租户、多数据源、数据脱敏、SQL审计、…

MyBatis查询数据库之三(#{}vs${},like查询,resultMap,as,多表查询)

目录 查询操作 1.单表查询 1.1 参数占位符#{}和${} 1.2 ${}的优点 1.3 sql注入问题 ​编辑 面试常问&#xff1a;${}与#{}的区别 1.4 like查询 2.多表查询 2.1 返回字典映射&#xff1a;resultMap 2.2 多表查询 &#xff08;1&#xff09;建立 Articalinfo 实体类&a…

所有AI图都在这了

最近一直在玩AI生图&#xff0c;有点拔不出来了&#xff0c;喜欢生图的感觉&#xff0c;日积月累&#xff0c;已经有几千张图片了&#xff0c;想把这些图片都分享出来给大家欣赏&#xff0c;云盘、图片APP&#xff0c;感觉都不好用&#xff0c;最后熬夜码了一个属于自己的图片管…

(树) 剑指 Offer 68 - II. 二叉树的最近公共祖先 ——【Leetcode每日一题】

❓剑指 Offer 68 - II. 二叉树的最近公共祖先 难度&#xff1a;简单 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科 中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是…

2462. 雇佣 K 位工人的总代价

题目描述&#xff1a; 主要思路&#xff1a; 分别维护两个堆&#xff0c;取左右两边最小的那个。 class Solution { public:long long totalCost(vector<int>& costs, int k, int candidates) {priority_queue<int,vector<int>,greater<int>> ql…

清洗无效邮箱地址,让邮件营销更高效

作为一种低成本、高回报的营销手段&#xff0c;电子邮件营销因其传播效率高、营销范围广的特点被广泛应用。虽然现在短视频营销、搜索引擎营销、自媒体营销、内容营销等各种网络营销方式层出不穷。但是在整个网络营销宣传活动中&#xff0c;大多数企业还是会选择把邮件营销作为…

【Java从入门到大牛】File和IO流上篇

&#x1f525; 本文由 程序喵正在路上 原创&#xff0c;CSDN首发&#xff01; &#x1f496; 系列专栏&#xff1a;Java从入门到大牛 &#x1f320; 首发时间&#xff1a;2023年8月9日 &#x1f98b; 欢迎关注&#x1f5b1;点赞&#x1f44d;收藏&#x1f31f;留言&#x1f43e…