我有一个多类问题:例如,我们可以采用数据集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
来优化学习。
答案 0 :(得分:0)
另一种方法我可以解决&#34;无效&#39; x&#39;输入&#39; x&amp;&amp; ý&#39;&#34;通过将label属性设置为数据框/矩阵的最后一列。