2016-10-17 40 views
0

我正在使用插入符號包在我的數據集modDat上訓練彈性網模型。我採用網格搜索方法與重複交叉驗證配對,以選擇彈性網函數所需的λ和參數的最優值。我的代碼如下所示。如何檢索彈性淨係數?

library(caret) 
library(elasticnet) 

grid <- expand.grid(
     lambda = seq(0.5, 0.7, by=0.1), 
     fraction = seq(0, 1, by=0.1) 
    ) 

ctrl <- trainControl(
     method  = 'repeatedcv', 
     number  = 5, #folds 
     repeats = 10, #repeats 
     classProbs = FALSE 
    ) 

set.seed(1) 
enetTune <- train(
      y ~ ., 
      data = modDat, 
      method = 'enet', 
      metric = 'RMSE', 
      tuneGrid = grid, 
      verbose = FALSE, 
      trControl = ctrl 
     ) 

我可以使用y_hat <- predict(enetTune, modDat)預測,但我不能查看預測潛在的係數。

我試過coef(enetTune$finalModel)但返回的唯一東西是NULL。我懷疑我必須給coef()函數提供更多信息,但不知道如何執行此操作。另外,我想產生與最佳拉姆達和分數參數相關的50組係數(10次重複5次)的箱形圖。

回答

2

要查看的係數,使用predict

predict(enetTune$finalModel, type = "coefficients") 

關於如何獲取特定係數的更多信息,請?predict.enet

+0

看來,我得到許多lambda值的係數,我不覺得直覺。此外,lambda的值不限於在網格對象中指定的值。 – drumminactuary