1

我有一个多类问题:例如,我们可以获取数据集数据mtcars集,并且我们想要预测柱面数cyl

data(mtcars)

我想使用包装xgboost并安装它。caret为此,我使用为超参数创建网格

xgb_grid_param = expand.grid(
  nrounds = 1000,
  eta = c(0.01, 0.001, 0.0001),
  max_depth = c(2, 4),
  gamma = 0,
  colsample_bytree =1,
  min_child_weight =1  
)

我可以将训练控制参数创建为

xgb_tr_ctrl = trainControl(
  method = "cv",
  number = 5,
  repeats =2,
  verboseIter = TRUE,
  returnData = FALSE,
  returnResamp = "all",
  allowParallel = TRUE  

)

然后,当我尝试使用以下方法运行该train功能时caret

model <- train(factor(cyl)~., data = mtcars, method = "xgbTree",
         trControl = xgb_grid_param, tuneGrid=xgb_grid_param)

我得到错误::

 Error in trControl$classProbs && any(classLevels !=  make.names(classLevels)) :
  invalid 'x' type in 'x && y'

如何修复此错误以及如何指导xgbTree使用mlogloss来优化学习。

4

1 回答 1

0

对于另一种方法,我可以通过将标签属性设置为数据框/矩阵的最后一列来解决“'x && y'中的无效'x'类型”。

于 2017-10-10T08:29:55.783 回答