自适应LASSO ## 执行自适应LASSO glmnet(x = y = ## 类型 。 度量:用于交叉验证的损失 。 ##“alpha=1”是套索惩罚 , “alpha=0”是岭惩罚 。 alpha = 1, ## ## 惩罚系数:...
自适应LASSO
- ## 执行自适应LASSO
- glmnet(x = y =
- ## 类型 。 度量:用于交叉验证的损失 。
- ##“alpha=1”是套索惩罚 , “alpha=0”是岭惩罚 。
- alpha = 1,
- ##
- ## 惩罚系数:可以对每个系数应用单独的惩罚因子 。 这是一个乘以“lambda”以允许差异收缩的数字 。 对于某些变量可以是0 ,这意味着没有收缩 , 而且这个变量总是包含在模型中 。 对于所有变量 , 默认值为1(对于“exclude”中列出的变量 , 默认值为无限大) 。 注意:惩罚因子在内部被重新调整为与nvars相加 , lambda序列将反映这种变化 。

文章图片
- ## 使用10折CV执行自适应套索
- ## 类型 。 度量:用于交叉验证的损失 。
- 类型 。 测量= " mse ",
- ## K = 10 是默认值 。
- nfold = 10,
- ## ‘alpha = 1’ 是套索惩罚 , 'alpha=0'是岭惩罚 。
- ##
- ## 惩罚系数:可以对每个系数应用单独的惩罚因子 。 这是一个乘以“lambda”以允许差异收缩的数字 。 对于某些变量可以为0 , 这意味着没有收缩 , 并且该变量始终包含在模型中 。 对于所有变量 , 默认值为1(对于“exclude”中列出的变量 , 默认值为无限大) 。 注意:惩罚因子在内部被重新调整为与nvars相加 , lambda序列将反映这种变化 。
- ## 惩罚vs CV MSE图

文章图片
- ## 在误差最小λ处提取系数
- lambda.min
- ## s:需要进行预测的惩罚参数“lambda”的值 。 默认值是用于创建模型的整个序列 。
- best_alasso_coef1
- ## 21 x 1 sparse Matrix of class "dgCMatrix"
- ## 1
- ## (Intercept) 0.1269539
- ## V1 1.3863728
- ## V2 .
- ## V3 0.7573538
- ## V4 .
- ## V5 -0.8937983
- ## V6 0.5718800
- ## V7 .
- ## V8 0.3654255
- ## V9 .
- ## V10 .
- ## V11 0.1824140
- ## V12 .
- ## V13 .
- ## V14 -1.1150736
- ## V15 .
- ## V16 .
- ## V17 .
- ## V18 .
- ## V19 .
- ## V20 -1.1268794
最终模型Rsquare
- ## R^2函数
- ## https://en.wikipedia.org/wiki/Coefficient_of_determination
- ## 总SS
- ss_tot <- sum((y - ybar)^2)
- ## 剩余 SS
- ss_res <- sum((y - yhat)^2)
- ## R^2 = 1 - ss_res/ ss_tot
- ## 调整R^2函数
- ## n个样本 , p个参数
- ## 获取 R^2
- r_sq(as.vector(y_cont), as.vector(predict(alasso1, newx =
- ##获得调整R ^ 2
- adj_r_sq(r_squared_alasso1, n = nrow(y_cont),
- ## 交叉验证测试集R^2
- ## alasso1_cv$cvm[1] 是截距模型的交叉验证测试集均方误差 。
- 1 - cvm[lambda == lambda.min] / cvm[1]
交叉验证测试集Rsquare
- lapply(unique( foldid), function(id) {
- ## 拟合排除测试集 (foldid == id)
- glmnet(x = x_cont[alasso1_cv$foldid != id,],
- y = y_cont[alasso1_cv$foldid != id],
- ## 使用模型拟合最佳lambda测试集Y?hat
- predict(fit, newx = x_cont[alasso1_cv$foldid == id,],
- ## 测试组 R^2
- 1 - sum((y - y_pred)^2) / sum((y - mean(y))^2)
- }) %>%
- ## [1] 0.8197796 0.9090972 0.9499495 0.8019303 0.8637534 0.7184797 0.8579943 0.9250376 0.8300891
- ## [10] 0.9188004
多项式例子
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。