39. “party”: Sample Codes
cforest(formula = Y ~ X,
data = Data,
controls = cforest_unbiased(ntree = 10))
Data is a dataframe , consisting of Y and X
2/1/2018 Shuma Ishigami 39
41. “randomForestSRC”: Sample Codes
rfsrc(formula = Y ~ X,
data = as.data.frame(Data),
na.action = "na.impute",
ntree = 100)
Data is a dataframe , consisting of Y and X
2/1/2018 Shuma Ishigami 41
42. “ranger”: Sample Codes
ranger(formula = Y ~ X,
data = as.data.frame(Data),
num.trees = 100)
Data is a dataframe , consisting of Y and X
2/1/2018 Shuma Ishigami 42
46. Comparison Table
random
Forest
party partykit random
ForestSRC
ranger Rborist grf
a Yes.
質的.
Levels < 53.
Error with
NA.
Yes.
わからない.
100でも大
丈夫.
NAに対応.
Yes.
わからない.
Levels < 31.
NAに対応.
Yes.
質的.
100でも大
丈夫.
NAに対応.
Yes.
質的.
100でも大
丈夫.
Error with
NA.
Yes.
わからない.
100でも大
丈夫.
Error with
NA.
No.
Factorを
食ってくれ
ない.
b Yes.
量的.
Error with
NA.
Yes.
わからない.
NAに対応.
Yes.
わからない.
NAに対応.
Yes.
量的.
NAに対応.
Yes.
量的.
Error with
NA.
Yes.
量的.
Error with
NA.
Yes.
量的.
NAに対応.
2/1/2018 Shuma Ishigami 46
47. random
Forest
party partykit random
ForestSRC
ranger Rborist grf
c Impute関
数
なし NAはランダ
ムもしくは
多数のノー
ドに分ける
Impute用
のoption,
functionあ
り
なし なし なし
d Yes Yes Yes Yes Yes Yes Yes
e Yes Yes Yes Yes Yes Yes No
f Yes
3.96 sec
Yes
331.79 sec
Not end in
sufficient
time
Yes
8.44 sec
Yes
5.07 sec
Yes
2.79 sec
Yes
NA
g With
external
packages.
なし Mclapplyで
マルチコア
対応.
OpenMPと
合わせて可
能.
スレッドの
数を変更可
能.
デフォルト
でコアを全
部使用.
スレッドの
数を変更可
能.
Notes: 問fのテストには、ランダムに生成した、2値factor型の目的変数と10個の連続値の説明変数を使用した。サ
ンプル数は100,000で、10個の木で作られる森を作る時間を計測した。3回シードを変えた、平均タイムを表示して
いる。
2/1/2018 Shuma Ishigami 47
48. randomForest : Notes
a.説明変数として、質的変数が使えるか
factorを与えた時、いっけんエラーがないか; OK
factorを与えた時に、それを質的に捉えていますとマニュアルに書いてあるか;質的
factorのカテゴリ数がすごく多いとき、エラーが出るか; 53 categoryまで対応
factorに欠損があるとき、なにがおきるか; NA not permitted in predictorsのエラーがでる
b.説明変数として、量的変数が使えるか
numericを与えた時、いっけんエラーがないか; OK
numericを与えた時に、それを量的に捉えていますとマニュアルに書いてあるか; 量的
numericに欠損があるとき、なにが起きるか; NA not permitted in predictors
c.そのパッケージに、欠損に対応する方法が用意されているか
他の関数が対応するか; Impute関数が存在. median value for numerical feature and most frequent/mode category
for categorical feature
g.並列処理に対応するか
そのパッケージが対応するか;なし
他のパッケージを使って自力でできるか;snowやparallelで可能
ex:[Rのsnowパッケージを使ってrandomForestを並列化 - Qiita](https://qiita.com/freename/items/17f13777a56b0d1518e8)
[parallelパッケージを使ってRandomForestを並列化 - Programming Memo](http://eerf0309458.hatenadiary.com/entry/2016/03/25/182931)
2/1/2018 Shuma Ishigami 48
49. party : Notes
a.説明変数として、質的変数が使えるか
factorを与えた時、いっけんエラーがないか; OK
factorを与えた時に、それを質的に捉えていますとマニュアルに書いてあるか;わからない
factorのカテゴリ数がすごく多いとき、エラーが出るか: 100でも大丈夫
factorに欠損があるとき、なにがおきるか; うごく
b.説明変数として、量的変数が使えるか
numericを与えた時、いっけんエラーがないか; OK
numericを与えた時に、それを量的に捉えていますとマニュアルに書いてあるか;わからない
numericに欠損があるとき、なにが起きるか; うごく
c.そのパッケージに、欠損に対応する方法が用意されているか;なし
g.並列処理に対応するか
そのパッケージが対応するか;なし
2/1/2018 Shuma Ishigami 49
52. ranger : Notes
a.説明変数として、質的変数が使えるか
factorを与えた時、いっけんエラーがないか; OK
factorを与えた時に、それを質的に捉えていますとマニュアルに書いてあるか; 質的
factorのカテゴリ数がすごく多いとき、エラーが出るか: 100でも大丈夫
factorに欠損があるとき、なにがおきるか; エラーが発生
b.説明変数として、量的変数が使えるか
numericを与えた時、いっけんエラーがないか; OK
numericを与えた時に、それを量的に捉えていますとマニュアルに書いてあるか;量的
numericに欠損があるとき、なにが起きるか; エラーが発生
c.そのパッケージに、欠損に対応する方法が用意されているか
その関数が対応するか;ない
他の関数が対応するか ; “missRanger”なるmissing value 取扱い用パッケージ(imputeする)があるらしい。
R package "missRanger" for fast imputation of missing values by random forest.
(https://github.com/mayer79/missRanger)
g.並列処理に対応するか
そのパッケージが対応するか; num of threads optionでCPUの数を変えられる
2/1/2018 Shuma Ishigami 52
Notes:
f: packageの速さについて
Factor ~ Numeric model. 2 level factor . 10 random generated numeric features without missing value. 10 trees. Default for other options. 100,000 samples. Average of 3 trials.