Gracias por pedirme que responda a esta pregunta (¡supongo que al menos una persona cree que soy un gran competidor de Kaggle!). Cualquiera, por favor, siéntase libre de corregir cualquier cosa inexacta o fuera de lugar aquí.
Esta es una pregunta difícil de responder, porque al igual que cualquier esfuerzo competitivo, cualquier competencia de Kaggle requiere una combinación única de habilidades y varios factores diferentes. En algunas competiciones, la suerte juega un papel importante. En otros, un elemento que no había considerado en absoluto jugará un papel importante.
Por ejemplo, fui el primero y / o el segundo durante la mayor parte del tiempo que se realizó la Competencia de Predicción de Personalidad [1], pero terminé en el puesto 18, debido al sobreajuste en la etapa de selección de características, algo que nunca antes había encontrado con el método Solía. En el blog de Kaggle [2] se puede encontrar una buena publicación sobre algunos de los cambios aparentemente aleatorios que ocurren al final de una competencia.
- ¿Cómo se puede usar MapReduce en problemas de optimización?
- ¿Cuáles son las propiedades utilizadas para agrupar partículas en tipos?
- Cómo interpretar una capa totalmente conectada como una capa convolucional para hacer predicciones densas de píxeles
- Redes neuronales convolucionales: ¿Qué están haciendo los regresores de cuadro delimitador en Fast-RCNN?
- ¿Por qué se usan CNN para PNL?
Persistencia, persistencia y más persistencia
Ha esbozado algunos factores clave para el éxito. No todos son aplicables a todas las competiciones, pero encontrar la que se aplique es clave. En esto, la persistencia es muy importante. Es fácil desanimarse cuando no entra en el top 5 de inmediato, pero definitivamente vale la pena seguir intentándolo. En una competencia, creo que literalmente probé todos los métodos publicados sobre un tema.
En mi primera competencia de Kaggle, la competencia de Predicción de calidad fotográfica [3], terminé en el lugar 50 y no tenía idea de lo que los principales competidores habían hecho de manera diferente a mí.
Sin embargo, logré aprender de esta experiencia, y lo hice mucho mejor en mi segunda competencia, el Algorithmic Trading Challenge [4].
Lo que cambió el resultado de la competencia Photo Quality a la competencia Algorithmic Trading fue el aprendizaje y la persistencia. Realmente no pasé mucho tiempo en la competencia anterior, y se demostró en los resultados.
Espere hacer muchas presentaciones malas que no obtengan una buena puntuación. Debería estar leyendo la mayor cantidad de literatura relevante (y publicaciones de blog, etc.), mientras pueda mientras la competencia se está ejecutando. Siempre que aprenda algo nuevo que pueda aplicar a la competencia más tarde, o aprenda algo de su presentación fallida (tal vez que un algoritmo o enfoque particular no es adecuado para los datos), está en el camino correcto.
Sin embargo, esta persistencia debe venir de adentro. Para estar dispuesto a hacer esto, debe preguntarse por qué participa en una competencia en particular. ¿Quieres aprender? ¿Quieres ganar oportunidades colocando altamente? ¿Solo quieres probarte a ti mismo? La recompensa monetaria en la mayoría de las competencias de Kaggle no es suficiente para motivar una inversión de tiempo significativa, por lo que, a menos que sepa claramente lo que quiere y cómo motivarse, puede ser difícil seguir intentándolo. ¿El rango te importa? De lo contrario, puede darse el lujo de aprender sobre cosas interesantes que pueden o no afectar el puntaje, pero no si está tratando de obtener el primer lugar.
El resto de los factores
Ahora que he abordado lo que creo que está en el factor más importante (persistencia), abordaré el resto de su pregunta:
1. El factor más importante relacionado con los datos (para mí) es cómo prepara los datos y qué características diseña. La selección de algoritmos es importante, pero mucho menos. Realmente no he visto el uso de ninguna herramienta patentada entre los principales competidores, aunque un par de primeros clasificados han utilizado herramientas de código abierto que codificaron / mantienen.
2. He tenido malos resultados con datos externos, por lo general. A menos que observe a alguien en la tabla de clasificación que tiene una gran cantidad de separación del resto del grupo (o un grupo que tiene separación), es poco probable que alguien haya encontrado datos externos “asesinos”. Dicho esto, debe intentar utilizar todos los datos que se le proporcionan, y a menudo hay formas innovadoras de utilizar lo que se le proporciona para generar conjuntos de capacitación más grandes. Un ejemplo es el Benchmark Bond Competition [5], donde los anfitriones de la competencia lanzaron dos conjuntos de datos porque el primero podría modificarse fácilmente. El uso de ambos más que duplicó los datos de entrenamiento disponibles (esto no ayudó a calificar, y no lo usé en el modelo final, pero es una ilustración del punto).
3. El conocimiento inicial específico del dominio puede ser útil (algunas fórmulas de fijación de precios de bonos, etc., me ayudaron en la competencia de Benchmark Bond), pero no es crítico, y lo que necesita generalmente se puede aprender aprendiendo mientras compite. Por ejemplo, aprendí métodos de PNL mientras competía en la competencia ASAP de la Fundación Hewlett. Dicho esto, definitivamente debes aprender rápidamente los elementos específicos del dominio relevantes que no conoces, o no podrás competir en la mayoría de las competiciones.
4. Elegir una competencia menos competitiva definitivamente puede ser útil al principio. Los concursos de investigación tienden a tener menos competidores que los que tienen grandes premios. Más adelante, me resulta útil competir en competencias más competitivas porque te obliga a aprender más y salir de tu zona de confort.
5. Formar un buen equipo es crítico. Tuve la suerte de trabajar con grandes personas en dos competencias diferentes (ASAP y Bond), y aprendí mucho de ellas. Las personas tienden a dividirse en aquellas que casi siempre trabajan solas y aquellas que casi siempre se unen, pero es útil tratar de hacer ambas cosas. Puedes aprender mucho trabajando en equipo, pero trabajar por tu cuenta puede hacerte aprender cosas para las que de otro modo dependerías de un compañero de equipo.
6. La suerte también juega un papel. En algunas competiciones, .001% separa el 3er y 4to lugar, por ejemplo. En ese punto, es difícil decir cuál es el enfoque “mejor”, pero en general solo uno es reconocido como ganador. Un hecho de Kaggle, supongo.
7. Lo mejor del aprendizaje automático es que puedes aplicar técnicas similares a casi cualquier problema. No creo que necesite elegir problemas sobre los que tenga una visión particular o un conocimiento particular, porque, francamente, es más interesante hacer algo nuevo y aprender sobre él a medida que avanza. Incluso si tiene una gran idea el primer día, es probable que otros lo piensen, pero pueden hacerlo el día 20 o el día 60.
8. No tengas miedo de obtener un rango bajo. A veces ves una competencia interesante, pero piensas que no podrás pasar mucho tiempo en ella y es posible que no obtengas un rango decente. No te preocupes por esto. ¡Nadie te va a juzgar!
9. Cada entrada ganadora de Kaggle es la combinación de docenas de pequeñas ideas. Rara vez hay un gran momento aha que te gane todo. Si hace todo lo anterior, asegúrese de seguir aprendiendo y seguir trabajando para repetir su solución, lo hará bien.
¿Aprender es divertido?
Creo que los dos elementos principales que subrayé aquí son la persistencia y el aprendizaje. Creo que estos dos conceptos encapsulan muy bien mi experiencia en Kaggle, e incluso si no ganas una competencia, siempre que hayas aprendido algo, pasaste tu tiempo sabiamente.
Referencias
1. http://www.kaggle.com/c/twitter-…
2. http://blog.kaggle.com/2012/07/0…
3. http://www.kaggle.com/c/PhotoQua…
4. http://www.kaggle.com/c/Algorith…
5. http://www.kaggle.com/c/benchmar…