基于Python设计的预测糖尿病

基于Python设计的预测糖尿病 摘要和关键词 本次实验的主要内容是使用回归分析和聚类分析来预测某人患糖尿病的可能性和身体的糖尿病指数, 关键词:糖尿病;线性回归;聚类分析 使用说明 数据来源:UCI 机器学习库 http://archive

本文包含相关资料包-----> 点击直达获取<-------

基于Python设计的预测糖尿病

摘要和关键词

本次实验的主要内容是使用回归分析和聚类分析来预测某人患糖尿病的可能性和身体的糖尿病指数。

关键词:糖尿病;线性回归;聚类分析

使用说明

数据来源:UCI 机器学习库 http://archive.ics.uci.edu/ml/datasets.html

配置相关: python3:pandas,numpy,matplotlib,seaborn

使用如图(1.1):

图 1.1 输入身体指数

结果如图(1.2):

图 1.2 返回预测结果

背景

根据美国预防疾病中心,现在美国有 1/7 的成年人患有糖尿病。根据增长趋势,到了 2050 年患糖尿病的人数将高达三分之一。我的父亲就常年受到糖尿病的困扰。但是根据专家研究,只要早点发现糖尿病的趋势,控制好饮食,就能杜绝糖尿病的加重甚至根治。

需求分析

用户可以在家里定时测量血压等身体数据,或者定期去医院体检获得数据后。 由医生或者病人自行把数据输入软件中,随后软件会根据数据分析预测后输出结果,判断是否患有糖尿病的风险,提醒患者到医院进行深度检查。

解决方案

从网上获取了两个数据集,一个是 age、 sex 、bmi、 map、 tc、 ldl、 hdl、 tch、 ltg、 glu 几个糖尿病专用指标与糖尿病指数的关系,因为这个数据集的预测结果不是二值,所以可以使用这个数据集训练线性回归预测。第二个数据集如图 2.1:

图 2.1 数据集部分

这几个指标,因为这个数据集结果是二值的——是否得了糖尿病,所以用聚类分析来预测。

线性回归方法:

首先验证数据的完整性。然后计算出相关系数矩阵系数越接近 1,数据集就越适合线性回归。

图 2.2 相关系数计算方法

接下来建立散点图来查看数据里的数据分析情况以及对相对应的线性情况,查看这些因素对 糖尿病指数有什么影响,将使用 seaborn 的 pairplot 来绘画。可以了解到不同的因素对糖尿病指数影响(置信度= 95 %),也可可以大致看出不同特征对于标签值的影响与相关关系在了解了数据的各种情况后需要对数据集建立模型

使用 train_test_split 函数来创建训练集和测试集,将训练集中的特征值与标签值放入 LinearRegression()模型中且使用 fit 函数进行训练,在模型训练完成之后会得到所对应的方程式(线性回归方程式)。然后使用测试集验证回归结果,发现拟合地很好。

之后只需要把用户传来地数据放到回归方程中然后得出糖尿病指数

聚类分析法:

数据分析,画出各特征值的直方图,看看有没有异常的数据。去掉异常数据(如血压等于零)

聚类分析不止一种,先测试看看哪种方法最好,这次实验使用了 7 种分类器,分别为:K-Nearest Neighbors, Support Vector Classifier, Logistic Regression, Gaussian Naive Bayes, Random Forest and Gradient Boost。

划分训练集和测试集,放入分类器中训练。然后用 K 折叠交叉验证(K-Fold Cross Validation)获得各分类器的准确率。

选用一个准确率最高的分类器,用 sklearn 的 GridSearchCV 调整参数,获得最优参数。最后使用最优参数获得分类器,处理用户输入的数据得到预测结果。

关键代码实现

线性回归:

检测数据和相关系数,判断是否适合线性回归。

图 5.1 计算相关系数矩阵代码

结果:

图 5.2 相关系数矩阵结果

训练集、测试集划分

图 5.3 训练集、测试集划分代码

做散点图看特征值对标签值的影响

图 5.4 做散点图代码

结果(部分):

图 5.5 某两个标签的散点图

开始线性回归,测试准确率,并获得预测结果

图 5.6 线性回归代码

结果:

图 5.7 线性回归参数

聚类分析:

查看直方图,检测异常值并且去除异常值

图 5.8 检查参数代码

使用 7 种分类器,并获得分类准确率:

图 5.9 配置 7 种聚类分析器的代码

结果:GB 准确率最高,用 GB 进行最终分类

图 5.10 各类分类器的准确率

使用 GridSearchCV 调整 GradientBoostingClassifier()的参数:

图 5.11 使用 GridSearchCV 关键代码

结果:返回最佳参数,用这些参数做最终的分类器分类

图 5.12GridSearchCV 返回的最佳参数

