【问题标题】:Tuning XGboost parameters In R在 R 中调整 XGboost 参数
【发布时间】:2016-03-01 04:54:16
【问题描述】:

我正在尝试使用 R 中的 caret 包调整参数,但得到一个

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"
)

【问题讨论】:

标签: r r-caret xgboost


【解决方案1】:

问题在于您的 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

【讨论】:

  • 值得注意的是,在 xgboost 中,参数 eta 仅用于提升树,因此如果您的方法是 'xgbLinear',则应该没有 eta 参数。
猜你喜欢
  • 2020-10-02
  • 2021-12-15
  • 2021-02-11
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 2022-08-16
  • 1970-01-01
  • 2019-03-10
相关资源
最近更新 更多