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 = datasets.load_diabetes() # 只使用一個特徵 diabetes_X = diabetes.data[:, np.newaxis, 2] # 將數據分爲訓練集和測試集 diabetes_X_train = diabetes_X[:-20] diabetes_X_test = diabetes_X[-20:] diabetes_y_train = diabetes.target[:-20] diabetes_y_test = diabetes.target[-20:] # 建立線性迴歸對象 regr = linear_model.LinearRegression() # 訓練模型 regr.fit(diabetes_X_train, diabetes_y_train) # 在測試集上進行預測 diabetes_y_pred = regr.predict(diabetes_X_test) # 係數 print('Coefficients: \n', regr.coef_) # 均方偏差 print("Mean squared error: %.2f" % mean_squared_error(diabetes_y_test, diabetes_y_pred)) # Explained variance score: 1 is perfect prediction print('Variance score: %.2f' % r2_score(diabetes_y_test, diabetes_y_pred)) # plot繪製 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()