max_delta_step in xgboost

9

Ich kann anhand der Beschreibung in der Dokumentation nicht vollständig verstehen, wie dieser Parameter funktioniert

[max_delta_step [default = 0]] Maximaler Delta-Schritt, den wir für die Gewichtsschätzung jedes Baums zulassen. Wenn der Wert auf 0 gesetzt ist, gibt es keine Einschränkung. Wenn ein positiver Wert festgelegt ist, kann dies dazu beitragen, den Aktualisierungsschritt konservativer zu gestalten. Normalerweise wird dieser Parameter nicht benötigt, aber er kann bei der logistischen Regression hilfreich sein, wenn die Klasse extrem unausgewogen ist. Wenn Sie den Wert auf 1-10 setzen, können Sie das Update möglicherweise steuern

Mir ist nicht klar, worauf sich der "Delta-Schritt" bezieht, zumal es bereits eine analytische Lösung für die Gewichte gibt und die Gewichte bereits von bestraft werden eta. Kann jemand etwas Licht ins Dunkel bringen, wo dieser Parameter in den Algorithmus passt, worauf sich der "Delta-Schritt" bezieht und wie genau er bei extrem unausgeglichenen Datensätzen hilft?

YetIWillBe
quelle

Antworten:

5

eta führt eine 'relative' Regularisierung ein (Multiplikation des Gewichts mit einem konstanten Faktor), aber in extremen Fällen, in denen Hessisch nahezu Null ist (wie wenn wir sehr unausgeglichene Klassen haben), reicht dies nicht aus, da die Gewichte (in denen das Hessische berechnet wird) Nenner) wird fast unendlich. Max_delta_steps führt also eine 'absolute' Regularisierung ein, die das Gewicht begrenzt, bevor eine eta-Korrektur angewendet wird.

Wenn Sie den Code von xgboost (Datei parameter.h, Prozedur CalcWeight) sehen, können Sie dies sehen und Sie sehen die Auswirkung anderer Regularisierungsparameter, Lambda und Alpha (die der Regularisierung von L1 und L2 entsprechen). In einem speziellen Lambda-Effekt wird max_delta_step ergänzt (oder ersetzt), da ein Lambda größer als Null das Gewicht kleiner macht.

Jag
quelle