データ内の列の数からツリーを構築するのにかかる時間を cforest/ctree から切り離すにはどうすればよいですか?
オプションを使用してそれを行うことができると思いましたmtry
。つまり、ヘルプは言います
ランダム フォレストのようなアルゴリズムの候補として、各ノードでランダムにサンプリングされた入力変数の数。
しかし、それは出力ツリーをランダム化しますが、列の数から CPU 時間を分離しません。
p<-proc.time()
ctree(gs.Fit~.,
data=Aspekte.Fit[,1:60],
controls=ctree_control(mincriterion=0,
maxdepth=2,
mtry=1))
proc.time()-p
Aspekte.Fit[,1:30]
(ところで、すべての変数はブール値です)と同じ2倍の時間がかかります。なんで?列の数に合わせてどこでスケーリングしますか?
私が見ているように、アルゴリズムは次のようにする必要があります。
- 各ノードでランダムに 2 つの列を選択します。
- それらを使用して応答を分割します。( のためスケーリングなし
mincriterion=0
) - 次のノードに進みます ( により合計 3 つ
maxdepth=2
)
列の合計の影響を受けません。
私のやり方の間違いを指摘してくれてありがとう