決定木:リーフワイズ(ベストファースト)およびレベルワイズツリートラバース


13

問題1:

ツリーの展開方法に関するLightGBM説明に混乱しています

彼らは述べています:

ほとんどの決定木学習アルゴリズムは、次の図のように、レベル(深さ)ごとにツリーを成長させます。

ここに画像の説明を入力してください

質問1:どの「ほとんどの」アルゴリズムがこの方法で実装されていますか?私が知る限り、C4.5とCARTはDFSを使用します。XGBoostはBFSを使用します。決定木にBFSを使用する他のアルゴリズムまたはパッケージはどれですか?

問題2:

LightGBMの状態:

LightGBMは、リーフ単位で(ベストファースト)ツリーを成長させます。最大のデルタ損失を持つリーフを選択して成長させます。同じリーフを成長させる場合、リーフワイズアルゴリズムはレベルワイズアルゴリズムよりも損失を減らすことができます。

ここに画像の説明を入力してください

質問2:レベルごとに成長する木は、すべての葉で同じ深さになると言うのは正しいですか?

質問3:質問2が正しくない場合、レベルワイズおよびリーフワイズの成長からのツリーは、トラバーサルの終わりに同じように見えます(剪定などは行われません)。それは正しい表現ですか?

質問4:質問3が正しい場合、「リーフワイズアルゴリズムはレベルワイズアルゴリズムよりも多くの損失を減らすことができますか?」ポストプルーニングアルゴリズムに関係していますか?

回答:


10

完全なツリーを成長させると、ベストファースト(リーフワイズ)とデプスファースト(レベルワイズ)が同じツリーになります。違いは、ツリーが展開される順序です。通常、ツリーを完全な深さに成長させることはないため、順序が重要です。早期停止基準と枝刈り方法を適用すると、非常に異なるツリーになる可能性があります。リーフワイズは、特定のブランチに沿った損失だけでなく、グローバル損失への寄与に基づいて分割を選択するため、多くの場合(常にではない)低レベルのツリーをレベル単位よりも「速く」学習します。つまり、少数のノードの場合、リーフワイズはおそらくレベルワイズよりもパフォーマンスが優れています。さらにノードを追加すると、停止またはプルーニングせずに、ノードが文字通り同じツリーを構築するため、同じパフォーマンスに収束します。

参照:

Shi、H.(2007)。最優先の決定木学習(論文、修士(MSc))。ニュージーランドのハミルトンにあるワイカト大学。https://hdl.handle.net/10289/2317から取得


編集:あなたの最初の質問に関して、C4.5とCARTは両方とも深さ優先の例であり、最良優先ではありません。上記のリファレンスの関連コンテンツは次のとおりです。

1.2.1標準決定木

決定木のトップダウン誘導のためのC4.5(Quinlan、1993)やCART(Breiman et al。、1984)などの標準アルゴリズムは、分割統治戦略を使用して各ステップでノードを深さ優先順に拡張します。通常、決定ツリーの各ノードでは、テストには単一の属性のみが含まれ、属性値は定数と比較されます。標準デシジョンツリーの基本的な考え方は、最初にルートノードに配置する属性を選択し、いくつかの基準(情報やGiniインデックスなど)に基づいてこの属性のブランチを作成することです。次に、トレーニングインスタンスを、ルートノードから伸びる各ブランチに1つずつ、サブセットに分割します。サブセットの数は、ブランチの数と同じです。次に、実際に到達したインスタンスのみを使用して、選択したブランチに対してこの手順を繰り返します。ノードを展開するために固定順序が使用されます(通常、左から右)。ノードのすべてのインスタンスが常に純粋なノードと呼ばれる同じクラスラベルを持っている場合、分割は停止し、ノードはターミナルノードになります。この構築プロセスは、すべてのノードが純粋になるまで続きます。その後、過剰適合を減らすための枝刈りプロセスが続きます(セクション1.3を参照)。

1.2.2最優先決定木

これまでのところ、ブースティングアルゴリズムのコンテキストでのみ評価されているように見える別の可能性(Friedman et al。、2000)は、ノードを固定順序ではなく最高の順序で拡張することです。この方法は、各ステップで「最適な」分割ノードをツリーに追加します。「最適な」ノードとは、分割に使用できるすべてのノードの中で不純物を最大限に減らすノードです(つまり、末端ノードとしてラベル付けされません)。これにより、標準の深さ優先の拡張と同じ完全に成長したツリーが得られますが、交差検証を使用して拡張の数を選択する新しいツリーの枝刈り方法を調査できます。プレプルーニングとポストプルーニングの両方をこの方法で実行できます。これにより、それらの公平な比較が可能になります(セクション1.3を参照)。

最良優先の決定木は、標準の深さ優先の決定木と同様の分割統治方式で構築されます。最優先ツリーの構築方法の基本的な考え方は次のとおりです。最初に、ルートノードに配置する属性を選択し、いくつかの基準に基づいてこの属性のブランチを作成します。次に、トレーニングインスタンスを、ルートノードから伸びる各ブランチに1つずつ、サブセットに分割します。この論文では、二分決定木のみが考慮されるため、分岐の数は正確に2です。次に、実際に到達したインスタンスのみを使用して、選択したブランチに対してこの手順を繰り返します。各ステップで、拡張に使用可能なすべてのサブセットの中から「最適な」サブセットを選択します。この構築プロセスは、すべてのノードが純粋になるか、特定の拡張数に達するまで続きます。図1。図1は、仮想の2進法の最優先ツリーと仮想の2進法の深さ優先ツリーの分割順序の違いを示しています。深さ優先の場合、順序は常に同じですが、最良優先ツリーでは他の順序を選択できることに注意してください。


最初の質問にも答えてください。
エカテリーナコカットジュハ

私の答えを更新しました。短いバージョンでは、C4.5とCARTの両方が深さ優先の例であり、最良優先ではありません。
デビッドマルクス

私の最初の質問は、ベストファーストまたはDFSの定義や説明に関するものではありませんでした。そして、私はC4.5とCARTはDFSであると自分自身で述べました。最初の質問は、「どの「ほとんどの」アルゴリズムがレベルごとに実装されていますか?[...]決定木にBFSを使用する他のアルゴリズムまたはパッケージはどれですか?」
エカテリーナコカットジュハ

1
「深さ優先」ツリーの成長レベルごとです。それが私があなたに伝えようとしていたことです。私が強調した抜粋を読んでください。ここで、グラフ走査のDFSとBFSを「深さ優先」および「最高優先」ツリーの成長と混同しないでください。それらは同じではなく、深さ優先成長は、「DFS」ではなく「BFS」と呼んでいるものを指します。
デビッドマルクス

それが、私がずっと見逃していた重要なポイントでした。ありがとうございました。
エカテリーナコカットジュハ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.