对“task”的Assert失败:必须从类“Task”继承,但具有类“data.frame”

velaa5lx  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(149)

我使用mlr包训练了一个XGBoost模型。我需要对一个没有目标变量的测试集进行预测。我应该只预测目标变量。如果我这样做:

testF.pred <- predict(xgmodel,X_test)

错误为:

Error in predict.WrappedModel(xgmodel, X_test) : 
Assertion on 'task' failed: Must inherit from class 'Task', but has class 'data.frame'.

我应该定义一个任务来预测目标变量。但是,如果我想创建一个任务,

mytest_task <- makeClassifTask(data = X_test)
testF.pred <- predict(xgmodel,mytest_task)

错误为:

Error in assertString(target) : 
  argument "target" is missing, with no default

我应该如何创建一个任务来对没有目标变量的数据集进行预测?

dldeef67

dldeef671#

您可以使用newdata参数来执行此操作,即:

predict(xgmodel, newdata = X_test)

有关详细信息,请参见the help page
另外,我建议切换到mlr3,它是mlr的继任者。

相关问题