R でランダムフォレストを実行する方法。
ランダムフォレストとバギングの違い
ランダムフォレストとバギングの違いは、こちらの記事を参照。
R でランダムフォレストを実行するパッケージの準備
パッケージはrandomForestというそのままの名前のパッケージを使う。
最初に一回だけインストールする。
install.packages("randomForest")
使えるように呼び出しておく。
library(randomForest)
R のランダムフォレストで決定木を作る例
irisデータを使って、ランダムフォレストで決定木を作ってみる。
set.seed()でランダム変数のシードを設定しておき、再現性を持たせる。
Speciesをそれ以外の変数で予測する決定木を作成するスクリプトは以下の通り。
set.seed(71)
iris.rf <- randomForest(Species ~ ., data=iris)
結果は以下のように表示される。ランダムサンプリングを使って、決定木は500個作っている。エラー率は5.33%
Out Of Bag (OOB)とは、3分の1をテスト用に外しておいて学習して、テストデータの結果でConfusion matrixを作り検討していることを意味している。
> iris.rf
Call:
randomForest(formula = Species ~ ., data = iris)
Type of random forest: classification
Number of trees: 500
No. of variables tried at each split: 2
OOB estimate of error rate: 5.33%
Confusion matrix:
setosa versicolor virginica class.error
setosa 50 0 0 0.00
versicolor 0 47 3 0.06
virginica 0 5 45 0.10
R でランダムフォレストを実行した結果 重要な変数を表示する
重要な変数は、ジニ不純度の減少量で見る。
グラフではMean Decrease Giniと表示される。
ジニ不純度が大きく下がる変数が、識別に役立つ重要な変数という意味。
不純度が下がって、純度が増すということは、より純粋なグループ、つまりよりよく分けることができる変数ということになる。
重要な変数プロットでは、Petal.WidthとPetal.Lengthが重要であることが示された。
varImpPlot(iris.rf)
まとめ
統計ソフトRでランダムフォレストを実行したい場合、randomForestパッケージを使う。
randomForest()で解析が実行できて、varImpPlot()で重要な変数が図示される。
コメント