我正在使用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
是从哪里来的?
奖金问题:为什么坚持使用这个新值?在撰写本文时,它已经停留在这一点上了几个小时。