数据分析-23--糖尿病预测(线性回归模型)(包含数据代码)

文章目录

    • 0. 数据代码下载
    • 1. 项目介绍
    • 2. 数据处理
      • 1. 导入数据
      • 2. 处理数据
    • 3. 建立模型
    • 4. 考察单个特征

0. 数据代码下载

关注公众号:『AI学习星球
回复:糖尿病预测 即可获取数据下载。
算法学习4对1辅导论文辅导核心期刊可以通过公众号或➕v:codebiubiubiu滴滴我
在这里插入图片描述


1. 项目介绍

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

本次数据分析实战,对糖尿病数据集进行回归分析。

sklearn.datasets 包提供了一些小的数据集,可用于机器学习入门,见下图。

导入toy数据的方法介绍任务数据规模
load_boston()加载和返回一个boston房屋价格的数据集回归506*13
load_iris([return_X_y])加载和返回一个鸢尾花数据集分类150*4
load_diabetes()加载和返回一个糖尿病数据集回归442*10
load_digits([n_class])加载和返回一个手写字数据集分类1797*64
load_linnerud()加载和返回一个健身数据集多分类20

2. 数据处理

1. 导入数据

导入数据分析常用包

# 导数据分析常用包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

导包获取糖尿病数据集

from sklearn.datasets import load_diabetes  
data_diabetes = load_diabetes()    
print(data_diabetes) 

我们先看一下数据是什么样:
diabetes 是一个关于糖尿病的数据集, 该数据集包括442个病人的生理数据及一年以后的病情发展情况。

在这里插入图片描述
从结果可以看到,这个数据集是个字典形式,三个key值,分别是['data' , 'feature_names' , 'target']

为了方便后续处理数据,现在将这个字典形式的数据集进行拆分。

data =  data_diabetes['data']
target = data_diabetes['target']
feature_names = data_diabetes['feature_names']

现在三个数据都是numpy的一维数据形式,将她们组合成dataframe,可以更直观地观察数据

df =  pd.DataFrame(data,columns = feature_names)
df.head()  # 查看前几行数据

在这里插入图片描述

2. 处理数据

查看数据集的基本信息

df.info() 

在这里插入图片描述
数据集共442条信息,特征值总共10项, 如下:

  • age:年龄
  • sex:性别
  • bmi = body mass index:身体质量指数,是衡量是否肥胖和标准体重的重要指标,理想BMI(18.5~23.9) = 体重(单位Kg) ÷ 身高的平方 (单位m)
  • bp = blood pressure :血压
  • s1,s2,s3,s4,s4,s6 (六种血清的化验数据)

3. 建立模型

  1. 抽取训练集合测试集
from sklearn.model_selection import train_test_split
train_X,test_X,train_Y,test_Y =  train_test_split(data,target,train_size =0.8)
  1. 建立模型
from sklearn.linear_model import LinearRegression
model = LinearRegression()
  1. 训练数据
model.fit(train_X,train_Y)
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
  1. 评估模型
model.score(train_X,train_Y)

输出结果 : 0.51298922173144801

  • 模型评估结果只有0.5左右,不是很高,说明变量之间的因果关系不是很强。
  • 一般这种情况下,我们会考察 单个特征值 与 结果标签 之间的相关关系。

4. 考察单个特征

考察单个特征值与结果之间的关系,以图表形式展示

  1. 取出特征值
df.columns

Index([‘age’, ‘sex’, ‘bmi’, ‘bp’, ‘s1’, ‘s2’, ‘s3’, ‘s4’, ‘s5’, ‘s6’], dtype=‘object’)

  1. 循环对每个特征值进行建模训练,作图
# 建立画板,作图5行2列的图
plt.figure(figsize=(2*6,5*5))
for i,col in enumerate(df.columns):  #enumerate 枚举train_X = df.loc[:,col].values.reshape(-1,1)    
# 每一次循环,都取出datafram中的一列数据,是一维Series数据格式,但是线性回归模型要求传入的是一个二维数据,因此利用reshape修改其形状train_Y = targetlinear_model = LinearRegression()    # 构建模型linear_model.fit(train_X,train_Y)    #训练模型score = linear_model.score(train_X,train_Y)   # 评估模型
#  以训练数据为X轴,标记为Y 轴,画出散点图,直观地看每个特征和标记直接的关系axes = plt.subplot(5,2,i+1)plt.scatter(train_X,train_Y)
# 画出每一个特征训练模型得到的拟合直线 y= kx + bk =  linear_model.coef_     # 回归系数b =  linear_model.intercept_   # 截距x = np.linspace(train_X.min(),train_X.max(),100)y = k * x + b
# 作图plt.plot(x,y,c='red')axes.set_title(col + ':' + str(score))
plt.show()

在这里插入图片描述

总结
从以上分析可知,单独看所有特征的训练结果,并不没有得到有效信息,我们拆分各个特征与指标的关系,可以看出:

  • bmi与糖尿病的相关性非常高,bp也有一定的关系,但是是否是直接关系,还是间接关系,有待深入考察。
  • 其他血清指标多少都和糖尿病有些关系,有的相关性强,有的相关性弱。

关注公众号:『AI学习星球
回复:糖尿病预测 即可获取数据下载。
算法学习4对1辅导论文辅导核心期刊可以通过公众号或➕v:codebiubiubiu滴滴我
在这里插入图片描述

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

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

相关文章

“双十一、二” 业务高峰如何扛住?韵达快递选择 TDengine

