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