使用sklearn自带的糖尿病数据集,进行回归分析


需求:对糖尿病数据集进行回归分析,以便对未知数据进行预测。

数据集Diabetes:1.包含442个患者的10个生理特征

        2.10个特征变量数据均已进行规范化

数据集描述:

# 加载数据集
diabetes = datasets.load_diabetes()
# 显示其描述
print("【DESCR】\n", diabetes.DESCR)

完整代码:

from sklearn import datasets
from sklearn import linear_model
from sklearn.model_selection import train_test_split
# 引入均方误差
from sklearn.metrics import mean_squared_error

# 加载糖尿病数据集
diabetes = datasets.load_diabetes()

# 得到糖尿病特征向量集
data = diabetes.data
# 数据探索
print(data.shape)
# 查看数据第0行数据
print(data[0])

# 训练集 70%,测试集30%(diabetes.data是全数据集的特征,diabetes.target是全数据集的标签)
# random_state=14 控制每次随机的结果都是一样的,数字大小没有规定,只有有个数就行
# 当然不同的数字随机的结果是不一样的
train_x, test_x, train_y, test_y = train_test_split(diabetes.data, diabetes.target, test_size=0.3, random_state=14)
print(len(train_x))

# 回归训练及预测(线性回归模型)
clf = linear_model.LinearRegression()
# 拟合训练集的特征和标签,来学习得到模型参数
clf.fit(train_x, train_y)
# 训练出的线性模型的系数(每条数据有10个不同的特征,但对应着同一个y值,所以有10个线性模型,即有10个系数)
print(clf.coef_)
# print(train_x.shape)
# print(clf.score(test_x, test_y))
# 计算预测结果
pred_y = clf.predict(test_x)
# 计算均方误差(损失值)
print(mean_squared_error(test_y, pred_y))
# 通过决定系数来来判断回归方程的拟合程度(分数越高说明拟合的程度越好)
r_sq = clf.score(train_x, train_y)  # 确定系数
print('r_sq:', r_sq)

运行结果:

 

今天阴天,同时伴随着淅淅沥沥的小雨,喜欢下雨的声音......

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM