当前位置: 首页 > news >正文

python数据分析-糖尿病数据集数据分析预测

一、研究背景和意义

糖尿病是美国最普遍的慢性病之一,每年影响数百万美国人,并对经济造成重大的经济负担。糖尿病是一种严重的慢性疾病,其中个体失去有效调节血液中葡萄糖水平的能力,并可能导致生活质量和预期寿命下降。。。。

本案例分析针对糖尿病数据集进行探索和分析:

二、实证分析

首先,导入需要的基础包:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif'] = ['KaiTi']  #中文
plt.rcParams['axes.unicode_minus'] = False   #负号import seaborn as sns

读取数据文件

###读取文件数据
df=pd.read_csv('data.csv')
###展示数据前15行
df.head(15)

数据集和代码

报告代码数据

###各项特征名称

年龄:13级年龄组(_AGEG5YR见密码本)

1 = 18-24 / 2 = 25-29 / 3 = 30-34 / 4 = 35-39 / 5 = 40-44 / 6 = 45-49 / 7 = 50-54 / 8 = 55-59 / 9 = 60-64 / 10 = 65-69 / 11 = 70-74 / 12 = 75-79 / 13 = 80 岁或以上

Sex:患者性别(1:男;0:女)

HighChol:0 = 无高胆固醇 1 = 高胆固醇

CholCheck:0 = 5 年内未进行胆固醇检查 1 = 5 年内进行了胆固醇检查

BMI:身体质量指数

吸烟者:您一生中至少吸过 100 支香烟吗? [注:5 包 = 100 支香烟] 0 = 否 1 = 是

心脏病或发作:冠心病 (CHD) 或心肌梗塞 (MI) 0 = 否 1 = 是

PhysActivity:过去 30 天的身体活动 - 不包括工作 0 = 否 1 = 是

水果:每天吃水果 1 次或更多次 0 = 否 1 = 是

蔬菜:每天吃蔬菜 1 次或更多次 0 = 否 1 = 是

HvyAlcoholConsump:(成年男性每周 >=14 杯,成年女性每周 >=7 杯)0 = 否 1 = 是

GenHlth:总体而言,您的健康状况是: 等级 1-5 1 = 极好 2 = 非常好 3 = 好 4 = 一般 5 = 差

MentHlth:心理健康状况不佳的天数 1-30 天

PhysHlth:过去 30 天的身体疾病或受伤天数 1-30

DiffWalk:你走路或爬楼梯有严重困难吗? 0 = 否 1 = 是

中风:您曾经中风。 0 = 否,1 = 是

HighBP:0 = 不高,BP 1 = 高 BP

糖尿病:0 = 无糖尿病,1 = 糖尿病

发现数据量为七万多行,17个特征

查看数据类型和形状

接下来进行基本的统计性描述分析

从上面结果可以看出,从描述中,我们观察到BMI,PhysHlth,MentHlth的标准差高于1, 

最大值和最小值之间的差异相对较高 

下来查看缺失值

数据比较完整,无缺失值,若有的话可以可视化一下: 

#观察缺失值可视化
import missingno as msno
msno.matrix(df)

 

对特征分别进行可视化一下   比如各个特征的占比情况等等

import seaborn as sb
for i in df.columns:fig, ax = plt.subplots(1,1, figsize=(15, 6))sb.countplot(y = df[i],data=df, order=df[i].value_counts().index)plt.ylabel(i)plt.yticks(fontsize=13)plt.show()

 

# 按性别分组,计算平均年龄和BMI
grouped = df.groupby('Sex')[['Age', 'BMI']].mean()
grouped['BMI'].plot(kind='bar')
plt.title('Average BMI by Gender')
plt.xlabel('Gender')
plt.ylabel('Average BMI')
plt.show()

接下来看一下特征之间的相关系数

从上面热力图可以看出,最大相关性在0.38左右

再画出具体特征的分布

sb.barplot(x=df['Diabetes'],y=df['HighBP'],color='red')

 

