統計ER

統計ソフトRの使い方を中心に、統計解析方法の解説をするブログ。ありそうでなかなか見つからないサンプルサイズ計算などニッチな方法について紹介しています。

統計ソフトRでランダムフォレストを行うには?

ブログランキングに参加しています。
まずはぽちぽちっとお願いします。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
にほんブログ村 科学ブログ 数学へ

アンサンブル学習でポピュラーなのがランダムフォレスト。

統計ソフトRでランダムフォレストをやってみた。

  

toukeier.hatenablog.com

 

 

パッケージの準備

パッケージはrandomForestというそのままの名前のパッケージを使う。

最初に一回だけインストールする。

install.packages("randomForest")

 

使えるように呼び出しておく。

library(randomForest)

 

ランダムフォレストで決定木を作る例

irisデータを使って、ランダムフォレストで決定木を作ってみる。

set.seed()でランダム変数のシードを設定しておき、再現性を持たせる。

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

 

重要な変数を表示する

重要な変数は、ジニ不純度の減少量で見る。

グラフではMean Decrease Giniと表示される。

ジニ不純度が大きく下がる変数が、識別に役立つ重要な変数という意味。

不純度が下がって、純度が増すということは、より純粋なグループ、つまりよりよく分けることができる変数ということになる。

重要な変数プロットでは、Petal.WidthとPetal.Lengthが重要であることが示された。

 

varImpPlot(iris.rf)

 

f:id:toukeier:20180911200533p:plain

まとめ

統計ソフトRでランダムフォレストを実行したい場合、randomForestパッケージを使う。

randomForest()で解析が実行できて、varImpPlot()で重要な変数が図示される。