77
library(randomForest)
rf.model <- randomForest(WIN ~ ., data = learn)

ランダム フォレスト モデルを当てはめたいのですが、次のエラーが発生します。

Error in na.fail.default(list(WIN = c(2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L,  : 
missing values in object

16 個の数値属性でデータ フレームを学習させ、WIN はレベル 0 1 の係数です。

4

3 に答える 3

122

この質問に対する私の最初の反応は、ランダム フォレストが予測子の欠損値を処理しないことを「誰もが」知っているため、あまり研究努力をしていないというものでした。しかし、チェック?randomForestしてみると、これについてはもっとはっきりしている可能性があることを告白しなければなりません。

(ただし、ドキュメントにリンクされている Breiman のPDFには、欠損値がまったく処理されないことが明示されています。)

na.action私が見ることができた公式ドキュメントの唯一の明白な手がかりは、パラメーターのデフォルト値が であるということでしたna.fail。これは、新しいユーザーにとっては難解すぎるかもしれません.

いずれにせよ、予測子に欠損値がある場合、(基本的に) 2 つの選択肢があります。

  1. 別のツールを使用してください (rpart欠損値を適切に処理します)。
  2. 欠損値を代入する

驚くことではありませんが、randomForestパッケージにはこれを行うための関数がありますrfImpute。のドキュメントは?rfImpute、その使用の基本的な例を実行します。

少数のケースのみに欠損値がある場合は、na.action = na.omitそれらのケースを単純にドロップするように設定することもできます。

そしてもちろん、この答えは、問題が実際には単に欠損値を持っているというちょっとした推測です.

于 2011-12-04T02:10:54.097 に答える