私はランダムフォレストモデルに適合したいと思いますが、私は、私はRで不足している(NA)値を持つランダムフォレストを構築する方法はありますか?
Error in na.fail.default(list(speed = c(NA, 4, 7, 7, 8, 9, 10, 10, 10, :
missing values in object
私はランダムフォレストモデルに適合したいと思いますが、私は、私はRで不足している(NA)値を持つランダムフォレストを構築する方法はありますか?
Error in na.fail.default(list(speed = c(NA, 4, 7, 7, 8, 9, 10, 10, 10, :
missing values in object
次のエラーを取得する
library(randomForest)
cars$speed[1] <- NA # to simulate missing value
model <- randomForest(speed ~., data=cars)
を呼び出すときに、この質問への私の最初の反応は、それが多くの研究を示さなかったということでしたランダムなフォレストが予測変数の欠損値を処理しないことを「誰もが知っている」からです。しかし、?randomForest
をチェックすると、これについてもっとはっきりとわかるはずです。
(BreimanのPDF、が明示的に欠損値が単純にすべてで処理されていないことを言うん文書でにリンクされている。)
は、私が見ることができる公式ドキュメントの唯一の明白な手がかりであることが確認されたデフォルト値についてna.action
のパラメータはna.fail
です。新しいユーザーにとってはあまりにも曖昧な場合があります。
あなたの予測因子は、欠損値を持っている場合いずれにせよ、あなたは(基本的に)二つの選択肢があります。
rpart
ハンドルを。)
randomForest
パッケージにはこれだけの機能があります(rfImpute
)。 ?rfImpute
のドキュメントは、その使用の基本的な例を示しています。
少数のケースに欠損値がある場合は、na.action = na.omit
を設定して、単にそのケースを削除することもできます。
もちろん、この回答はあなたの問題が実際には値が欠落していることを少し推測しています。
OP手段の最初の引数に 'WIN〜.'が何であるか知っていますか?これは確かに質問するのに最適な場所ではありませんが、あなたが知っているかどうか疑問に思っていました。ありがとう。 –
@ user273158これは 'formula'引数を使って'?randomForest'の中で文書化されているモデル式です。 Rに応答変数として 'WIN'を使用するよう指示し、' .'は「データフレーム内の他のすべての変数」を意味する略語です。したがって、応答変数として「WIN」を使用するようにRに指示し、使用可能な他のすべての変数は予測変数です。詳細は '?formula'を参照してください。 – joran
欠損値が有益である可能性があるなら、あなたはnew.var
はyour_dataset
に追加するように設定大きすぎる場合、あなたが使用することができ、欠損値をINPUTEと(new.vars<-is.na(your_dataset)
付き)追加のバイナリ変数を追加し、それがエラーを下げるかどうかを確認することができますそれだけで、varImpPlot
とsignificiant変数を選択し、your_dataset
に追加する、あなたはまた、行方不明の変数が有益会計であれば、これはオフtopick答えではありませんNA
のnew.var <- rowSums(new.vars)
の数をカウントするyour_dataset
に単一の変数を追加しようとすることができ不完全帰属手続きのみによるモデル誤差の増加を補正することができる。
不足している値は、無作為な原因によるものであり、社会実験の設定では頻繁に一般的です。
現状では、この質問は非常に難解です。いくつかのサンプルデータで質問を更新できますか? – Chase
@ MattO'Brien質問の質は、質問自体のメリットではなく、人数に基づいて議論されることも面白いです。そして、@ジョランは何が尋ねられているのか把握し、質問者の問題のための良い解決策であると思われるものを提供しても問題はなかったので、その答え。 – user7610