フリードマンによって提案された勾配木ブースティングはJ
、基本学習器として末端ノード(=葉)を持つ決定木を使用します。正確にJ
ノードを持つツリーを成長させる方法はいくつかあります。たとえば、深さ優先の方法または幅優先の方法でツリーを成長させることができます...
J
勾配木ブースティングのために正確に終端ノードを持つ木を成長させる方法は確立されていますか?
私はRのgbm
パッケージのツリー成長手順を調べましたが、それは深さ優先の方法でツリーを拡張し、エラーの改善に基づくヒューリスティックを使用して、左または右の子ノードを拡張するかどうかを選択します-それは正しいですか?
2
gbmはCARTを使用して、80年代の有名なアルゴリズムであるツリーを構築します。ヒューリスティックはジニ不純物と呼ばれ、二次損失を伴う回帰のかなり標準的な選択です。
Afaik gini不純物は、問題の分類に使用されます。それにもかかわらず、問題は木の大きさに関するものです。
—
Peter Prettenhofer
ブランチを一度に追加します。次の各スプリットが、ブランチだけでなく、ツリー内の残りのスプリット候補の中で最高である場合、私は驚かれます。「J」に対してデータが小さすぎる場合など、データが正確な数をサポートしない場合があります。
—
EngrStudent 2016年
@EngrStudentが言ったように、正確な数のノードを強制することはできません。ただし、ノード数の上限はある程度制御できます。ノードごとのオブジェクトの最小数を制御
—
G5W
gbm
するパラメーターがありますn.minobsinnode
。もちろん、ノードの数はNumberOfPoints / n.minobsinnode以下になります
「J」の葉を探している場合は、ツリーを完全に構築し、Jの葉よりも多いと仮定して、Jまでプルーニングします。これにより、「J」ノードが得られ、それらが最も多くなります。有益な分割-それはそれがあり得る最も健康的なCARTモデルでしょう。十分なスプリットがない場合は、ドメイン内でランダムにスプリットして「J」を取得することもできますが、スプリアスであり、多少は簡単です。リーフ内の値の分布を見て、CDF駆動の近似を使用する場合がありますが、これはリーフあたりの平均モデルとは異なります。
—
EngrStudent 2016