原文链接:http://tecdat.cn/?p=21602
正则化(regularization)
正则化路径是在正则化参数lambda的值网格上计算套索LASSO或弹性网路惩罚的正则化路径 。 该算法速度快 , 可以利用输入矩阵x中的稀疏性 , 拟合线性、logistic和多项式、poisson和Cox回归模型 。 可以通过拟合模型进行各种预测 。 它还可以拟合多元线性回归 。 ”
例子
加载数据
这里加载了一个高斯(连续Y)的例子 。
as_data_frame(y)
- ## # A tibble: 100 x 1
- ## V1
- ## <dbl>
- ## 1 -1.2748860
- ## 2 1.8434251
- ## 3 0.4592363
- ## 4 0.5640407
- ## 5 1.8729633
- ## 6 0.5275317
- ## 7 2.4346589
- ## 8 -0.8945961
- ## 9 -0.2059384
- ## 10 3.1101188
- ## # ... with 90 more rows
cv.glmnet执行k-折交叉验证 .
- ## 执行岭回归
- glmnet(x , y
- ## “alpha=1”是套索惩罚, “alpha=0”是岭惩罚 。
- alpha = 0)
- ## 用10折CV进行岭回归
- cv.glmnet(
- ## 类型.测量:用于交叉验证的丢失 。
- type.measure = "mse",
- ## K = 10 是默认值 。
- nfold = 10,
- ##“alpha=1”是套索惩罚 , “alpha=0”是岭惩罚 。
- alpha = 0)
- ## 惩罚vs CV MSE图

文章图片
- ## 在误差最小λ处提取系数
- cv$lambda.min
- ## s:需要进行预测的惩罚参数“lambda”的值 。 默认值是用于创建模型的整个序列 。
- coef( s = lambda.min)
- ## 21 x 1 sparse Matrix of class "dgCMatrix"
- ## 1
- ## (Intercept) 0.149041059
- ## V1 1.302684272
- ## V2 0.035835380
- ## V3 0.719936146
- ## V4 0.036473087
- ## V5 -0.863490158
- ## V6 0.605750873
- ## V7 0.123446432
- ## V8 0.376890626
- ## V9 -0.040012847
- ## V10 0.105999328
- ## V11 0.240967604
- ## V12 -0.066363634
- ## V13 -0.042048935
- ## V14 -1.092107794
- ## V15 -0.119566353
- ## V16 -0.035859663
- ## V17 -0.038827463
- ## V18 0.061785988
- ## V19 -0.001409608
- ## V20 -1.079879797
- ## 截距估计应该剔除 。
- (coef(cv, s = lambda.min))[-1]

文章图片
KNNL和Hadi中提到的另一种选择lambda的方法是选择最小的lambda , 这样系数的轨迹是稳定的 , VIF变得足够小 。 在这种情况下 , VIF的定义必须包括惩罚因子lambda , 这在Hadi的p295和knll的p436中有说明 。

文章图片
是标准化的协变量矩阵. 是原始非标准化协变量的相关矩阵 . 该计算可定义如下 。

文章图片

文章图片

文章图片
- vif <- function(x, lambda) {
- ZtZ <- cor(x)
- diag(solve(ZtZ + lambdaI %*% ZtZ %*% solve(ZtZ + lambdaI)
- ##
- ggplot(mapping = aes(x = lambda, y = value, group = key, color = key)) +
- geom_line() +

文章图片
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。