スポンサーリンク

Rでランダムフォレスト|変数の重要度をプロットする(IncNodePurit, %INcMSE)

スポンサーリンク
統計
スポンサーリンク
スポンサーリンク

ランダムフォレストを使って、変数の重要度をチェックしたい時は、varImpPlot()を使います。

MeanDecreaseAccuracyによる重要度のプロットが欲しかったのに、varImpPlot()でMeanDecreaseGiniによる結果しか返されなかったのであれこれ調べたところ、割と些細なことで自分がスタックしていただけでした。自戒の意味も込めて記事にします。

スポンサーリンク

randomForest()で、”importance= TRUE”と指定する

最初のrandomForest()の時点において、importanceを指定しないと、%IncMSEの結果をプロットしてくれません。

RF_model <- randomForest(Ozone ~., data= airquality, na.action = na.omit, importance=TRUE)
 
 varImpPlot(RF_model) 

RF_model <- randomForest(Ozone ~., data= airquality, 
                       na.action = na.omit) #これが大事
varImpPlot(RF_model)     


以下のコードだと、IncNodePurityのみがプロットされます。

意外と時間をとられてしまい悔しいので、備忘録として残しておきます。誰かのお役に立てれば幸いです。

今回は作図のデモを目的のみにしています。airquarityのデータを使用しました。実際にランダムフォレストを行う際には、使用するデータセットのサンプルサイズや変数について各自ご検討ください。

コメント