2017-11-28 2 views
0

가 나는 다양한 도구를 사용하여 계수를 플롯 할 수 있습니다 캐럿glmnet 모델의 계수를 데이터 프레임으로 가져 오는 방법은 무엇입니까?

pen.params = expand.grid(lambda = exp(seq(-3,3,0.05)) , alpha = 1) 

model.penalized = train(y~., 
         data = d.train, 
         trControl = fitControl, 
         tuneGrid = pen.params, 
         method = 'glmnet' 
         ) 

와 glmnet 모델을 훈련했지만, 나는 dataframe에서 그들을 가지고 싶습니다. 나는 tidy을 사용하여 계수 을 추출하기 위해 broom을 사용해 보았습니다. 그러나 이것은 0이 아닌 계수만을 제공합니다.

모델에서 계수 및 패널티 매개 변수를 추출하고 데이터 프레임의 열로 쉽게 지정할 수 있습니까?

답변

1
dfCoef <- data.frame(lambda=model.penalized$finalModel[['lambda']], 
      as.matrix(t(model.penalized$finalModel[['beta']]))) 
dfCoef[1:10,] 

#   lambda   X2   X3   X4   X5 
# s0 0.1608367514 0.000000000 0.000000000 0.000000000 0.00000000 
# s1 0.1465484577 0.000000000 0.000000000 0.000000000 0.01347397 
# s2 0.1335294966 0.000000000 0.000000000 0.000000000 0.02575094 
# s3 0.1216671042 0.000000000 0.000000000 0.000000000 0.03693727 
# s4 0.1108585340 0.000000000 0.000000000 0.000000000 0.04712983 
# s5 0.1010101674 0.000000000 0.000000000 0.000000000 0.05641691 
# s6 0.0920367025 0.000000000 0.000000000 0.000000000 0.06487896 
# s7 0.0838604155 0.000000000 0.000000000 0.000000000 0.07258926 
# s8 0.0764104873 0.000000000 -0.006189269 0.000000000 0.07905622 
# s9 0.0696223902 0.000000000 -0.011967900 0.000000000 0.08493612 
# s10 0.0634373290 0.003340502 -0.016868476 0.000000000 0.09006299 
# ... 
+0

감사합니다. –

관련 문제