La question
J'ai du mal à comprendre comment la prédiction est maintenue dans l' intervalle lorsque je fais une classification binaire avec Gradient Boosting.
Supposons que nous travaillons sur un problème de classification binaire, et notre fonction objective est la perte de log, , où est la variable cible et est notre modèle actuel.
Lors de la formation du prochain apprenant faible telle sorte que notre nouveau modèle soit , quel est le mécanisme qui est censé maintenir ? Ou, peut-être une question plus pertinente, existe-t-il un tel mécanisme?
Plus d'informations sur ce que je fais
J'essaie d'implémenter le renforcement du gradient, en utilisant des arbres de régression. Ce que je fais pour l'éviter, c'est qu'une multiplication de par un facteur , de telle sorte que H + c _ {\ text {max}} h ne descende pas en dessous de zéro ou au-dessus un, et je sélectionne le c dans cette gamme qui minimise la fonction de perte. c ∈ [ 0 , c max ] H + c max h c
Cela pose le problème suivant: après quelques tours, j'ai un point qui est parfaitement classé, et le meilleur fractionnement disponible pour pousser le classificateur dans la direction du gradient veut pousser ce point au-dessus d'un, ce qui, je m'assure, ne se produit pas en réglage . Ainsi, toutes les itérations suivantes sélectionneront le même fractionnement et le même .c = 0
J'ai essayé des pratiques de régularisation courantes
- Diminuer le taux d'apprentissage en multipliant par . Cela retarde simplement le problème.μ = 0,01
- Sous-échantillonnage de l'espace des fonctionnalités, mais certains des points sont très faciles à classer, ils cochent presque toutes les cases du "est-ce un point positif?" forme, et presque chaque "bonne division" montre ce comportement.
Je pense que ce n'est pas un problème de paramètres, et il devrait y avoir un moyen plus solide de résoudre ce problème. Je n'écarte pas la possibilité que mon implémentation soit interrompue, mais je n'ai rien trouvé pour résoudre ce problème.
Ce que nous manipulons, dans le contexte de la perte logistique, devrait être une probabilité, alors comment l'éviter?
Mon intuition serait de mettre le modèle que nous construisons, , dans une fonction sigmoïde telle qu'il soit limité à , et je suppose que cela fonctionnerait, mais je veux savoir s'il existe d'autres solutions. Étant donné que le renforcement du gradient semble utilisé avec succès dans les tâches de classification, une solution «correcte» (c'est-à-dire avec justification) devrait exister.[ 0 , 1 ]