4

リッジ正規化を使用した Glmnet は、ラムダ ベクトルが glmnet アルゴリズムによって選択された場合と、関数呼び出しで指定された場合とで、最初のラムダ値の係数を異なる方法で計算します。たとえば、2 つのモデル (同一であると予想されます)

> 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 に対して等しくなります (丸めのため? )。

私の質問:

  1. これはなぜですか?違いは意図的なものですか?
  2. 最大ラムダ coef(m, s=m$lambda[1]) の係数はどのくらい正確に決定されますか?
4

1 に答える 1