Il existe plusieurs implémentations de la famille de modèles GBDT telles que:
- GBM
- XGBoost
- LightGBM
- Catboost.
Quelles sont les différences mathématiques entre ces différentes implémentations?
Catboost semble surpasser les autres implémentations même en utilisant uniquement ses paramètres par défaut en fonction de cette référence , mais il est toujours très lent.
Mon hypothèse est que catboost n'utilise pas les variables dummifiées, de sorte que le poids attribué à chaque variable (catégorielle) est plus équilibré que les autres implémentations, de sorte que les variables de cardinalité élevée n'ont pas plus de poids que les autres. Il permet au faible catégorique (à cardinalité faible) d’entrer dans certains arbres, d’où de meilleures performances. À part ça, je n'ai pas d'autre explication.
Réponses:
https://arxiv.org/abs/1706.09516
Vous souhaitez consulter ce document en anglais de l'équipe Yandex sur l'unicité mathématique de CATBoost.
Je l'ai lu brièvement, et parmi les quelques choses que j'ai pu comprendre rapidement, il y a le fait qu'ils n'utilisent pas les résidus obtenus sur TRAIN pour faire TRAIN , car ces résidus créent un biais optimiste quant à la qualité de l'apprentissage. ( Mise à jour: cette nouveauté offre un moyen de lutter contre le surajustement, raison pour laquelle l’algorithme a mieux fonctionné par rapport à ses analogues, à l’exception de diverses façons de prétraiter les variables catégorielles).
Je suis désolé de ne pas vous donner une réponse précise et complète.
Tout d’abord, je vous suggère de lire un article de Friedman sur la machine de renforcement de gradient appliquée aux modèles de régresseurs linéaires, aux classificateurs et aux arbres de décision en particulier. https://statweb.stanford.edu/~jhf/ftp/trebst.pdf
Je ne voudrais pas entrer dans les détails ici. C'est juste une bonne lecture couvrant divers types de pertes (L) et en plus du concept d'importance variable. Bien entendu, il s’agit d’un document déterminant de la mise en œuvre de la méthode de descente dans l’espace des fonctions (modèles de bas niveau) plutôt que des paramètres visant à minimiser les pertes.
Si vous regardez ici: https://arxiv.org/pdf/1603.02754.pdf
Vous trouvez une vignette mathématique pour le modèle XGBoost de Tianqi Chen et al. Maintenant cela devient intéressant. Quelques écarts mathématiques de ce modèle forment le GBM classique de Friedman:
À ce stade: regardez ici pour trouver une implémentation de la perte quantile dans CATBoost, ce qui est très pratique et fournit à la fois des dérivées première et seconde: https://github.com/catboost/catboost/blob/master/catboost/libs/algo/ error_functions.h
Bien que vous ne puissiez pas trouver cette fonction de perte L1 utile dans XGBoost, vous pouvez essayer de comparer la mise en œuvre de Yandex à certaines des fonctions de perte personnalisées écrites pour XGB.
Considérez ce lien: https://tech.yandex.com/catboost/doc/dg/concepts/algorithm-main-stages_cat-to-numberic-docpage/#algorithm-main-stages_cat-to-numberic
Ils offrent une variété de façons d’intégrer des caractéristiques catégoriques à la formation de modèle en plus de l’utilisation d’une ancienne approche bien connue. La réduction des dimensions d'un espace d'entrée sans perdre beaucoup d'informations est l'une des raisons possibles pour lesquelles le modèle installé est moins suréquipé.
J'ai fini. Je n'utilise pas LightGBM, je ne peux donc pas y jeter de lumière.
la source