下来用直方图表示

df.hist(figsize=(20,20))
plt.show()

分别画出响应变量糖尿病与其他特征的关系

接下来看一下糖尿病分布

plt.figure(figsize=(12,5))
sns.displot(x='PhysHlth', col='Diabetes' , data = df, kind="kde" ,color = 'pink')

 

接下来进行标准化

df1 = df
cols = ['BMI', 'PhysHlth']
for i in cols:df1[i] = (df1[i] - df1[i].min()) / (df1[i].max() - df1[i].min())

 下面开始机器学习部分

####划分训练集和验证集
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
print('Non normalized dataset')
x_train, x_test, y_train, y_test= train_test_split(x,y,test_size=0.25,random_state=101)
print('Training: ', x_train.shape[0])
print('Test: ', x_test.shape[0])
st_x= StandardScaler()  
x_train= st_x.fit_transform(x_train)    
x_test= st_x.transform(x_test)print('Normalized dataset')
x_train1, x_test1, y_train1, y_test1 = train_test_split(x1,y1,test_size=0.25,random_state=101)
print('Training: ', x_train1.shape[0])
print('Test: ', x_test1.shape[0])
from sklearn.neighbors import KNeighborsClassifier
import time
from sklearn.metrics import accuracy_score, confusion_matrix, classification_reportexec = []
exec1 = []
st = time.time()
knn = KNeighborsClassifier(n_neighbors=5)knn.fit(x_train, y_train)
accuracy = []
accuracy1 = []y_pred = knn.predict(x_test)cm = confusion_matrix(y_test, y_pred)
print(cm)
print('\n')
print(classification_report(y_test,y_pred))
print(accuracy_score(y_test, y_pred))
accuracy.append(accuracy_score(y_test, y_pred))
exec.append(time.time() - st)print('\n\nNormalized DataSet')
st = time.time()knn.fit(x_train1, y_train1)

 

使用其他模型试一下,最终结果如下

#决策树
from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier()
model.fit(x_train, y_train)
model.score(x_test, y_test)

 

从以上结果可以看出,自适应提升Adaboost模型的效果还可以,达到了0.7486.其次是极端梯度提升,KNN以及最后的决策树。

三、总结

在这个项目中,我运用了机器学习的模型来预测一个人是否患有糖尿病,使用的模型包括自适应提升(AdaBoost)、K最近邻(KNN)和决策树(Decision Tree)等。自适应提升(AdaBoost)是一种集成学习方法.它通过不断迭代调整样本权重,训练出多个弱分类器,最终组合成一个强分类器。通过对不同算法的比较和分析,最终发现自适应提升最优的算法来进行预测,并根据预测结果来制定相应的医疗干预措施,以帮助预防和治疗糖尿病。。

创作不易,希望大家多点赞关注评论!!!(类似代码或报告定制可以私信)

相关文章:

python数据分析-糖尿病数据集数据分析预测

一、研究背景和意义 糖尿病是美国最普遍的慢性病之一,每年影响数百万美国人,并对经济造成重大的经济负担。糖尿病是一种严重的慢性疾病,其中个体失去有效调节血液中葡萄糖水平的能力,并可能导致生活质量和预期寿命下降。。。。 …...

【前端】 nvm安装管理多版本node、 npm install失败解决方式

【问题】If you believe this might be a permissions issue, please double-check the npm ERR! permissio或者Error: EPERM: operation not permitted, VScode中npm install或cnpm install报错 简单总结,我们运行npm install 无法安装吧包,提示权限问题…...

第11天:API开发与REST framework

第11天:API开发与REST framework 目标 使用Django REST framework构建RESTful API。 任务概览 学习序列化器的概念和使用方法。创建API视图和路由。实现API的权限和认证。 详细步骤 1. 学习序列化器 序列化器是Django REST framework中用于数据转换的组件&am…...

2024 年解锁 Android 手机的 7 种简便方法

