En Kaggle Competition, ¿qué algoritmo de aprendizaje por conjuntos prefiere? ¿Voto mayoritario, promedio ponderado o algunos algoritmos avanzados como el embolsado?

Hay un par de formas de interpretar su pregunta, proporcionaré respuestas a ambas en función de mi experiencia con Kaggle (2 victorias y hasta el 12º en el ranking mundial).

  • Si está preguntando qué modelo de conjunto funciona mejor entre los sospechosos habituales como Gradient Boosting y Random Forests, entonces XGBoost (una implementación paralela de aumento de gradiente) es hoy en día el mejor que existe. Estos modelos, aunque técnicamente son conjuntos de árboles de decisión, no se conocen como conjuntos en la jerga de Kaggle. Estos todavía se consideran “modelos únicos” o “modelos básicos”.
  • Si está preguntando qué enfoques de ensamblaje son los mejores, entonces realmente depende del problema y la métrica de evaluación. Si su métrica de evaluación es algo así como un logloss, que se minimiza directamente mediante ciertos algoritmos, entonces debe usar uno de estos algoritmos como metamodelo. Si su métrica no está minimizada directamente por un algoritmo (es decir, ROC), entonces debe probar todo tipo de metamodelos, incluido el promedio ponderado, y ver qué funciona mejor. El voto mayoritario es realmente el único que nunca he usado. El voto mayoritario supone que sus modelos base generan predicciones 0/1. Si bien eso es ciertamente posible, casi siempre obtienes mejores resultados promediando las probabilidades posteriores reales.

Todos ellos. La competencia de Kaggle es infame por beneficiarse de ensambles horriblemente complejos con docenas o incluso cientos de modelos subyacentes.

El ensacado es casi siempre un deber y muchos algoritmos lo incorporan internamente, debe ser un bosque notablemente aleatorio.

El apilamiento / combinación es la forma principal de fusionar diferentes modelos al colocar un modelo adicional sobre sus resultados. Cuando el algoritmo de nivel superior es una regresión lineal, esto se puede ver como promedio ponderado.

También se utilizan otras técnicas.

La competencia de Kaggle a menudo tiene datos limitados o incluso totalmente anónimos, lo que hace que centrarse en el modelado complejo sea la única forma de ganar.

Que yo sepa, los árboles de decisión potenciados se consideran el mejor algoritmo de aprendizaje estándar. El impulso es superior al embolsado, y cosas como el voto mayoritario solo son agradables por su simplicidad.

Si tiene que implementar desde cero, comience de manera simple con el voto mayoritario y la regresión logística o algo así. Pero si está utilizando bibliotecas como sklearn, un buen lugar para comenzar es con árboles de decisión mejorados.

More Interesting

15 personas se sentarán en una fila de 15 sillas. ¿Cómo calculo cuántos planes de asientos se pueden hacer, donde dos planes de asientos se consideran iguales si dos planes comparten cuádruples adyacentes? o ¿Cómo puedo crear un algoritmo eficiente para encontrar límites inferiores para 15 o menos personas?

¿Cómo escribo un código C completo, incluidos todos los bucles y las condiciones de la línea de límite para la eliminación del nodo en el árbol de búsqueda binario?

¿Qué es el algoritmo de transformación de Burrows-Wheeler y cómo se usa en aplicaciones del mundo real?

Cómo revertir una lista vinculada usando la recursividad de cola y dos punteros

¿Son los algoritmos iguales para todos los lenguajes de programación?

¿Por qué las variables de matriz no tienen una dirección?

¿Qué algoritmo usa Arrays.sort?

¿Cómo se escriben los algoritmos de espacio?

Cómo resolver la recurrencia t (n) = 2t (n / 2) + n / logn

¿Siempre es bueno tener una solución recursiva que una solución iterativa?

El comportamiento emergente se encuentra en el núcleo de las ciencias físicas y de la vida: posiblemente por conveniencia computacional. ¿La teoría de la complejidad ofrece ideas aquí?

¿Cuál es la técnica / algoritmo utilizado por mensajeros como WhatsApp y BBM para comprimir imágenes?

¿Cuál es el mejor algoritmo para encontrar la longitud de la subcadena más larga sin repetir caracteres?

¿Qué es particionar en chispa, por qué lo necesitamos?

¿Cómo debería uno prepararse para los problemas en los árboles en la programación competitiva?