0

私のタスクは、回帰タスクを階層化することです。データは次のようになります

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

入力データフレームを数値データのみを含むようにサブセット化すると、そのようなエラーは発生しません。実際、数値データのみが予測に役立ちますが、トレーニングとテストの分割で階層化するには他の列が必要です。誰が何が悪いのか知っていますか?

4

1 に答える 1

0

を使用して判明

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

一意の値が 1 つしかない列が 1 つあることがわかり、問題は解決しました。

于 2016-10-04T21:02:18.900 に答える