###### tags: `Machine Learning`,`regression`,`multiple regression` # Machine Learning 練習篇-Multiple Regression多元回歸糖尿病案例 diabetes dataset 資料集是一個糖尿病的資料集 主要包括442筆資料,10個屬性值,分別是:Age(年齡)、Sex(性別)、Body mass index(體質指數)、Average Blood Pressure(平均血壓)、S1-S6一年後疾病級數指標,Target為一年後患疾病的定量指標。 ==題目1== 建立線性多元回歸的預測模型,繪製散佈圖來比較一年後患疾病的定量指標和實際一年後患疾病的定量指標結果。 ==題目2== 建立線性多元回歸的預測模型,只取Age(年齡)、Sex(性別)、Body mass index(體質指數)、Average Blood Pressure(平均血壓)作為解釋變數,產生模型,並匯出散佈圖來比較預測一年後患疾病的定量指標和實際一年後患疾病的定量指標結果。 ```python= #題目1 import pandas as pd from sklearn import datasets from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt #載入資料集 diabetes = datasets.load_diabetes() #print(diabetes.keys()) #print(diabetes.feature_names) #['age', 'sex', 'bmi', 'bp', 's1', 's2', 's3', 's4', 's5', 's6'] X = pd.DataFrame(diabetes.data, columns=diabetes.feature_names) target = pd.DataFrame(diabetes.target ,columns=["Target"]) y = target["Target"] #Series lm = LinearRegression() lm.fit(X,y) print("迴歸係數:", lm.coef_)#迴歸係數: [ -10.01219782 -239.81908937 519.83978679 324.39042769 -792.18416163 476.74583782 101.04457032 177.06417623 751.27932109 67.62538639] print("截距:", lm.intercept_) #截距: 152.1334841628965 predicted_diabetes = lm.predict(X) plt.scatter(y ,predicted_diabetes) plt.xlabel("Quantitative Measure") plt.ylabel("Predicted Quantitative Measure") plt.title("Quantitative Measure vs Predicted Quantitative Measure") plt.show() ``` ![](https://i.imgur.com/tT586df.png) ```python= #題目2 ###################### 4 items ############################## X1 = diabetes.data[:,:4] X1 = pd.DataFrame(X1, columns=["age","sex","bmi", "bp"]) #print(X1) target = pd.DataFrame(diabetes.target ,columns=["Target"]) y1 = target["Target"] lm_4items = LinearRegression() lm_4items.fit(X1,y1) print("迴歸係數:", lm_4items.coef_) print("截距:", lm_4items.intercept_) predicted_4items_diabetes = lm_4items.predict(X1) plt.scatter(y1 ,predicted_4items_diabetes) plt.xlabel("Quantitative Measure") plt.ylabel("Predicted Quantitative Measure") plt.title("Quantitative Measure vs Predicted Quantitative Measure") plt.show() ``` ![](https://i.imgur.com/9SaOdLp.png)