小 T 导读: 为了有效处理每日亿级的数据量,早在 2021 年,韵达就选择用 TDengine 替代了 MySQL,并在三台服务器上成功部署和上线了 TDengine 2.0 集群。如今,随着 TDengine 3.0 版本的逐渐成熟,韵达决定将现…

android实战之添加图标到项目中

引言 阿里云矢量库有很多图标,注册账号,下载下载选择的图标,下载时选择svg格式。 实现 1. androidstudio ,drawable右键---new ----->vector asset,选择本地下载的资源。 点击next。完成

libssh 服务端权限认证绕过(CVE-2018-10933)

漏洞描述: libssh 是一个提供 SSH 相关接口的开源库,包含服务端、客户端等。其服务端代码中存在一处逻辑错误,攻击者可以在认证成功前发送MSG_USERAUTH_SUCCESS消息,绕过认证过程,未授权访问目标 SSH 服务器。 复现过…

传统船检已经过时?AR智慧船检来助力!!

想象一下,在茫茫大海中,一艘巨型货轮正缓缓驶过。船上的工程师戴着一副先进的AR眼镜,他们不再需要反复翻阅厚重的手册,一切所需信息都实时显示在眼前。这不是科幻电影的场景,而是智慧船检技术带来的现实变革。那么问题…

[Linux]Ubuntu noVNC使用

又到了逛大型程序员交友 网站的时间了,今天你准备好了吗。 今天要推荐的一个有趣的项目是noVNC setup好以后是这个样子的,可以在浏览器登陆vnc,不需要再安装一个vnc client. setup的过程比较简单,分为以下几步: 1. v…

Linux操作系统——进程(六) 进程地址空间

进程地址空间 C/C程序员一般将我们所写的程序看成如下这种结构: 我们所写的程序通过编译编译之后就可以以这样的方式进行分布. 我们先通过编写一段C语言代码来进行验证: 运行结果: 我们可以看出来上述地址遵循的就是我们上面画的一种结构。…

059:vue中使用 AJAX来读取来自XML文件的信息

第059个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

mac 生成 本地.ssh

输入下面命令行 ssh-keygen 默认回车得到下面的 Generating public/private rsa key pair. Enter file in which to save the key (/Users/{用户名}/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has be…

Azure 学习总结

文章目录 1. Azure Function1.1 Azure Function 概念1.2 Azure Function 实现原理1.3 Azure Function 本地调试1.4 Azure Function 云部署 2. Azure API Managment 概念 以及使用2.1 Azure API 概念2.2 Azure API 基本使用 3. Service Bus 应用场景及相关特性3.1 Service Bus 基…

京东商家数据工具讲解(一):竞品数据如何监控与分析

京东平台的店铺众多,同行数不胜数。作为商家,如果连自己竞争对手的情况都不知道的话,很难在这个平台存活下去。那么,这次鲸参谋就来重点说一下“竞品分析”。 竞品分析,主要是对京东店铺运营期间竞争对手的市场经营状…

【docker实战】02 用docker安装mysql

本示例采用bitnami的镜像进行安装MySQL 一、镜像搜索 先搜索一下mysql有哪些镜像 [rootlocalhost ~]# docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql …

Android : 画布的使用 简单应用

示例图: MyView.java: package com.example.demo;import android.content.Context; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.Vi…

C++ 之LeetCode刷题记录(四)

😄😊😆😃😄😊😆😃 开始cpp刷题之旅,多学多练,尽力而为。 先易后难,先刷简单的。 14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共…

建筑覆膜板和传统木板有什么不同?

在建筑领域,选择合适的模板材料对于确保施工质量和效率至关重要。近年来,建筑覆膜板因其独特的优势越来越受到青睐,与传统木板相比,它们在多个方面展现出显著的差异。 材料和制作工艺 建筑覆膜板:这种板材是由木材切片…

腾讯云轻量应用服务器详细介绍

腾讯云轻量应用服务器开箱即用、运维简单的轻量级云服务器,CPU内存带宽配置高并且价格特别优惠,轻量2核2G3M带宽62元一年、2核2G4M优惠价118元一年,540元三年、2核4G5M带宽218元一年,756元3年、4核8G12M带宽646元15个月等&#xf…

【linux】touch的基本使用

碎碎念 刚接触linux时候的几个最基础的命令之一,用来创建文件。如果使用touch --help的时候会发现作者对于touch的简介:Update the access and modification times of each FILE to the current time.用于修改文件的访问和时间戳 带我的leader属于那种…

Linux安装GitLab教程

Linux安装GitLab教程 1、配置yum源 相当于新建一个文件,通过这个文件来安装gitlab vim /etc/yum.repos.d/gitlab-ce.repo 把这些配置粘进去 [gitlab-ce] nameGitlab CE Repository baseurlhttps://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gp…

C++ Qt开发:SqlTableModel映射组件应用

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍SqlTableModule组件的常用方法及灵活运用。 …

编程笔记 html5cssjs 004 我的第一个页面

编程笔记 html5&css&js 004 我的第一个页面 一、基本结构二、HTML标签三、HTML元素四、HTML属性五、编写第一个网页六、使用VSCODE小结 开始编写网页,并且使用第一个网页成为一个母板,用于完成后续内容的学习。有一个基本要求,显示结…

二叉树数据结构:深入了解二叉树的概念、特性与结构

在探索栈和队列之后(大家可以移步至我的数据结构专栏):T-rLN的数据结构专栏 我们转向了更为复杂而有趣的数据结构——二叉树。本文将引领我们进入二叉树的世界,从最基本的概念和结构开始,逐步深入了解二叉树的顺序结构…