¿El ajuste excesivo es tan malo que no debe elegir un modelo que se ajuste demasiado, a pesar de que su error de prueba es menor? No. Pero deberías tener una justificación para elegirlo.
Este comportamiento no está restringido a XGBoost. Es un hilo común entre todas las técnicas de aprendizaje automático; Encontrar el equilibrio correcto entre el ajuste y el sobreajuste. La definición formal es la compensación de variación de sesgo (Wikipedia) .
El equilibrio de sesgo-varianza
La siguiente es una simplificación de la compensación de Bias-varianza, para ayudar a justificar la elección de su modelo.
Decimos que un modelo tiene un alto sesgo si no puede usar completamente la información en los datos. Depende demasiado de la información general, como el caso más frecuente, la media de la respuesta o algunas características potentes. El sesgo puede provenir de supuestos erróneos, por ejemplo, suponiendo que las variables están normalmente distribuidas o que el modelo es lineal.
Decimos que un modelo tiene una alta varianza si está usando demasiada información de los datos. Se basa en información que es reveladora solo en el conjunto de entrenamiento que se le ha presentado, que no se generaliza lo suficientemente bien. Por lo general, el modelo cambiará mucho si cambia el conjunto de entrenamiento, de ahí el nombre de "alta variación".
Esas definiciones son muy similares a las definiciones de ajuste y sobreajuste. Sin embargo, esas definiciones a menudo están demasiado simplificadas para ser opuestas, como en
- El modelo no está ajustado si tanto el error de entrenamiento como el de prueba son altos. Esto significa que el modelo es demasiado simple.
- El modelo se sobreajusta si el error de prueba es mayor que el error de entrenamiento. Esto significa que el modelo es demasiado complejo.
Esas simplificaciones son, por supuesto, útiles, ya que ayudan a elegir la complejidad correcta del modelo. Pero pasan por alto un punto importante, el hecho de que (casi) cada modelo tiene un componente de sesgo y de varianza. La descripción de subalimentación / sobreajuste le dice que tiene demasiado sesgo / demasiada variación, pero que (casi) siempre tiene ambos .
Si desea obtener más información sobre el equilibrio de sesgo-varianza, son una gran cantidad de visualización útil y un buen recurso disponible a través de Google. Cada libro de texto de aprendizaje automático tendrá una sección sobre el equilibrio de sesgo-varianza, aquí hay algunos
- Una introducción al aprendizaje estadístico y a los Elementos del aprendizaje estadístico (disponible aquí) .
- Reconocimiento de patrones y aprendizaje automático, por Christopher Bishop.
- Aprendizaje automático: una perspectiva probabilística, por Kevin Murphy.
Además, una buena publicación de blog que me ayudó a comprender es el Entendimiento de Scott Fortmann-Roe Comprender el Bias-Varianza .
Aplicación a tu problema
Entonces tienes dos modelos,
MARTEXGBoostTren MAE∼ 4.0∼ 0.3Prueba MAE∼ 4.0∼ 2.4Baja varianza, mayor sesgo ,Mayor varianza, menor sesgo ,
y necesitas elegir uno. Para hacerlo, debe definir qué es un mejor modelo. Los parámetros que deben incluirse en sus decisiones son la complejidad y el rendimiento del modelo.
- ¿Cuántas "unidades" de complejidad está dispuesto a cambiar por una "unidad" de rendimiento?
- Más complejidad se asocia con una mayor varianza. Si desea que su modelo se generalice bien en un conjunto de datos que sea un poco diferente al que ha entrenado, debe apuntar a una menor complejidad.
- Si desea un modelo que pueda entender fácilmente, puede hacerlo a costa del rendimiento al reducir la complejidad del modelo.
- Si está buscando el mejor rendimiento en un conjunto de datos que sabe que proviene del mismo proceso generativo que su conjunto de entrenamiento, puede manipular la complejidad para optimizar su error de prueba y usar esto como una métrica. Esto sucede cuando su conjunto de entrenamiento se muestrea aleatoriamente de un conjunto más grande, y su modelo se aplicará en este conjunto. Este es el caso en la mayoría de las competencias de Kaggle, por ejemplo.
El objetivo aquí no es encontrar un modelo que "no se sobreajuste". Es encontrar el modelo que tiene la mejor compensación de sesgo-varianza. En este caso, argumentaría que la reducción en el sesgo logrado por el modelo XGBoost es lo suficientemente buena como para justificar el aumento de la varianza.
Qué puedes hacer
Sin embargo, probablemente pueda hacerlo mejor ajustando los hiperparámetros.
Aumentar el número de rondas y reducir la tasa de aprendizaje es una posibilidad. Algo que es "extraño" sobre el aumento de gradiente es que ejecutarlo más allá del punto donde el error de entrenamiento ha llegado a cero parece mejorar aún más el error de prueba (como se discute aquí: ¿Es más profundo mejor solo cuando superficial es bueno? ). Puede intentar entrenar su modelo un poco más en su conjunto de datos una vez que haya configurado los otros parámetros,
La profundidad de los árboles que creces es un muy buen lugar para comenzar. Debe tener en cuenta que por cada unidad de profundidad, duplica el número de hojas que se construirán. Si tuviera que cultivar árboles de tamaño dos en lugar de tamaño 16, tomaría1 / 214¡del tiempo! Deberías intentar cultivar árboles más pequeños. La razón es que la profundidad del árbol debe representar el grado de interacción de la característica . Esto puede ser jerga, pero si sus características tienen un grado de interacción de 3 (Aproximadamente: una combinación de 4 características no es más poderosa que una combinación de 3 de esas características + la cuarta), entonces el crecimiento de árboles de tamaño mayor que 3 es perjudicial. Dos árboles de profundidad tres tendrán más poder de generalización que un árbol de profundidad cuatro. Este es un concepto bastante complicado y no lo abordaré en este momento, pero puede consultar esta colección de documentos para comenzar. Además, tenga en cuenta que los árboles profundos conducen a una gran variación.
Usar submuestreo, conocido como embolsado , es excelente para reducir la variación. Si sus árboles individuales tienen una alta varianza, el ensacado promediará los árboles y el promedio tiene menos varianza que los árboles individuales. Si, después de ajustar la profundidad de sus árboles, aún encuentra una gran variación, intente aumentar el submuestreo (es decir, reduzca la fracción de datos utilizada). El submuestreo del espacio de características también logra este objetivo.