Я использую пакет R glinternet
для моделирования функций и их взаимодействия.У меня возникли некоторые проблемы с пониманием лямбда-параметра для функции glinternet.
Согласно справочному документу, содержащему последовательность значений в качестве аргумента 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
?
Бонусный вопрос: почему застрял с этим новым значением?На момент написания этой статьи он застрял на этом этапе на несколько часов.