XGBoostツリー '機能ブレークの開始'

Aug 21 2020

私はXGBoostアルゴリズムを学ぶのはかなり初めてで、アルゴリズムが最初にツリーを壊す機能をどのように知っているかについて質問がありました。

これが私の理解です(そして私が間違っているなら私を訂正してください):

各ツリーは単一の葉として始まり、すべての残差はその葉に行きます。次に、類似性スコアを計算し、いくつかの特徴特性の間で分割しようとします。たとえば、高さという1つの機能しかなかったとします。それぞれのx値が高さ>である場合、残余を分割できます。$180cm$ または高さ< $180cm$。次に、新しい葉の類似度スコアとゲインの計算に進み、ツリーを下に進みます。

私の質問は、身長、年齢、体重、教育などの2つ以上の機能があったということです。アルゴリズムは、最初の残差をどこで壊すかをどのように知るのですか?考えられるすべての機能について計算し、最良のゲインを見つけますか?大規模なデータセットがすべての機能を通過し、それをあるしきい値で破り、比較するには長い時間がかかると想像できます。

それとも、ランダムな機能から始まり、ランダムフォレストのように機能しますか?アルゴリズム内にツリーごとの特徴のパーセンテージを設定できるパラメーターがあることを知っているので、このパーセンテージを指定したら、どのように特徴を選択するか、さらに重要なことに、それらの特徴が選択されると、どのようにそれを知るかを質問に追加します残差の最初の葉を壊すために選ぶもの。

編集:アルゴリズムが最初に公開された論文を読んでみましたが、概念化して理解するのが少し難しすぎることがわかりました。

回答

1 CarlosMougan Aug 21 2020 at 13:43

各ツリーは単一の葉として始まり、すべての残差はその葉に行きます。次に、類似性スコアを計算し、いくつかの特徴特性の間で分割しようとします。たとえば、高さという1つの機能しかなかったとします。それぞれのx値が高さ>180𝑐𝑚または高さ<180𝑐𝑚である場合、残余を分割できます。次に、新しい葉の類似性スコアとゲインの計算に進み、ツリーを下に進みます

  • ここでは、決定木だけを記述しているようです。このチュートリアルを見て、もう少し理解してください

私の質問は、身長、年齢、体重、教育などの2つ以上の機能があったと言っています。アルゴリズムはどのようにして初期残差を破る場所を知るのですか?考えられるすべての機能について計算し、最良のゲインを見つけますか?大規模なデータセットがすべての機能を通過し、それをあるしきい値で破り、比較するには長い時間がかかると想像できます。

  • ここでも、デシジョンツリーとその複雑さについて話しますが、大規模なデータセットの場合、計算コストが非常に高くなります。これを回避するために、サンプリング、特徴選択、または量子化として、いくつかの戦略が使用されます

それとも、ランダムな機能から始まり、ランダムフォレストのように機能しますか?アルゴリズム内にツリーごとの特徴のパーセンテージを設定できるパラメーターがあることを知っているので、このパーセンテージを指定したら、どのように特徴を選択するか、さらに重要なことに、それらの特徴が選択されると、どのようにそれを知るかを質問に追加します残差の最初の葉を壊すために選ぶもの。

  • ランダムフォレストは、ツリーの分割ごとにランダムな特徴選択を行います。木は貪欲に育つので、可能な限りすべての分割を試み、最良のものを選択します。元の論文が難しすぎる場合は、ランダムフォレストに関するこのチュートリアルに従ってみてください