Hatena::ブログ(Diary)

盆栽日記

2015-08-28

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!!

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。