Es gibt verschiedene Implementierungen der GBDT-Modellfamilie, wie z.
- GBM
- XGBoost
- LightGBM
- Catboost.
Was sind die mathematischen Unterschiede zwischen diesen verschiedenen Implementierungen?
Catboost scheint die anderen Implementierungen zu übertreffen, selbst wenn nur die Standardparameter gemäß dieser Benchmark verwendet werden , aber es ist immer noch sehr langsam.
Ich vermute, dass catboost die gedummten Variablen nicht verwendet, sodass die Gewichtung jeder (kategorialen) Variablen im Vergleich zu den anderen Implementierungen ausgewogener ist, sodass die Variablen mit hoher Kardinalität nicht mehr Gewicht haben als die anderen. Dies ermöglicht es den schwachen kategorialen (mit geringer Kardinalität), in einige Bäume einzudringen, wodurch eine bessere Leistung erzielt wird. Ansonsten habe ich keine weitere Erklärung.
Antworten:
https://arxiv.org/abs/1706.09516
Sie möchten dieses englischsprachige Papier des Yandex-Teams über die mathematische Einzigartigkeit von CATBoost lesen.
Ich las es kurz und konnte unter anderem schnell nachvollziehen, dass sie die in TRAIN erhaltenen Residuen nicht für TRAIN verwenden , da diese Residuen eine optimistische Tendenz zur Lernqualität hervorrufen . ( Update: Diese Neuheit bietet eine Möglichkeit, die Überanpassung zu bekämpfen. Dies ist einer der Gründe, warum der Algorithmus im Vergleich zu seinen Analoga besser funktioniert, abgesehen von einer Vielzahl von Möglichkeiten, kategoriale Variablen vorzuverarbeiten.)
Es tut mir leid, dass ich Ihnen keine genaue und vollständige Antwort gegeben habe.
Ich schlage vor, Sie lesen einen Artikel von Friedman über Gradient Boosting Machine, der insbesondere auf lineare Regressormodelle, Klassifikatoren und Entscheidungsbäume angewendet wird. https://statweb.stanford.edu/~jhf/ftp/trebst.pdf
Ich würde hier nicht ins Detail gehen. Es ist nur eine gute Lektüre, die verschiedene Arten von Verlusten (L) und außerdem ein Konzept mit variabler Wichtigkeit abdeckt. Dies ist natürlich ein Meilenstein für die Implementierung der Methode des Abstiegs in den Funktionsraum (Low-Level-Modelle) anstelle von Parametern für das Streben nach Verlustminimierung.
Wenn Sie hier suchen: https://arxiv.org/pdf/1603.02754.pdf
Sie finden eine mathematische Vignette für das XGBoost-Modell von Tianqi Chen et al. Jetzt wird es interessant. Einige mathematische Abweichungen dieses Modells vom klassischen Friedman-GBM sind:
Zu diesem Punkt: Hier finden Sie eine praktische Implementierung des Quantilverlusts in CATBoost, die sowohl die erste als auch die zweite Ableitung bereitstellt: https://github.com/catboost/catboost/blob/master/catboost/libs/algo/ error_functions.h
Während Sie diese nützliche L1-Verlustfunktion in XGBoost nicht finden können, können Sie versuchen, die Implementierung von Yandex mit einigen der benutzerdefinierten Verlustfunktionen zu vergleichen, die für XGB geschrieben wurden.
Betrachten Sie diesen Link: https://tech.yandex.com/catboost/doc/dg/concepts/algorithm-main-stages_cat-to-numberic-docpage/#algorithm-main-stages_cat-to-numberic
Sie bieten eine Vielzahl von Möglichkeiten, um das Modelltraining zusätzlich zu dem alten und bekannten One-Hot-Ansatz mit kategorialen Funktionen zu versorgen. Das Verringern der Abmessungen eines Eingaberaums, ohne viele Informationen zu verlieren, ist einer der möglichen Gründe dafür, dass das angepasste Modell weniger überladen ist.
Ich bin fertig. Ich benutze kein LightGBM, kann also kein Licht darauf werfen.
quelle