根據(jù)已知數(shù)據(jù)乳讥,找到一個(gè)模型,來做預(yù)測
- 可視化
- 建立假設(shè)
Y = kx+b
利用 diabetes(糖尿病)數(shù)據(jù)集來學(xué)習(xí)線性回歸
-
Linear Regression Example
包括442個(gè)病人的生理數(shù)據(jù)及一年以后的病情發(fā)展情況
10項(xiàng)特征值如下:
年齡秕噪、性別、體質(zhì)指數(shù)、血壓早抠、s1,s2,s3,s4,s5,s6 (六種血清的化驗(yàn)數(shù)據(jù))
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error, r2_score
diabetes = datasets.load_diabetes()
print(diabetes.feature_names)
# 選擇bmi 作為預(yù)測的指標(biāo)(特征)
diabetes_X = diabetes.data[:, np.newaxis, 2]
# 除了最后20個(gè)都是訓(xùn)練集
diabetes_X_train = diabetes_X[:-20]
# 測試集,來驗(yàn)證最后的機(jī)器學(xué)習(xí)模型
diabetes_X_test = diabetes_X[-20:]
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]
# 創(chuàng)建線性回歸的分類器
regr = linear_model.LinearRegression()
regr.fit(diabetes_X_train, diabetes_y_train)
# 使用測試數(shù)據(jù)撬讽,讓模型生成對應(yīng)的結(jié)果
diabetes_y_pred = regr.predict(diabetes_X_test)
print('均方誤差是:%.2f'%mean_squared_error(diabetes_y_test, diabetes_y_pred))
# print("Mean squared error: %.2f" % mean_squared_error(diabetes_y_test, diabetes_y_pred))
# Plot outputs
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()
線性回歸