RでrandomForestを試してみる

最後に,ランダムフォレストを試してみます.
こいつはe1071に入ってはいないので,別途インストールが必要です.

インストール

やっぱりこれだけ...簡単すぎる.

> install.packages('randomForest')

iris実行コード&結果

これまでのコードとほぼ同じで,特にrandomForest用のパラメータを加えなくても動作します.
チューニング云々は別の機会に.

library(randomForest)

train <- seq.int(1, 150, by=2)
test <- setdiff(1:150, train)

iris.rf <- randomForest(Species~., data=iris[train,])
iris.pred <- predict(iris.rf, iris[test,])
table(iris[test,5], iris.pred)

結果はこのとおり.SVMやナイーブベイズと同等の正答率になっています.

randomForest 4.6-6
Type rfNews() to see new features/changes/bug fixes.
            iris.pred
             setosa versicolor virginica
  setosa         25          0         0
  versicolor      0         24         1
  virginica       0          2        23

breast-cancer data

以下,コード.

library(randomForest)

bcdata <- subset(read.csv('~/Downloads/breast-cancer-wisconsin.data', head=TRUE),
                 select=-Samplecodenumber)
train <- seq.int(1, 699, by=2)
test <- setdiff(1:699, train)

breast.rf <- randomForest(Class~., data=bcdata[train,])
breast.pred <- predict(breast.rf, bcdata[test,])
table(bcdata[test,10], breast.pred)

実行結果.こちらはちょっとイマイチ.
チューニングで結果は変わるかもしれないので,いずれ見直します.

randomForest 4.6-6
Type rfNews() to see new features/changes/bug fixes.
           breast.pred
            benign malignant
  benign       223         8
  malignant      8       110