¿Por qué el aumento de gradiente funciona tan bien para tantos problemas de Kaggle?

TL; DR: el aumento de gradiente funciona muy bien porque es un clasificador (regresor) robusto listo para usar que puede funcionar en un conjunto de datos en el que se ha dedicado un mínimo esfuerzo a la limpieza y puede aprender límites de decisión no lineales complejos a través del aumento.

La mayoría de los argumentos también se pueden aplicar a los regresores, pero sigamos con los clasificadores en aras de la discusión.

En mi opinión, podemos ‘clasificar’ los clasificadores más populares en algunos grupos:

  1. Clasificadores lineales (regresión logística con o sin regularización, SVM lineal)
  2. Máquinas Kernel (Ej: SVM que emplean truco kernel)
  3. Redes Neurales y Redes Profundas
  4. Conjuntos basados ​​en árboles de decisión y árbol de decisión como bosques aleatorios y árboles de gradiente
  5. Técnicas ingenuas: clasificadores vecinos K-Nearest, clasificador Naive Bayes, etc.

En comparación con los clasificadores lineales

Los clasificadores lineales funcionan bastante bien en la práctica, excepto por el hecho de que requieren una limpieza cuidadosa y preparación de datos para que funcionen bien. Consideremos qué se requiere toda la limpieza de los datos:

Imputación de valor perdido:

Las observaciones con valores faltantes en los datos se pueden descartar, pero si una gran fracción de los datos tiene uno u otros valores de característica faltantes, descartar las observaciones puede no ser una opción. Luego debemos descubrir cómo imputar valores perdidos. Esto puede implicar imputar valores perdidos con la media, mediana, cuartil, min, max, modo de la columna de características o incluso técnicas más complicadas. Sin embargo, el rendimiento de un clasificador lineal se ve muy afectado por la técnica de imputación elegida.

Con los árboles de decisión, simplemente puede imputar valores perdidos con un valor muy alto (Ej: 10000000) o un valor muy bajo (Ej: -10000) que no aparece en el conjunto de datos y el árbol de decisión podrá manejarlo. sin ningún problema

Características de escala:

En el caso de un clasificador lineal, todas las características deben tener una escala estándar o una escala mínima-máxima para que todas las características estén en una escala comparable. De lo contrario, una característica con una escala grande (Ej: rango de [-10000, 10000]) puede completar una característica con una escala comparable más pequeña (Ej: rango de [0, 2])

Por otro lado, dado que un árbol de decisión considera cada característica por separado para la división, las escalas comparativas de las características realmente no importan.

Escalamiento atípico:

Los modelos lineales se ven muy afectados por la presencia de valores atípicos, ya que todas las observaciones se tratan por igual. Los valores atípicos se deben limitar (es decir, limitar los valores mínimo y máximo de los valores atípicos o eliminar las observaciones con valores atípicos) antes de aplicar modelos lineales.

Los árboles de decisión no requieren ningún tratamiento especial para los valores atípicos.

Colinealidad:

Si las características están fuertemente correlacionadas entre sí, el clasificador lineal puede tender a predecir en exceso si ninguna de las características se descarta. Esto se mitiga un poco mediante el uso de la regularización L1 o L2, pero no se elimina por completo.

Con los árboles de decisión, si dos características están fuertemente correlacionadas, una de las características se elige arbitrariamente para una división y la otra característica no tiene más efecto en el modelo. Por lo tanto, la colinealidad no afecta los árboles de decisión.

Límites de decisión no lineales:

Por su propia naturaleza, los modelos lineales asumen una relación lineal entre la característica y la variable objetivo. Por el contrario, los árboles de decisión no hacen tales suposiciones y son libres de aprender límites de decisión no lineales complejos siempre que los límites estén alineados con los ejes de características.

Por lo tanto, hemos visto cómo los árboles de decisión son clasificadores robustos en comparación con los clasificadores lineales para proporcionar un buen rendimiento inmediato con poca limpieza de datos.


En comparación con las máquinas kernel

Los SVM con núcleos no lineales son libres de aprender límites de decisión complejos en un espacio dimensional superior que los hace extremadamente poderosos. Sin embargo, los SVM no se escalan bien con el número de observaciones O (n ^ 2) y se vuelven realmente lentos, muy rápidos.


En comparación con las redes neuronales

