R包glinternet中的lambda如何处理?

时间:2019-02-24 16:34:35

标签: r linear-regression

我正在使用R glinternet {{3}}对特征及其相互作用进行建模。我在理解glinternet函数的参数lambda时遇到了一些麻烦。

根据帮助文档提供的值序列作为lambda参数,可防止函数使用其自己的lambda值序列。但是实际行为尚不清楚。

在此示例中,我提供了一个lambda值,并将其提取:

> fit = glinternet(x, y, numLevels, family="binomial", verbose=TRUE, lambda=c(0.001))

输出:

 lambda  2 :  0.001 
 Convergence in 62 iters, obj=0.30688066

这是fit对象:

> fit
Call: glinternet(X = x, Y = y, numLevels = numLevels, lambda = c(0.001), 
    family = "binomial", verbose = TRUE)
   lambda objValue cat cont catcat contcont catcont
1 0.00177    0.334   0    0      0        0       0
2 0.00100    0.307   0    1      0        3       0

好的,因此,我确实感到惊讶的是,使用了一个附加值lambda=0.00177,但是只要有我想要的值-lambda=0.001-在其中,我很好。

但是,lambda的其他值将被忽略,并且程序包将尝试自己的值(在这种情况下,它会卡住):

> fit = glinternet(x, y, numLevels, family="binomial", verbose=TRUE, lambda=c(0.001823))

输出(停留在此行):

lambda  2 :  0.001767784

为什么lambda=0.001823被忽略了,值lambda=0.001767784是从哪里来的?

奖金问题:为什么坚持使用这个新值?在撰写本文时,它已经停留在这一点上了几个小时。

0 个答案:

没有答案