天天看点

拓端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正则化惩罚回归模型交叉验证可视化