回歸模型構建
阿新 • • 發佈:2018-08-31
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
由這裏我們也可以看出,不同的評價方法也會得出不同的模型優劣。
所以,要想構建一個好的模型,首先得確定一或多個適合的模型算法,之後進行交叉驗證等手段驗證,還得運用恰當的評價方法進行客觀評價。甚至即便如此,我們也還不能肯定地說:得到的模型,就是一個十全十美的最好的模型。
下課。
回歸模型構建