xgboostアルゴリズムのmin_child_weightの説明


23

xgboostのmin_child_weightパラメーターの定義は次のとおりです。

子に必要なインスタンスの重み(ヘシアン)の最小合計。ツリーパーティションのステップの結果、インスタンスの重みの合計がmin_child_weightより小さいリーフノードが生成される場合、構築プロセスはさらにパーティションを放棄します。線形回帰モードでは、これは単に各ノードに必要なインスタンスの最小数に対応します。アルゴリズムが大きくなるほど、保守的になります。

元の論文(式8と式9の直後のもの)、この質問、およびGoogle検索の最初の数ページに表示されるxgboostで行うほとんどのことを含め、xgboostでかなり多くのことを読みました。;)

基本的に、ヘシアンの合計に制約を課している理由について、私はまだ満足していませんか?元の論文からの私の唯一の考えは、それが各インスタンスの「重み」としてを持つ重み付き分位点スケッチセクション(および式3の重み付き2乗損失の再定式化)にているということです。hi

さらなる質問は、それが単に線形回帰モードのインスタンスの数である理由に関するものですか?これは二乗和方程式の二次導関数に関係していると思いますか?

回答:


42

回帰の場合、ノードの各ポイントの損失は

12(yiyi^)2

に関するこの式の2次導関数はです。したがって、ノード内のすべてのポイントの2次導関数を合計すると、ノード内のポイントの数が得られます。ここで、min_child_weightは、「ノード内のサンプルサイズが所定のしきい値を下回ったときに分割を試みるのをやめる」などのことを意味します。yi^1

バイナリロジスティック回帰の場合、ノードの各ポイントのヘシアンには次のような用語が含まれます

σ(yi^)(1σ(yi^))

ここで、はシグモイド関数です。純粋なノードにいるとしましょう(たとえば、ノードのトレーニング例はすべて1です)。その場合、すべてのはおそらく大きな正の数になるため、すべての 1に近くなります。したがって、すべてのヘッセ項は0に近くなります。ノード内のすべてのトレーニング例が0の場合、ロジックは保持されます。ここで、min_child_weightは、「ノード内である程度の純度に達すると、モデルがフィットできるようになったら分割しようとするのをやめる」などです。σyi^σ(yi^)

ヘッセ行列は、正則化とツリーの深さの制限に使用するのが正気です。回帰の場合、たとえば1つの観測値だけで常にノードに分割していると、過剰適合になる可能性があります。同様に、分類については、各ノードが純粋になるまで分割を主張する場合、どのようにオーバーフィットするかを簡単に確認できます。


返信いただきありがとうございます。評判が悪いため、賛成できません。
maw501

1
こんにちは@ maw501:問題ありません、できます。良い答えです。
Catbuilts

したがって、データのバランスが非常に悪い場合、min_child_weightの提案範囲は何ですか?
マフディバグバンザデー

不均衡なデータセットの場合、min_child_weightにも重みを含める必要がありますか?ありがとうございました!@hahdawg
HanaKaze
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.