La idea GradientBoost es entrenar múltiples modelos débiles, en el que cada modelo debe ajustarse al residuo de su anterior. (Veremos residual == gradiente negativo)
- Tenga en cuenta que esto es muy diferente de AdaBoost , que ajusta la ponderación de los datos “clasificados incorrectamente” de la ronda anterior al entrenar el modelo actual.
Cómo funciona GradientBoost, desde un punto de vista residual :
1, entrenar [matemática] f_1 (x) [/ matemática] para que se ajuste a [matemática] y [/ matemática],
- Cómo rotar un conjunto de datos en R
- ¿Cuáles son algunos libros que debe tener un científico de datos?
- ¿Qué tan importante es el cálculo para la ciencia de datos?
- Ciencia de datos: ¿dónde encontrar ejemplos de proyectos usando Python con SQL?
- ¿Cuáles son las oportunidades de investigación para MS Data Science en la Universidad de Minnesota, Twin Cities?
donde [math] y [/ math] puede ser una etiqueta para la clasificación (p. ej., género) o algún número para la regresión (p. ej., edad).
El error de ajuste (residual) es [matemática] e_1 = y -f_1 (x) [/ matemática]. Más adelante veremos que [math] y -f_1 (x) [/ math] es similar a este gradiente, [math] d \ text {Loss} (y, f) / df [/ math]
2, ahora entrene [math] f_2 (x) [/ math] para ajustar [math] e_1 [/ math], el residuo de la iteración 1.
Esto significa hacer que [math] f_2 (x) [/ math] esté lo más cerca posible de [math] e_1 [/ math], por ejemplo, en una función de pérdida cuadrada, para minimizar esta pérdida [math] L = (f_2 (x ) -e_1) ^ 2 [/ matemáticas]
3, repita el paso anterior, obtenemos [math] f_3 (x) [/ math] para ajustar el residual [math] e_2 [/ math], [math] f_4 (x) [/ math] para el residual [math] e_3 [/ matemáticas], …
4, Suma los modelos: [matemáticas] F (x) = f_1 (x) + \ cdots + f_4 (x) [/ matemáticas] (digamos que solo entrenamos 4 modelos débiles y los combinamos). Este es nuestro modelo final, y la pérdida final / total es [matemática] e_4 [/ matemática], que es mucho más pequeña que [matemática] e_1 [/ matemática], aparentemente.
(En realidad, cierta literatura dice que esta iteración debería continuar hasta que el residuo sea casi ruido blanco. Si no es ruido blanco , entonces debe haber alguna información estadística. Al usar esta información, debería haber otra iteración, en la que una nueva el modelo débil debe ser entrenado y agregado. Tiene sentido.)
¿Dónde está “gradiente”?
Para [matemática] L = (tf) ^ 2 [/ matemática] donde [matemática] t [/ matemática] significa objetivo apropiado ([matemática] t = y [/ matemática] para el bucle 1, [matemática] t = e_1 [/ math] para el bucle 2, [math] t = e_2 [/ math] para el bucle 3, etc …), el gradiente de [math] L [/ math] contra [math] f [/ math] es [math] (tf ) [/ math], que se ajusta exactamente a los residuos.
En otras palabras, en iteraiton 2 estamos tratando de usar el modelo [math] f_2 (x) [/ math] para ajustar el gradiente calculado a partir del modelo 1. Esto tiene sentido. Este procedimiento intenta hacer que el error de ajuste total disminuya a lo largo de la curva de pérdida total .
En otras palabras, también tenemos opciones al elegir nuestro nuevo objetivo de ajuste (en la iteración [matemática] i [/ matemática]):
- ajustando el residual
- ajustando el gradiente (negativo)
No son tan diferentes. El ajuste de cualquiera de ellos significa que el error de ajuste total disminuye.
Ahora, ¿por qué elegimos gradiente en lugar de residual? La respuesta corta es que para algunas (tal vez muchas) funciones de pérdida, el gradiente le presta menos atención a los datos atípicos.
Aparentemente, [math] L = (tf) ^ 2 [/ math] se preocupa mucho por los datos atípicos, por ejemplo:
Por lo tanto, en el sentido de tratar con datos atípicos, usar gradiente es mejor que residual.
El gradiente de pérdida de Huber puede limitarse a un umbral. En otras palabras, al usar el gradiente como objetivo de ajuste, la atención del modelo a los valores atípicos tiene un límite (en comparación con el residual)
Referencia : http://www.ccs.neu.edu/home/vip/…
La respuesta que Abhishek Ghose le dio a ¿Qué es una explicación intuitiva de Gradient Boosting?