参考文献

  • 糖尿病饮食推荐系统设计与实现(江西师范大学·司慧枫)
  • 糖尿病知识服务平台的知识图谱构建研究(广东药科大学·何璠)
  • 基于.NET平台与混合模式的DIMS的设计与实现(中南大学·郑炳祥)
  • 糖尿病及其视网膜病变信息共享系统的设计与实现(西南交通大学·杨昌东)
  • 面向糖尿病数据的模糊高效用项集挖掘技术研究(南京邮电大学·周宁)
  • 基于图像处理的糖尿病孕妇饮食能量采集与分析系统(沈阳工业大学·肖佳祺)
  • 糖尿病患者饮食营养管理平台设计与实现(吉林大学·高岩)
  • 基于家-医互动的糖尿病互联网管理信息系统研究(郑州大学·马晓琛)
  • 糖尿病患者饮食营养管理平台设计与实现(吉林大学·高岩)
  • 面向糖尿病数据的模糊高效用项集挖掘技术研究(南京邮电大学·周宁)
  • 带约束的多目标进化算法及其营养膳食模型的研究(河南工业大学·孙艳平)
  • 面向糖尿病数据的模糊高效用项集挖掘技术研究(南京邮电大学·周宁)
  • 基于横向联邦学习的糖尿病预测系统(电子科技大学·任超)
  • 基于医疗数据的文本挖掘研究与实现(上海工程技术大学·沈宙锋)
  • 基于家-医互动的糖尿病互联网管理信息系统研究(郑州大学·马晓琛)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计工坊 ,原文地址:https://bishedaima.com/yuanma/36144.html

相关推荐

  • 基于Spring MVC实现教学实验管理系统

    一,引言 1,1 设计背景 在我们的大学生活中,很容易接收到不完整的通知信息,因为学生基数庞大,信息经过分层传递,当传递到我们这里时很容易产生偏差,尤其是在实验室信息管理这方面
    2024年05月14日
    2 1 1
  • 基于mybatis的时间日程管理系统

    基于 MyBatis 的时间日程管理系统 1 绪论 1,1 背景 随着时代的进步,网络技术层出不穷信息量急剧膨胀,整个人类社会已成为信息化的社会
    2024年05月14日
    2 1 1
  • 基于SpringBoot的简易秒杀系统

    【秒杀系统】零基础上手秒杀系统(一):防止超卖 【秒杀系统】零基础上手秒杀系统(二):令牌桶限流 + 再谈超卖 【秒杀系统】零基础上手秒杀系统(三):抢购接口隐藏 + 单用户限制频率 【秒杀系统】零基础上手秒杀系统(四):缓存与数据库双写问题的争议 【秒杀系统】零基础上手秒杀系统番外篇:阿里开源 MySQL 中间件 Canal 快速入门 【秒杀系统】零基础上手秒杀系统(五):如何优雅的实现订单异步处理 【秒杀系统】从零打造秒杀系统(一):防止超卖 前言 大家好
    2024年05月14日
    5 1 1
  • 基于Java+SpringMVC的图书管理系统

    这是一个🔥🔥基于SpringMVC的图书管理系统🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 图书管理系统开发技术栈为SSM项目,可以作为毕业设计课程设计作业基于Java+SpringMVC的图书管理系统
    2024年05月23日
    5 1 2
  • javaweb垃圾分类查询系统、ssm+mysql

    这是一个🔥🔥javaweb垃圾分类查询系统,ssm+mysql🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 垃圾查询分类系统开发技术栈为SSM项目
    2024年05月23日
    6 1 1
  • 基于SSM框架搭建的仿知乎问答社区

    基于SSM框架搭建的仿知乎问答社区 一,项目的来源 项目来源自国内知名刷题网站的项目,主要是给在校的学生一个更加真实的实战项目,非经验,有些东西不是自己独立在实践生产中写的东西只能说是一种经历
    2024年05月14日
    3 1 1
  • 基于Java+SSH+mysql的实验课程管理系统

    这是一个🔥🔥基于SSH+mysql的实验课程管理系统🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 实验课程管理系统开发技术栈为SSH项目,可以作为毕业设计课程设计作业基于Java+SSH框架+mysql数据库实现一个学生实验课程管理系统
    2024年05月23日
    11 1 2
  • 使用 python 进行音频处理

    使用 python 进行音频处理 实验目的及实验内容 (本次实验所涉及并要求掌握的知识;实验内容;必要的原理分析) 实验目的: 使用 python 进行音频处理 实验内容: 学习音频相关知识点
    2024年05月14日
    1 1 1
  • 基于SSM框架的在线培训管理系统网站源码

    基于SSM框架的在线培训管理系统网站源码 随着互联网技术的飞速发展,教育培训行业也逐渐向在线化转变,基于SSM框架的在线培训管理系统应运而生,旨在解决传统培训方式效率低下
    2024年05月07日
    4 1 2
  • 基于python实现的人脸识别考勤系统

    基于python实现的人脸识别考勤系统 一,设计内容 1,原型设计 版本A: 考勤系统分为员工端和管理者端, 管理者端可以增删改要签到的员工信息(录入新员工
    2024年05月14日
    2 1 1

发表回复

登录后才能评论