彈性網絡正則化同時應用 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]
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAnYldHL0FWby9mZvwFN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CO5UTM2ETZiZGMwYTOyImNzYzX4ITNxITM5AzLcFTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
接下來,我們再次使用最佳 alpha 進行交叉驗證以獲得 lambda(收縮水準)。
1. elacv <- cv(x, v)
2.
3.
4.
5. bestbda <- elacv$lambda.min
現在,我們可以使用函數拟合具有最佳 alpha 和 lambda 值的模型。
- coef(elamod)
最後,我們可以使用模型預測測試資料并計算 RMSE、R 平方和 MSE 值。
1. predict(elasod, x)
2.
3.
4. cat(" RMSE:", rmse, "\n", "R-squared:", R2, "\n", "MSE:", mse)
5.