私の理解では、ランダムフォレストはランダムにmtry変数を選択して各決定ツリーを構築します。したがって、mtry = ncol / 3の場合、各変数は平均してツリーの1/3で使用されます。そして、ツリーの2/3はそれらを使用しません。
しかし、単一の変数がおそらく非常に重要であることを知っている場合、この変数が各ツリーで選択される確率を手動で増やすとよいでしょうか?RのrandomForestパッケージで実現可能ですか?
私の理解では、ランダムフォレストはランダムにmtry変数を選択して各決定ツリーを構築します。したがって、mtry = ncol / 3の場合、各変数は平均してツリーの1/3で使用されます。そして、ツリーの2/3はそれらを使用しません。
しかし、単一の変数がおそらく非常に重要であることを知っている場合、この変数が各ツリーで選択される確率を手動で増やすとよいでしょうか?RのrandomForestパッケージで実現可能ですか?
回答:
その注意mtryを各分割で候補としてランダムにサンプリングされた変数の数です。そして、この候補から、分割を実行するのに最適なものが選択されます。したがって、あなたが言及した割合は完全には満たされていません。より重要な変数はより頻繁に現れ、それほど重要ではありません。そのため、変数が本当に非常に重要な場合、ツリーで変数が選択される可能性が非常に高く、手動で修正する必要はありません。しかし、(まれに)回帰で(その重要性に関係なく)何らかの変数の存在を強制する必要がある場合があります。私が知る限り、Rパッケージランダムフォレストはそのような可能性をサポートしていません。ただし、この変数に他の変数との相互相関がない場合は、この変数を単一項として通常の回帰を行い、この通常の回帰の残差に対してランダムフォレスト回帰を実行できます。事前に指定した変数を選択する可能性を依然として修正したい場合は、次のコンパイルでソースコードを変更するのがオプションです。
2015年6月以降、「レンジャー」と呼ばれるR-CRANの新しい有望なRFアルゴリズムにこの機能があります。split.select.weightsで調整されています:「0〜1の重みを持つ数値ベクトル。分割する変数を選択する確率を表します。」