如何指示插入符号中的xgboost使用mlogloss进行优化

时间:2016-02-15 19:23:06

标签: r parameters classification xgboost

我有一个多类问题:例如,我们可以采用数据集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来优化学习。

1 个答案:

答案 0 :(得分:0)

另一种方法我可以解决&#34;无效&#39; x&#39;输入&#39; x&amp;&amp; ý&#39;&#34;通过将label属性设置为数据框/矩阵的最后一列。