您是否忘记了 Android 手机的 Android 锁屏密码,并且您的手机已被锁定?您需要使用锁屏解锁 Android 手机?别担心,您不是唯一一个忘记密码的人。我将向您展示如何解锁 Android 手机的锁屏。 密码 PIN 可保护您的 Android 手机和 G…...

利用机器学习重构视频中的人脸

引言 中国与英国的研究团队携手合作,开创了一种创新的视频面孔重塑技术。这项技术能够以极高的一致性对视频中的面部结构进行逼真的放大和缩小,且避免了常见伪影的产生。 从研究人员选取的YouTube视频样例中可见,经过处理后,女演…...

2021数学建模C题目– 生产企业原材料的订购与运输

C 题——生产企业原材料的订购与运输 思路:该题主要是通过对供应商的供货能力和运送商的运货能力进行估计,给出合适的材料订购方案 程序获取 第一题问题思路与结果: 对 402 家供应商的供货特征进行量化分析,建立反映保障企业生…...

C# OpenCvSharp 图像复制-clone、copyTo

在C#中使用OpenCvSharp库处理图像时,clone和copyTo是两个非常常用的函数。理解和合理使用这些函数可以帮助你在图像处理项目中更高效地操作图像数据。本文将详细介绍这两个函数的使用方法,并通过具体的示例来说明它们的实际应用。 1. clone 函数 定义 …...

中国投入到终止遗传性疾病的战斗

中国投入到终止遗传性疾病的战斗 编译 李升伟 于2006年6月在澳大利亚的墨尔本会议上启动的人类变异组计划(Human Variome Project,简称HVP),旨在全球范围内广泛收集所有基因和蛋白质序列变异和多态性的数据,采用全基…...

PCL common中常见的基础功能函数

文章目录 一、common模块中的头文件二、common模块中的基本函数1、angles.h2、centroid.h1)计算给定一群点的3D中心点,并且返回一个三维向量2)计算给定的三维点云的协方差矩阵。3)计算正则化的3*3的协方差矩阵以及给定点云数据的中心点4)利用一组点的指数对其进行一般的、…...

力扣每日一题 6/22 字符串/贪心

博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 2663.字典序最小的美丽字符串【困难】 题目: 如果一个字符串满…...

MCT Self-Refine:创新集成蒙特卡洛树搜索 (MCTS)提高复杂数学推理任务的性能,超GPT4,使用 LLaMa-3 8B 进行自我优化

📜 文献卡 题目: Accessing GPT-4 level Mathematical Olympiad Solutions via Monte Carlo Tree Self-refine with LLaMa-3 8B作者: Di Zhang; Xiaoshui Huang; Dongzhan Zhou; Yuqiang Li; Wanli OuyangDOI: 10.48550/arXiv.2406.07394摘要: This pape…...

自制HTML5游戏《开心消消乐》

1. 引言 游戏介绍 《开心消消乐》是一款基于HTML5技术开发的网页游戏,以其简单的操作方式、轻松的游戏体验和高度的互动性,迅速在社交平台上获得了广泛的关注和传播。玩家通过消除相同类型的元素来获得分数,游戏设计巧妙,易于上手…...

【C++】平衡二叉树(AVL树)的实现

