ランダムフォレストのOOB errorのプロットに凡例をつける

 今回は、ランダムフォレストにおけるOOB errorを視覚化する際に、凡例をつける方法を紹介します。以下は、irisデータに対して、ランダムフォレストを実行した例です。

# ランダムフォレスト
library(randomForest)
set.seed(1)
rf.model <- randomForest(Species ~ ., data = iris)
# 結果の確認
rf.model

 上記のスクリプトを実行すると、以下のような結果が表示されます。

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: 4.67%
Confusion matrix:
           setosa versicolor virginica class.error
setosa         50          0         0        0.00
versicolor      0         47         3        0.06
virginica       0          4        46        0.08

 そして、木の数と誤判別率の関係を視覚化するには、plot関数を使います。

# 木の数と誤判別率の関係を視覚化
plot(rf.model)

 上記のスクリプトを実行すると、以下のような結果が表示されます。しかし、Rの出力(カラーパレット)に慣れていない人には、それぞれの線が何を表しているのかが自明ではありません。

f:id:langstat:20141126145619p:plain

 この図に凡例をつけるには、以下のようにします。*1

# 凡例の表示
legend("topright", colnames(rf.model$err.rate), col = 1 : ncol(rf.model$err.rate), fill = 1 : ncol(rf.model$err.rate), cex = 0.8)

 上記のスクリプトを実行すると、以下のような凡例が表示されます。*2

f:id:langstat:20141126145855p:plain

 以上、小ネタでした。

*1:OOBに関する情報は、$err.rateというところにあります。

*2:なお、Rのデフォルトのカラーパレットは、black, red, green3, blue, cyan, magenta, yellow, grayの8色です。従って、9つ以上のオブジェクトを色分けするには、独自のカラーパレットを指定する必要があります。