web-dev-qa-db-ja.com

RでのXGboostパラメーターの調整

Rのキャレットパッケージを使用してパラメーターを調整しようとしていますが、

Error in train.default(x = as.matrix(df_train %>% select(-c(Response,  : 
  The tuning parameter grid should have columns nrounds, lambda, alpha 

列nrounds、lambda、alphaが存在する場合でも、モデルをトレーニングしようとするたびに。

library(caret)
library(xgboost)
library(readr)
library(dplyr)
library(tidyr)

 xgb_grid_1 <- expand.grid(
  nrounds= 2400,
  eta=c(0.01,0.001,0.0001),
  lambda = 1,
  alpha =0
)

xgb_trcontrol <- trainControl(
  method="cv",
  number = 5,
  verboseIter = TRUE,
  returnData=FALSE,
  returnResamp = "all",
  allowParallel = TRUE,

)

xgb_train_1 <- train(
  x = as.matrix(df_train %>% select(-c(Response, Id))),
  y= df_train$Response,
 trControl = xgb_trcontrol,
 tuneGrid = xgb_grid_1,
 method="xgbLinear"
)
8
AppleGate0

問題はxgb_grid_1にあります。行etaを削除すると、機能します。

Xgboostとcaretの標準的なチューニングオプションは、「nrounds」、「lambda」、「alpha」です。イータではありません。 modelLookup関数を使用して、使用可能なモデルパラメーターを確認します。 etaも使用する場合は、チューニングでこの追加パラメーターを使用するために、独自のキャレットモデルを作成する必要があります。

modelLookup("xgbLinear")
      model parameter                 label forReg forClass probModel
1 xgbLinear   nrounds # Boosting Iterations   TRUE     TRUE      TRUE
2 xgbLinear    lambda     L2 Regularization   TRUE     TRUE      TRUE
3 xgbLinear     alpha     L2 Regularization   TRUE     TRUE      TRUE
7
phiver