目录 一、AVL树的概念二、AVL树的实现1、AVL树的定义2. 平衡二叉树的插入2.1 按照二叉排序树的方式插入并更新平衡因子2.2 AVL树的旋转2.2.1 新节点插入较高左子树的左侧(LL平衡旋转)2.2.2 新节点插入较高右子树的右侧(RR平衡旋转&#xff09…...

第一百一十八节 Java面向对象设计 - Java接口

Java面向对象设计 - Java接口 什么是接口? Java中的接口定义了一个引用类型来创建抽象概念。接口由类实现以提供概念的实现。 在Java 8之前,一个接口只能包含抽象方法。 Java 8允许接口具有实现的静态和默认方法。 接口通过抽象概念定义不相关类之间…...

Flink nc -l -p 监听端口测试

1、9999端口未占用 netstat -apn|grep 99992、消息发送端 nc -l -k -p 9999 {"user":"ming","url":"www.baidu1.com", "timestamp":1200L, "score":1} {"user":"xiaohu","url":…...

在IntelliJ IDEA中使用Spring Boot:快速配置

使用IntelliJ IDEA开发Spring Boot应用程序可以极大地提高开发效率,因为IDEA提供了许多便捷的功能,比如自动补全、代码分析、热部署等。以下是一篇可能的CSDN博客文章草稿,介绍如何在IntelliJ IDEA中使用Spring Boot: 在IntelliJ …...

django filter 批量修改

django filter 批量修改 在Django中,如果你想要批量修改记录,可以使用update()方法。这个方法允许你在一个查询集上执行批量更新,而不需要为每条记录生成单独的数据库事务。 以下是一个使用update()方法批量修改记录的例子: fro…...

maven:中央仓库验证方式改变:401 Content access is protected by token

前几天向maven中央仓库发布版本,执行上传命令mvn release:perform时报错了: [ERROR] Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.13:deploy (injected-nexus-deploy) on project xxxxx: Failed to deploy artifacts: …...

【面试】http

一、定义 HTTP(超文本传输协议),是一种用于分布式、协作式、超媒体信息系统的应用层协议,它是万维网数据通信的基础。主要特点是无状态(服务器不会保存之前请求的状态)、无连接(服务器处理完请…...

获取泛型,泛型擦除,TypeReference 原理分析

说明 author blog.jellyfishmix.com / JellyfishMIX - githubLICENSE GPL-2.0 获取泛型,泛型擦除 下图中示例代码是一个工具类用于生成 csv 文件,需要拿到数据的类型,使用反射感知数据类型的字段,来填充表字段名。可以看到泛型…...

springboot 3.x 之 集成rabbitmq实现动态发送消息给不同的队列

背景 实际项目中遇到针对不同类型的消息,发送消息到不同的队列,而且队列可能还不存在,需要动态创建,于是写了如下代码,实践发现没啥问题,这里分享下。 环境 springboot 3.2 JDK 17 rabbitMQ模型介绍 图片…...

C++ 代码实现鼠标右键注册菜单,一级目录和二级目录方法

最近做的一个项目, 在使用windows的时候,我希望在右键菜单中添加一个自定义的选项, 该选项下有我经常使用的多个程序快捷方式, 直接上代码 头文件 #pragma once #include <Windows.h> #include <iostream> #include <string> using namespace std; …...

SQLite 3 优化批量数据存储操作---事务transaction机制

0、事务操作 事务的目的是为了保证数据的一致性和完整性。 事务&#xff08;Transaction&#xff09;具有以下四个标准属性&#xff0c;通常根据首字母缩写为 ACID&#xff1a; 原子性&#xff08;Atomicity&#xff09;&#xff1a;确保工作单位内的所有操作都成功完成&…...

[程序员] 表达的能力

之前看CSDN的问答区&#xff0c;很多时候&#xff0c;感觉问题的描述所要表达的意思非常模糊&#xff0c;或者说描述不清。如果是想回答问题的人想回答问题&#xff0c;首先要搞清楚是什么问题&#xff0c;就需要再问问题主很多细节的东西。三来四去&#xff0c;才能搞清楚具体…...

rknn转换后精度差异很大,失真算子自纠

下面是添加了详细注释的优化代码&#xff1a; import cv2 import numpy as np import onnx import onnxruntime as rt from onnx import helper, shape_inferencedef get_all_node_names(model):"""获取模型中所有节点的名称。参数:model (onnx.ModelProto): O…...

【C语言】解决C语言报错:Stack Overflow

文章目录 简介什么是Stack OverflowStack Overflow的常见原因如何检测和调试Stack Overflow解决Stack Overflow的最佳实践详细实例解析示例1&#xff1a;递归调用过深示例2&#xff1a;分配过大的局部变量示例3&#xff1a;嵌套函数调用过多 进一步阅读和参考资料总结 简介 St…...

【滚动哈希 二分查找】1044. 最长重复子串

本文涉及知识点 滚动哈希 二分查找算法合集 LeetCode 1044. 最长重复子串 给你一个字符串 s &#xff0c;考虑其所有 重复子串 &#xff1a;即 s 的&#xff08;连续&#xff09;子串&#xff0c;在 s 中出现 2 次或更多次。这些出现之间可能存在重叠。 返回 任意一个 可能具…...

webid、sec_poison_id、a1、web_session参数分析与算法实现

文章目录 1. 写在前面2. 参数分析3. 核心算法【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python与爬虫领域研究与开发工作! 【🌟作者推荐】:对爬…...

Qt|QWebSocket与Web进行通讯,实时接收语音流

实现功能主要思路&#xff1a;在网页端进行语音输入&#xff0c;PC机可以实时接收并播放语音流。 此时&#xff0c;Qt程序做客户端&#xff0c;Web端做服务器&#xff0c;使用QWebSocket进行通讯&#xff0c;实时播放接收的语音流。 功能实现 想要实现该功能&#xff0c;需要…...

「51媒体」电视台媒体邀约采访报道怎么做?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 电视台作为地方主流媒体&#xff0c;对于新闻报道有着严格的选题标准和报道流程。如果您希望电视台对某个会议或活动进行报道&#xff0c;可以按这样的方法来做&#xff1a; 1.明确活动信…...

dede我的网站/windows优化大师要会员

老徐FrankXuLei受邀为上海师翊网络科技有限公司讲授《微软WCF分布式开发与SOA架构设计课程》 合影留念。大家的评价很高&#xff01;也给出非常有价值的建议。课程评价邮件截图 微软研发微软中国MSDN新青年IT学习网 上海师翊网络专注于教育类软件系统研发上海教育51CTO技术社区…...

微信公众号怎么做网站的/app代理推广平台

据报道指出小米已有三款平板电脑在测试中&#xff0c;这是它时隔三年之后再次推出平板电脑。小米如此做&#xff0c;柏铭科技认为应该是它受到华为平板的衰退让联想平板出货量倍增的影响&#xff0c;希望在平板电脑市场分羹。小米和华为都是在智能手机市场取得成功之后&#xf…...

织梦云建站系统/宁波品牌网站推广优化公司

[20160831]关于数据块Checksum.txt --以前我学习bbed时做过一些测试,将AAAA替换成BBBB,你可以发现数据块的Checksum并没有发生变化,当时并没有仔细探究, --现在想起来计算Checksum算法应该相对简单,就是做异或操作. --比如上面的字符AAAA如果2个字符按位做异或操作,变成0000000…...

网页游戏传奇合击版/seo站外优化最主要的是什么

1、对表中数据的添加、修改、删除&#xff1b; 2、添加数据&#xff1a;insert into 表名&#xff08;列名1&#xff0c;列名2&#xff0c;&#xff09; values&#xff08;值1&#xff0c;值2&#xff0c;&#xff09;&#xff1b; 3、修改数据&#xff1a;update 表名 set 列…...

九曲网站建设/今日十大热点新闻事件

在APP中一些页面为了防止用户操作失误点击到返回键导致退出APP&#xff0c;可以设置其一定时间内点击两次返回键才允许退出APP&#xff0c;完成这个功能可以通过WillPopScope和SystemNavigator.pop实现 我们先来看一下效果&#xff1a; 要实现这个效果我们需要先在外层包裹Wil…...

免费门户网站搭建/淘宝指数官网的网址

Google收购聊天机器人开发平台API.AI 责任编辑&#xff1a;editor005 作者&#xff1a;boxi | 2016-09-20 15:10:32 本文摘自&#xff1a;36kr Google刚刚在官方博客宣布&#xff0c;已经收购了为开发者提供Siri式会话机器人开发工具的API.AI背后的团队&#xff0c;但具体交易…...