ランダムフォレスト、サポートベクターマシン の Rでの書き方メモ

ランダムフォレスト、サポートベクターマシン の Rでの書き方メモ

○ RnadomForest
randomForestパッケージを使う。
ランダムフォレストは、decision tree を沢山取って、集団学習するものだそうだ。


randomForest関数で、
1. サンプルをブートストラップしてくる。
2. ブートストラップしてきた数だけ、複数のモデルをつくることができる。
ということをまとめて行ってくれる。


Predict関数で、
3. すべてのモデルで計算してみて (分類:多数決、回帰:平均) を行い、それがフォレストの予測結果とする。
を自動で、行ってくれる。


library(randomForest)
# 普通の回帰の場合と同じ。 デフォルトでは500くらいTreeを作っている?
rf1 = randomForest( y~. , data = vowel.train, prox=TRUE)
# ※  vowel.train は library(ElemStatLearn)の中のデータ

# Predict は簡単にこう書ける。
predict(rf1, vowel.test)

# エラーレート
sum(predict(rf1, vowel.test) != vowel.test$y ) / nrow(vowel.test)  


# 個別の木を得る。以下は2nd treeの例
getTree(rf1, k=2)

※ getTreeの結果は、わかりにくいが、ふつうのDecisionTreeになっているよう。
詳しくはマニュアル参照。
自分で読んだ感じでは、
left daughter, right daughter
 次に何番目のrowを参照するか。
 0になっているのは、terminal (一番端っこ)。
split var
 分類するのに使った variable (variableの順番は不明。自分で書いた formula 順か?)
split point
 上記のvariableのTRUE/FALSE分ける値
status
 ターミナルなら-1
prediction
 結果予測値。(terminalでないなら、値は0)



Support Vector Machine

サポートベクターマシンはよくわからないけど、以下のように書く。

library(e1071)
# 普通の回帰の場合と同じ。
sv1 = svm(y~., data=vowel.train)


# Predict は簡単にこう書ける。
predict(sv1, vowel.test)