线性回归做糖尿病分析(diabetes数据集),并分析单个特征值与病情的关系

1.diabetes数据集

在这里插入图片描述
共442个样本,每个样本有十个特征,分别是 [‘age’, ‘sex’, ‘bmi’, ‘bp’, ‘s1’, ‘s2’, ‘s3’, ‘s4’, ‘s5’, ‘s6’],对应年龄、性别、体质指数、平均血压、S1~S6一年后疾病级数指标。
Targets为一年后患疾病的定量指标,值在25到346之间。

2.线性回归做糖尿病分析

# 导数据分析常用包
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个病人的生理数据及一年以后的病情发展情况。


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()  # 查看前几行数据
# 查看数据集的基本信息
df.info()

# 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)

# 2、建立模型
from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error, r2_score

model = linear_model.LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)

# 3、训练数据
model.fit(train_X, train_Y)


# 4、评估模型
# Make predictions using the testing set
y_pred = model.predict(test_X)

# The coefficients
print("Coefficients: \n", model.coef_)
# The mean squared error
print("Mean squared error: %.2f" % mean_squared_error(test_Y, y_pred))
# The coefficient of determination: 1 is perfect prediction
print("Coefficient of determination: %.2f" % r2_score(test_Y, y_pred))



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

# 1、取出特征值
df.columns  #输出结果:Index(['age', 'sex', 'bmi', 'bp', 's1', 's2', 's3', 's4', 's5', 's6'], dtype='objec
  • 29
    点赞
  • 184
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
sklearn自带的糖尿病数据集是一个用于进行糖尿病预测的经典数据集。该数据集包含442个患者的10个特征(年龄、性别、体质指数等)和一个连续目标变量(一个用于衡量疾病进展的指标)。我们可以使用sklearn线性回归模型对这个数据集进行分析和预测。 首先,我们需要导入必要的库和函数: ```python import numpy as np from sklearn import datasets, linear_model from sklearn.metrics import mean_squared_error, r2_score ``` 然后,我们可以加载糖尿病数据集并拆分成特征矩阵X和目标向量y: ```python diabetes = datasets.load_diabetes() X = diabetes.data[:, np.newaxis, 2] # 选择体质指数作为特征 y = diabetes.target ``` 接下来,我们可以将数据集分为训练集和测试集: ```python X_train = X[:-20] X_test = X[-20:] y_train = y[:-20] y_test = y[-20:] ``` 然后,我们可以创建一个线性回归模型对象并将训练数据拟合进去: ```python regr = linear_model.LinearRegression() regr.fit(X_train, y_train) ``` 接着,我们可以使用训练好的模型进行预测: ```python y_pred = regr.predict(X_test) ``` 最后,我们可以计算预测结果的均方误差和决定系数: ```python mse = mean_squared_error(y_test, y_pred) r2 = r2_score(y_test, y_pred) ``` 打印出均方误差和决定系数的结果: ```python print("Mean squared error: %.2f" % mse) print("Coefficient of determination: %.2f" % r2) ``` 这样就完成了对sklearn自带的糖尿病数据集线性回归分析,并输出了线性回归的结果。需要注意的是,这里我们只选择了体质指数这一特征作为示例,实际上我们可以选择其他特征进行分析和预测。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做个好男人!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值