使用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)

運行結果:

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM