RでランダムフォレストやるならRboristかrangerか

最近Rにおけるランダムフォレストの高速な実装としてrangerパッケージが発表された。
開発者が既存のランダムフォレスト実装パッケージと比較した論文をarxivに掲載している。
http://arxiv.org/pdf/1508.04409v1.pdf

rangerは速い…のか?

既存のランダムフォレスト実装としてrandomForest、randomForest、bigrf、randomForestSRC、Random Jungle、Rboristが比較されている。
私が扱うデータはほとんどがサンプルサイズ>>特徴量数というデータなので、Table2とFigure4が比較結果として参考になる。
Table2ではサンプルサイズ100,000、特徴量数100というデータに対して各パッケージの処理速度とメモリ消費量を比較している。
ざっとみた感じ高速なのは二値型の特徴量(dichotomous features)に対するトップ3はranger→Random Jungle→Rboristで、連続値型の特徴量(continuous features)に対するトップ3はRborist→randomForest(mclapplyで並列化したもの)→rangerである。
メモリ消費量はRboristが最も少なく、次いでRandom Jungle、rangerとなっている。
これを見る限り、私が扱うようなデータにおいてはRboristが高速でメモリ消費量も少なく、向いてる印象。
Figure4にはrangerとRboristについてサンプルサイズを横軸、特徴量数を縦軸にとって、それぞれの組み合わせでどちらが速いかを示している。
サンプルサイズ100,000の場合だと特徴量750あたりを超えるとrangerが速く、それを下回るとRboristが速いようである。
なお、論文中にはサンプルサイズを特徴量数がはるかに上回るようなデータについても検証されており、これはrangerが優勢である。

結論

せっかくだけど私の業務にはRboristが向いているようだ。
Rboristの使い方についてはきっと誰かが書くことでしょう。

enjoy!!