当前位置:   article > 正文

数据挖掘——糖尿病预测_血糖预测数据集

血糖预测数据集

一、问题描述

        糖尿病数据集是Sklearn 提供的数据集。它从442例糖尿病患者的资料中取10个特征:年龄、性别、体重、血压和6个血清测试量值,以及患者在一年后疾病发展的量化值(标签)。

二、实验目的

        根据上述10个特征,预测病情发展的量化值。

三、实验内容

        包括数据导入、数据预处理、算法描述、主要代码。

四、实验结果及分析

结论:正规方程和Scikit-learn的模型预测比岭回归算法的预测模型好

五、完整代码

机器学习GitHub:https://github.com/wanglei18/machine_learning

ridge_regression.py

  1. import numpy as np
  2. class RidgeRegression:
  3. def __init__(self, Lambda):
  4. self.Lambda = Lambda
  5. def fit(self, X, y):
  6. m, n = X.shape
  7. r = np.diag(self.Lambda * np.ones(n))
  8. self.w = np.linalg.inv(X.T.dot(X) + r).dot(X.T).dot(y)
  9. return
  10. def predict(self, X):
  11. return X.dot(self.w)
  1. # 第二次作业.2部分
  2. import sklearn.datasets
  3. import numpy as np
  4. import machine_learning.linear_regression.lib.linear_regression as lib
  5. import machine_learning.linear_regression.lib.ridge_regression as Rg
  6. from sklearn import linear_model
  7. from sklearn.preprocessing import PolynomialFeatures
  8. from sklearn.model_selection import train_test_split
  9. def process_features(X):
  10. m, n = X.shape
  11. X = np.c_[np.ones((m, 1)), X]
  12. return X
  13. np.random.seed(100)
  14. X, y = sklearn.datasets.load_diabetes(return_X_y = True)
  15. #1.正规方程求解法
  16. x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=5)
  17. x_train = process_features(x_train) #特征处理
  18. x_test = process_features(x_test)
  19. model = lib.LinearRegression()
  20. model.fit(x_train, y_train) #训练数据
  21. y_pred=model.predict(x_test)
  22. mse = lib.mean_squared_error(y_test,y_pred) #h的均方误差
  23. r2 = lib.r2_score(y_test,y_pred) #R^2的决定系数
  24. print("mse={}andr2={}".format(mse,r2))
  25. '''
  26. #2.岭回归算法
  27. x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=5)
  28. polt = PolynomialFeatures(degree = 2)
  29. x_poly = polt.fit_transform(x_train) #特征处理
  30. model = Rg.RidgeRegression(Lambda = 0.2)
  31. model.fit(x_poly,y_train) #训练数据
  32. x_test = polt.fit_transform(x_test) #X特征标准化
  33. y_pred = model.predict(x_test) #预测数据
  34. mse = lib.mean_squared_error(y_test,y_pred) #h的均方误差
  35. r2 = lib.r2_score(y_test,y_pred) #R^2的决定系数
  36. print("mse={}andr2={}".format(mse,r2))
  37. '''
  38. '''
  39. #3.Scikit-learn
  40. x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=5)
  41. x_train = process_features(x_train) #特征处理
  42. x_test = process_features(x_test) #h的均方误差
  43. clf = linear_model.LinearRegression()
  44. clf.fit(x_train, y_train) #训练数据
  45. y_pred=clf.predict(x_test) #预测数据
  46. mse = lib.mean_squared_error(y_test,y_pred) #h的均方误差
  47. r2 = lib.r2_score(y_test,y_pred) #R^2的决定系数
  48. print("mse={}andr2={}".format(mse,r2))
  49. '''

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/551582
推荐阅读
相关标签
  

闽ICP备14008679号