Las redes neuronales son muy poderosas porque pueden aprender representaciones complejas de los datos subyacentes al aprender conceptos y composiciones jerárquicas. Esto significa que pueden aprender funciones arbitrariamente complejas o límites de decisión. Sin embargo, con gran poder viene una gran responsabilidad. Como resultado de su poder, las redes neuronales pueden adaptarse demasiado fácilmente a menos que le arrojes millones de ejemplos u observaciones. Esto explica por qué Google / Facebook et. Todos tienen un gran éxito con las redes profundas, pero no son tan potentes dados los tamaños de conjuntos de datos de Kaggle más limitados.


En comparación con las técnicas ingenuas

Las técnicas ingenuas como Naive Bayes son susceptibles a las características colineales porque se viola el supuesto de las características independientes y KNN requiere grandes conjuntos de datos para evitar el sobreajuste.


En comparación con los árboles de decisión

Los árboles de decisión por sí solos tienden a sobreajustar los datos. Con un solo árbol de decisión, limitar la profundidad máxima del árbol puede minimizar el sobreajuste, pero no puede aprender un límite de decisión complejo.


En comparación con los bosques al azar

Los bosques aleatorios tienen casi todos los beneficios de los árboles impulsados ​​por gradientes y pueden darle una oportunidad por dinero en muchos escenarios. Además, los árboles de decisión en bosques aleatorios se pueden construir en paralelo, ya que son independientes, lo que le da una gran ganancia de rendimiento sobre árboles reforzados donde los árboles individuales tienen que construirse secuencialmente.

Los bosques aleatorios reducen el sobreajuste al construir muchos árboles de decisión débiles o poco profundos y al utilizar una especie de voto mayoritario para dar como resultado límites de decisión complejos. Sin embargo, los árboles impulsados ​​intentan aprender un límite de decisión cada vez más complejo ajustando sucesivamente los árboles en el error con una baja tasa de aprendizaje sobre cientos de árboles.

En resumen, los conjuntos de datos de Kaggle generalmente requieren una cantidad modesta de limpieza / preprocesamiento, tienen un tamaño de conjunto de datos modesto y la naturaleza del problema suele ser una clasificación booleana. Dadas estas características, los árboles impulsados ​​por gradientes y los bosques aleatorios resultaron estar entre los clasificadores más poderosos para resolver tales problemas.

¡Espero que ayude!

No solo funcionan en el caso de Kaggle, sino también en general. Este es el por qué !
Puede mejorar la precisión de su modelo de dos maneras: ingeniería de características o uso del modelo de refuerzo. En lo que respecta a mi experiencia, la mayoría de las personas usan GBM porque producen resultados similares a los de los modelos con muchas características de ingeniería en una fracción del tiempo y el esfuerzo.
Impulsar funciona bien debido al hecho de que construye modelos de manera inteligente al dar más y más peso a las observaciones que son difíciles de clasificar. He visto que al impulsar algoritmos, los alumnos son extremadamente rápidos y altamente eficientes. Nunca fallan en conseguirme un puntaje inicial alto. Pero la cuestión nuevamente se reduce a qué tan eficientemente puede hacer ingeniería de características.

More Interesting

¿La validación cruzada más pequeña siempre es un indicador de un mejor modelo predictivo incluso si un modelo predictivo tiene una gran cantidad de parámetros?

¿Existe un equivalente de imagen (lenguaje de programación probabilístico del MIT para la percepción de la escena) para PNL?

Cómo hacer la clasificación y agrupamiento de documentos en rapidMiner

¿Cómo creo un conjunto de datos como MNIST para reconocer caracteres de otro idioma? Tengo un conjunto de datos como una carpeta de imágenes. ¿Cómo uso eso en Tensorflow?

En PCA, ¿cuáles son los roles y los significados físicos de las caras propias?

¿La normalización por lotes ayuda con las funciones de activación de ReLU?

¿Es generalmente una buena idea entrenar en caso real, desarrollar y probar conjuntos de datos para la traducción automática?

¿Cuáles son los siguientes pasos en el reconocimiento de voz después de extraer las funciones de MFCC?

¿Cuáles son los problemas de investigación 'hardcore' en visión artificial, aprendizaje automático y arquitectura informática?

¿Cómo funciona el CAPTCHA 'No soy un robot'?

¿Cómo funciona el soporte de regresión vectorial?

¿Qué tan útil es el aprendizaje automático?

¿Cuáles son los algoritmos actuales de última generación para la detección de objetos en 2017?

¿Cuáles son algunos ejemplos de empresas no tecnológicas que crean valor a través del uso de Big Data y qué tecnologías específicas están utilizando, por ejemplo, Hadoop, sistemas dedicados, SAP en formas novedosas, piratas informáticos, etc.

En R, ¿qué significa elegir lambda por validación cruzada (cresta, lazo)?