La pregunta
Estoy luchando por comprender cómo se mantiene la predicción dentro del intervalo cuando se realiza una clasificación binaria con Gradient Boosting.
Supongamos que estamos trabajando en un problema de clasificación binaria, y nuestra función objetivo es la pérdida de registro, , donde y es la variable objetivo ∈ { 0 , 1 } y H es nuestro modelo actual.
Al entrenar al próximo alumno débil modo que nuestro nuevo modelo sea H i = H i - 1 + h i , ¿cuál es el mecanismo que se supone que debe mantener H i ∈ [ 0 , 1 ] ? O, tal vez una pregunta más relevante, ¿existe tal mecanismo?
Más información sobre lo que estoy haciendo.
Estoy tratando de implementar el aumento de gradiente, usando árboles de regresión. Lo que hago para evitarlo es que una multiplicación por un factor c ∈ [ 0 , c max ] , de modo que H + c max h no vaya por debajo de cero o por encima de uno, y selecciono la c en este rango que minimiza La función de pérdida.
Esto trae el siguiente problema: después de algunas rondas, tengo un punto que está perfectamente clasificado, y la mejor división disponible para empujar el clasificador en la dirección del gradiente quiere empujar este punto por encima de uno, lo que me aseguro de que no suceda ajuste . Por lo tanto, la siguiente iteración seleccionará la misma división y la misma c = 0 .
Traté de prácticas comunes de regularización
- Disminuir la tasa de aprendizaje multiplicando por μ = 0.01 . Esto solo retrasa el problema.
- Submuestreando el espacio de características, pero algunos de los puntos son muy fáciles de clasificar, marcan casi todas las casillas en "¿es positivo?" forma, y casi cada "buena división" muestra este comportamiento.
Creo que esto no es un problema de parámetros, y debería haber una forma más sólida de solucionarlo. No estoy descartando la posibilidad de que mi implementación esté rota, pero no he encontrado nada que aborde este problema.
Lo que estamos manipulando, en el contexto de la pérdida logística, debería ser una probabilidad, entonces, ¿cómo lo evitamos?
Mi intuición sería poner el modelo que estamos construyendo, , en una función sigmoidea de modo que esté limitado a [ 0 , 1 ] , y supongo que funcionaría, pero quiero saber si hay otras soluciones. Dado que el aumento de gradiente parece usarse con éxito en tareas de clasificación, debe existir una solución "correcta" (es decir, con justificación).