1. 程式人生 > 實用技巧 >使用sklearn自帶的糖尿病資料集,進行迴歸分析

使用sklearn自帶的糖尿病資料集,進行迴歸分析

需求:對糖尿病資料集進行迴歸分析,以便對未知資料進行預測。

資料集Diabetes:1.包含442個患者的10個生理特徵

        2.10個特徵變數資料均已進行規範化

資料集描述:

# 載入資料集
diabetes = datasets.load_diabetes()
# 顯示其描述
print("【DESCR】\n", diabetes.DESCR)

完整程式碼:

from sklearn import datasets
from sklearn import linear_model
from sklearn.model_selection import train_test_split
# 引入均方誤差 from sklearn.metrics import mean_squared_error # 載入糖尿病資料集 diabetes = datasets.load_diabetes() # 得到糖尿病特徵向量集 data = diabetes.data # 資料探索 print(data.shape) # 檢視資料第0行資料 print(data[0]) # 訓練集 70%,測試集30%(diabetes.data是全資料集的特徵,diabetes.target是全資料集的標籤) # random_state=14 控制每次隨機的結果都是一樣的,數字大小沒有規定,只有有個數就行
# 當然不同的數字隨機的結果是不一樣的 train_x, test_x, train_y, test_y = train_test_split(diabetes.data, diabetes.target, test_size=0.3, random_state=14) print(len(train_x)) # 迴歸訓練及預測(線性迴歸模型) clf = linear_model.LinearRegression() # 擬合訓練集的特徵和標籤,來學習得到模型引數 clf.fit(train_x, train_y) # 訓練出的線性模型的係數(每條資料有10個不同的特徵,但對應著同一個y值,所以有10個線性模型,即有10個係數)
print(clf.coef_) # print(train_x.shape) # print(clf.score(test_x, test_y)) # 計算預測結果 pred_y = clf.predict(test_x) # 計算均方誤差(損失值) print(mean_squared_error(test_y, pred_y)) # 通過決定係數來來判斷迴歸方程的擬合程度(分數越高說明擬合的程度越好) r_sq = clf.score(train_x, train_y) # 確定係數 print('r_sq:', r_sq)

執行結果:

今天陰天,同時伴隨著淅淅瀝瀝的小雨,喜歡下雨的聲音......