gpt4 book ai didi

r - 格姆内特。相同 lambda 向量的不同结果,取决于它是由 glmnet 计算的还是作为参数传递的

转载 作者:行者123 更新时间:2023-12-05 00:26:06 24 4
gpt4 key购买 nike

当 lambda 向量由 glmnet 算法选择时,与在函数调用中给出时相​​比,具有岭正则化的 Glmnet 计算第一个 lambda 值的系数是不同的。例如,两个模型(我希望是相同的)

> m <- glmnet(rbind(c(1, 0), c(0, 1)), c(1, 0), alpha=0)
> m2 <- glmnet(rbind(c(1, 0), c(0, 1)), c(1, 0), alpha=0, lambda=m$lambda)

给出完全不同的系数:
> coef(m, s=m$lambda[1])
3 x 1 sparse Matrix of class "dgCMatrix"
1
(Intercept) 5.000000e-01
V1 1.010101e-36
V2 -1.010101e-36

> coef(m2, s=m2$lambda[1])
3 x 1 sparse Matrix of class "dgCMatrix"
1
(Intercept) 0.500000000
V1 0.000998004
V2 -0.000998004

不同的数据集也会发生同样的情况。如果没有为 glmnet 提供 lambda,则 lambda.max coef(m, s=m$lambda[1]) 的所有系数(截距除外)都非常接近于零,并且任何 X 的预测都相等(由于舍入? )。

我的问题:
  • 为什么会这样?差异是故意的吗?
  • 最大 lambda coef(m, s=m$lambda[1]) 的系数究竟是如何确定的?
  • 最佳答案

    这是一个棘手的问题。当 alpha=0 时,lambda 的“起始”值(除截距以外的所有系数都为零时的值)为无穷大。由于我们想要生成一个从起始值以几何方式趋于零的值网格,无穷大没有多大用处。因此,我们将其作为 alpha=0.001(在本例中为 500)时使用的起始值,这是所见的最大 lambda。

    因此,在 m 中,系数实际上为零,但报告的最大 lambda 是 500(同时它确实是无穷大)

    在 m2 中,我们实际上为第一个位置生成了 500 的拟合,并且系数不完全为零。

    为了验证我所说的,请注意后续系数都匹配。

    特雷弗·哈斯蒂

    关于r - 格姆内特。相同 lambda 向量的不同结果,取决于它是由 glmnet 计算的还是作为参数传递的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22861233/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com