1. 程式人生 > >回歸模型構建

回歸模型構建

sets 目的 imp The ase scale predict die bsp

回歸模型構建

模塊 函數 算法名稱 簡稱
linear_model LinearRegression 線性回歸 LR
svm SVR 支持向量機回歸 SVM
neighbors KNeighborsRegressor 最近鄰回歸 KNN
tree DecisionTreeRegressor 回歸決策樹 DT
ensemble RandomForestRegressor 隨機森林回歸 RF
ensemble GradientBoostingRegressor 梯度提升回歸樹 GBDT

以SVM為例,咱簡單過一遍模型構建的大致流程。

from sklearn.datasets import load_diabetes  # 導入糖尿病數據
from sklearn.model_selection import train_test_split  # 數據集劃分
from sklearn.preprocessing import StandardScaler  # 標準差標準化
from sklearn.svm import SVR  # 導入SVR庫

# 導出所需的數據
diabetes = load_diabetes()
X = diabetes[‘data‘]
y = diabetes[‘target‘]
# 數據集劃分
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size = 0.8, random_state = 123)
# 數據標準化
Standard = StandardScaler().fit(X_train)  # 訓練規則
x_train = Standard.transform(X_train)  # 應用規則
x_test = Standard.transform(X_test)  # 應用規則
# 開始構建
svr = SVR().fit(x_train, y_train)  # 訓練模型
y_pred = svr.predict(x_test)  # 預測標簽

  數據標準化的目的,是消除量綱差異。因為量綱差異會導致涉及距離計算和梯度下降的模型出現異常,例如某些特征重要性非常大,而某些特征則變得不那麽重要。

  至此,模型就構建完畢了。當然,很多時候我們還需要對構建的模型進行評價。

回歸模型評價

方法名稱 最優值 sklearn函數
平均絕對誤差 0.0 metrics. mean_absolute_error
均方誤差 0.0 metrics. mean_squared_error
中值絕對誤差 0.0 metrics. median_absolute_error
可解釋方差值 1.0 metrics. explained_variance_score
R方值,確定系數 1.0 metrics. r2_score

所有回歸模型評價函數的參數均為兩個:

  • 真實值,即在劃分時劃分的測試集標簽

  • 預測值,通過模型預測所得出的結果

一般情況下,單一一個回歸模型無法說明回歸模型好壞,需要多個回歸模型進行比較。

from sklearn import metrics
metrics.mean_absolute_error(y_test, y_pred)

60.62483115202473

metrics.mean_squared_error(y_test,y_pred)

5160.5160.043822698072

metrics.median_absolute_error(y_test,y_pred)

56.12912460415339

metrics.explained_variance_score(y_test,y_pred)

0.20385710303138893

metrics.r2_score(y_test,y_pred)

0.18096718824416846

  由這裏我們也可以看出,不同的評價方法也會得出不同的模型優劣。

  所以,要想構建一個好的模型,首先得確定一或多個適合的模型算法,之後進行交叉驗證等手段驗證,還得運用恰當的評價方法進行客觀評價。甚至即便如此,我們也還不能肯定地說:得到的模型,就是一個十全十美的最好的模型。

  下課。

回歸模型構建