糖尿病病情预测

mac2024-04-19  6

 

import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model from sklearn.metrics import mean_squared_error, r2_score #diabetes 是一个关于糖尿病的数据集, 该数据集包括442个病人的生理数据及一年以后的病情发展情况。 # 数据集中的特征值总共10项, 如下: # 年龄 # 性别 #体质指数 #血压 #s1,s2,s3,s4,s4,s6 (六种血清的化验数据) # 加载sklearn自带数据 diabetes = datasets.load_diabetes() # 取第三列数据 diabetes_X = diabetes.data[:, np.newaxis, 2] # 最后20条数据作为测试数据的x值,其他的作为训练数据的x值 diabetes_X_train = diabetes_X[:-20] diabetes_X_test = diabetes_X[-20:] # 最后20条数据作为测试数据的y值,其他的作为训练数据的y值 diabetes_y_train = diabetes.target[:-20] diabetes_y_test = diabetes.target[-20:] # 创建线性模型 regr = linear_model.LinearRegression() # 把(x,y)放入模型中训练 regr.fit(diabetes_X_train, diabetes_y_train) # 用模型测试数据 diabetes_y_pred = regr.predict(diabetes_X_test) # 得到系数 print('Coefficients: \n', regr.coef_) # X是真实数据 Y是预测数据 共有N个。那么均方误差MSE = sum((X-Y).^2)/N # mean_squared_error:均方差(Mean squared error,MSE),该指标计算的是拟合数据和原始数据对应样本点的误差的 平方和的均值,其值越小说明拟合效果越好 # 得到均方误差 print("Mean squared error: %.2f" % mean_squared_error(diabetes_y_test, diabetes_y_pred)) #r2_score:判定系数,其含义是也是解释回归模型的方差得分,其值取值范围是[0,1],越接近于1说明自变量越能解释因 变量的方差变化,值越小则说明效果越差 # 得到方差 print('Variance score: %.2f' % r2_score(diabetes_y_test, diabetes_y_pred)) # 输出图像 plt.scatter(diabetes_X_test, diabetes_y_test, color='black') plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3) plt.xticks(()) plt.yticks(()) plt.show()

参考自:https://www.cnblogs.com/yhl-yh/p/6714950.html

https://sklearn.apachecn.org/docs/0.21.3/2.html

最新回复(0)