天天看點

拓端tecdat|R語言彈性網絡Elastic Net正則化懲罰回歸模型交叉驗證可視化

彈性網絡​​正則化​​同時應用 L1 範數和 L2 範數正則化來懲罰回歸模型中的系數。為了在 R 中應用彈性網絡正則化。在 LASSO回歸中,我們為 alpha 參數設定一個 '1' 值,并且在 嶺回歸中,我們将 '0' 值設定為其 alpha 參數。彈性網絡在 0 到 1 的範圍内搜尋最佳 alpha 參數。在這篇文章中,我們将學習如何在 R 中應用彈性網絡正則化。

首先,我們将為本教程建立測試​​資料集​​。

1.   
2.  df <- data.frame(a,b,c,z)
3.   
4.  x <- as.matrix(df)[,-4]
5.   
6.  for (i in 1:length(alpha))
7.  {
8.   
9.  bst$mse <- c(bet$mse, min(cg$cm))
10.  }
11.   
12.  inx <- which(bst$mse==min(bst$mse))
13.  betlha <- bs$a[inex]
14.  be_mse <- bst$mse[inex]      
拓端tecdat|R語言彈性網絡Elastic Net正則化懲罰回歸模型交叉驗證可視化

接下來,我們再次使用最佳 alpha 進行​​交叉驗證​​以獲得 lambda(收縮水準)。

1.  elacv <- cv(x, v)
2.   
3.   
4.   
5.  bestbda <- elacv$lambda.min      
拓端tecdat|R語言彈性網絡Elastic Net正則化懲罰回歸模型交叉驗證可視化
拓端tecdat|R語言彈性網絡Elastic Net正則化懲罰回歸模型交叉驗證可視化

現在,我們可以使用函數拟合具有最佳 alpha 和 lambda 值的模型。

  1.  coef(elamod)
拓端tecdat|R語言彈性網絡Elastic Net正則化懲罰回歸模型交叉驗證可視化

最後,我們可以使用模型預測測試資料并計算 RMSE、R 平方和 MSE 值。

拓端tecdat|R語言彈性網絡Elastic Net正則化懲罰回歸模型交叉驗證可視化
拓端tecdat|R語言彈性網絡Elastic Net正則化懲罰回歸模型交叉驗證可視化
1.  predict(elasod, x)
2.   
3.   
4.  cat(" RMSE:", rmse, "\n", "R-squared:", R2, "\n", "MSE:", mse)
5.      
拓端tecdat|R語言彈性網絡Elastic Net正則化懲罰回歸模型交叉驗證可視化