r语言 - MLR的重采样误差



我的任务是对回归任务进行分层,数据看起来像

f1, f2, f3,…m1, m2, p1, p2, p3…

,其中f_i为数值,其他列为因子和整数。

现在我定义了一个自定义度量m1,在运行下面的

之后
measures1 = list(m1, medae) 
measures2 = lapply(measures1, setAggregation, train.mean)
measures = c(measures1, measures2)
# rdesc = makeResampleDesc("CV", iters = 3, predict = "both", stratify.cols = "Iodine" ) #Default is 2/3, both=train&test
rdesc = makeResampleDesc("CV", iters = 3, predict = "both" ) #Default is 2/3

错误提示

[Resample] cross-validation iter: 1
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : 
  contrasts can be applied only to factors with 2 or more levels

当我将输入数据帧子集仅包含数值数据时,没有这样的错误,实际上只有数值数据对预测有用,但我需要在训练-测试分割中对其他列进行分层。有人知道出了什么问题吗?

使用

rapply(dat,function(x)length(unique(x)))

我可以发现有一列只有一个唯一值,问题解决了。

相关内容

  • 没有找到相关文章

最新更新