xgboostのmax_delta_step


9

ドキュメントの説明からこのパラメーターがどのように機能するかを完全に理解できません

[max_delta_step [default = 0]]各ツリーの重み推定を可能にする最大デルタステップ。値が0に設定されている場合は、制約がないことを意味します。正の値に設定すると、更新ステップをより保守的にするのに役立ちます。通常、このパラメーターは必要ありませんが、クラスが極端に不均衡である場合、ロジスティック回帰に役立つ可能性があります。値を1〜10に設定すると、更新の制御に役立つ場合があります

特に重みの分析ソリューションがすでにあり、重みがによってすでにペナルティを課されているため、「デルタステップ」が何を指しているのかは私にはわかりませんeta。このパラメーターがアルゴリズムのどこに適合するか、「デルタステップ」とは何を指し、極端に不均衡なデータセットでそれがどの程度正確に役立つかを誰かが説明できますか?

回答:


5

etaは「相対的な」正則化(重みに定数係数を掛ける)を導入しますが、ヘッシアンがほぼゼロである極端なケース(非常に不均衡なクラスがある場合など)では、これは十分ではありません。分母)はほぼ無限大になります。したがって、max_delta_stepsが行うことは、eta修正を適用する前に、重みを制限する「絶対」正則化を導入することです。

xgboostのコード(ファイルparameter.h、プロシージャCalcWeight)を見ると、これを見ることができ、他の正則化パラメーターであるラムダとアルファ(L1とL2の正則化に相当)の効果を見ることができます。特別なラムダエフェクトでは、max_delta_stepを補完します(または置き換えることができます)。ゼロより大きいラムダは重みが小さくなるためです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.