我有一个涉及分类预测变量Var1
&的二元分类问题Var2
:
> head(traindata)
# ID Var1 Var2 response
# 1 101 -2 0 0
# 2 201 0 -1 1
# 3 301 0 -2 0
# 4 401 -1 0 0
# 6 501 0 -1 1
训练集包括所有-2,-1,0
作为级别,Var1
但测试集不包括-1
作为输入Var1
。
我确实确保Var1
包含测试集中的所有级别:
testdata$Var1 <- factor(testdata$Var1, levels = levels(traindata$Var1)
因此,即使测试数据不包含-1
在其记录中,也确实存在空白因子水平。
但是当我尝试使用以下方法为测试集创建任务时:
testtask <- makeClassifTask(data = testdata, target = "response", positive = "1")
我收到一条警告,指出已删除列的空因子级别:Var1
我也尝试设置fixup.data = "no"
参数。它给出了以下错误:
testtask <- makeClassifTask(data = testdata, target = "response", positive = "1", fixup.data = "no")
# Error in (function (cn, x) :
# Column 'Var1' contains empty factor levels.
PS:我不是自己重新采样测试数据,它是我不知道响应变量的外部数据集。
此外,在创建任务之前,我确实为测试集中的响应变量重新编码了虚拟值。