ランダムフォレスト、サポートベクターマシン の 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)
サポートベクターマシンはよくわからないけど、以下のように書く。
library(e1071) # 普通の回帰の場合と同じ。 sv1 = svm(y~., data=vowel.train) # Predict は簡単にこう書ける。 predict(sv1, vowel.test)