Что касается члена перехвата логистической регрессии LASSO с использованием пакета Caret в R

Я установил модель логистической регрессии LASSO, используя пакет каретки следующим образом:

require(ISLR)
require(caret)

mod_fitg <- train(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Volume,
                  data=Smarket, method = "glmnet", 

                  tuneGrid=expand.grid(
                    .alpha=1,
                    .lambda=(0.002)),
                  family="binomial")


coef(mod_fitg$finalModel, mod_fitg$bestTune$lambda)

6 x 1 sparse Matrix of class "dgCMatrix"
                       1
(Intercept) -0.088472239
Lag1        -0.065571845
Lag2        -0.035641733
Lag3         0.003564326
Lag4         0.001534829
Volume       0.110035397 

Вышеупомянутые коэффициенты являются стандартизированными коэффициентами по умолчанию, пакет glmnet стандартизирует коэффициенты. В этих выходных данных я хочу узнать значение термина перехвата.

Потому что после стандартизации не должно быть никакого члена перехвата (согласно коэффициентам модели, использующим ту же модель с использованием пакета glmnet)

y <- Smarket$Direction
x <- model.matrix(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Volume, Smarket)[, -1]

lasso.mod <- glmnet(x,y, alpha = 1, lambda = 0.002,family='binomial')

lasso.mod$beta

5 x 1 sparse Matrix of class "dgCMatrix"
                 s0
Lag1   -0.065571799
Lag2   -0.035641706
Lag3    0.003564320
Lag4    0.001534812
Volume  0.110035335

1 ответ

Ваши две модели одинаковы, просто в lasso.mod коэффициент пересечения сохраняется в lasso.mod$a0.

lasso.mod$a0
#          s0 
# -0.08847216 
Другие вопросы по тегам