我正在尝试在R中安装XgBoost模型,但是当我运行它时,我收到错误:
"至少有一个类级别不是有效的R变量名称;这会在生成类概率时导致错误,因为变量名称将转换为X0,X1。请使用可用作有效R变量名称的因子级别"。
这是我的代码:
xgb_grid = expand.grid(
nrounds =100,
eta=c(0.3,0.1, 0.01, 0.001, 0.0001),
gamma=c(0,1),
max_depth=c(2,4,6,8,10),
min_child_weight=(0:200)*0.1,
subsample=(0:100)*0.01,
colsample_bytree=(0:100)*0.01
)
xgb_trcontrol = trainControl(
method = "repeatedcv",
number = 5,
verboseIter = TRUE,
returnData = FALSE,
returnResamp = "all",
classProbs = TRUE,
summaryFunction = twoClassSummary,
allowParallel = TRUE
)
caret::train()
xgb_train <- caret::train(
x = as.matrix(train_n[,predictorsNames]),
y= as.factor(train_n[,outcomeName]),
trControl =xgb_trcontrol,
tunegrid = xgb_grid,
method = "xgbTree",
metric = "ROC"
)
从我读到的,它与y因子的水平有关。但同样,对于Xgboost,我记得所有变量都必须是数字,包括y。还是我错了?我该如何解决?