1

パッケージrfcv内の関数を使用しようとしています。randomForest次のようなエラーメッセージが表示されます。

> rfcv1 <- rfcv(x[1:18750,], testClass[1:18750], cv.fold=2)
Error in cut.default(trainy, c(-Inf, quantile(trainy, 1:4/5), Inf)) : 
  'breaks' are not unique
> nrow(unique(x[1:18750,]))
[1] 18719
> length(unique(testClass[1:18750])) ## just 0's and 1's
[1] 2

> head(x)
       rfPred prediction
3  0.34776664 0.30138045
5  0.22345507 0.11159273
7  0.03478699 0.02156816
17 0.01008994 0.01071626
24 0.01738253 0.01546157
25 0.01143016 0.01278491

> range(x)
[1] 0.003907361 0.966005867

何かがおかしいと思われますか?一意の値が5で割り切れるようにデータを縮小しようとしましたが、それでも同じメッセージが表示されます。cv.fold=また、効果なしでいろいろな値を試してみました。

4

1 に答える 1

1

ここでは推測にすぎませんが、 のコードにrfcvは次のように表示されます。

if (classRF) {
   f <- trainy
}
else {
   f <- cut(trainy, c(-Inf, quantile(trainy, 1:4/5), Inf))
}

分類を行っている場合は、trainy引数を使用するだけです。それ以外の場合は、変数をカットしようとします。私の推測では、因数に変換する必要がある整数の 0 と 1 のベクトルがあると思います。

于 2011-12-07T18:03:07.813 に答える