¿Qué debe saber todo programador competitivo (Topcoder) sobre los concursos de Kaggle y ML?

Permítanme agregar una perspectiva desde el lado de ML [dado que las otras dos respuestas son de programadores competitivos].

  • La primera diferencia entre la programación competitiva y las competiciones de ML es la naturaleza de los concursos. En la programación competitiva, el objetivo es implementar el algoritmo correcto en el menor tiempo posible. En las competiciones de ML, el objetivo es implementar un algoritmo dentro del marco de tiempo dado que logre la máxima precisión. Es decir, en la programación competitiva, su velocidad determina su rango, dado que ha escrito el código correcto, mientras que en las competiciones de ML, su precisión determina su rango, dado que terminó a tiempo.
  • El punto anterior hace que la forma de abordar las competiciones sea muy diferente. En la programación competitiva, no hay un componente de modelado: usted sabe que el problema dado puede resolverse exactamente utilizando un algoritmo ya existente. En las competiciones de ML, muchos de los problemas están abiertos, es decir, nadie sabe cuál es el mejor método para ellos y, como tal, requieren una cantidad significativa de modelado. Puede que tenga que inventar nuevas técnicas para ganar estas competiciones. El famoso ejemplo es el desafío ImageNet 2012, que hizo que el aprendizaje profundo fuera tan popular. El equipo ganador usó técnicas que antes nadie usaba. Por lo tanto, las competiciones de ML pueden requerir mucha más lluvia de ideas y planes / visión / motivación a largo plazo en comparación con las competencias de programación.
  • Así como la programación competitiva no cubre toda la programación de computadoras, las competiciones de ML no cubren todos los aspectos de ML. Más información sobre esto aquí: ¿puedo aprender Machine Learning completamente con Kaggle?

1. Con mucho, lo más sorprendente de plataformas como TopCoder y Kaggle es la configuración basada en el mérito, es decir, es imposible mentirse a sí mismo. Independientemente de si hiciste bien o mal, siempre sabrás cómo te va. Esa es la propiedad más importante que Kaggle comparte con TopCoder, especialmente si su objetivo es aprender o ser un profesional.

2. De la misma manera, es mucho más fácil comenzar con TopCoder si conoce los algoritmos básicos, es mejor comenzar con Kaggle conociendo algunos de los métodos de aprendizaje automático más populares.
Kaggle equivalente a los tutoriales de TopCoder: Inicio | Kaggle
Cursos gratuitos de aprendizaje automático en línea (más tiempo):
* Coursera – Machine Learning por Andrew Ng
* Coursera – Redes neuronales para el aprendizaje automático

3. Puede ir a esta página y hacer clic en “Todas las competiciones” para ver la duración y frecuencia de los concursos en Kaggle. Competiciones | Kaggle

4. A las empresas les encantaría tener personas que se hayan desempeñado bien en múltiples concursos de Kaggle. Facebook y Yelp ya han organizado concursos en Kaggle donde el premio fue una entrevista de trabajo. La razón por la cual a las compañías les encantaría contratar personas con buen desempeño en Kaggle es [1]. Por último, echa un vistazo a Kaggle Connect

5. No que yo sepa.

Feliz de comenzar con el aprendizaje automático.
En mi opinión, competir en TopCoder es la mejor manera de comenzar con algoritmos, y competir en Kaggle es la mejor manera de comenzar con Machine Learning.

1. Es similar en el aspecto que comparten todas las competiciones. Tienes un problema, debes resolverlo lo mejor que puedas. Cuando participas, obtienes una medida de lo bien que lo hiciste, cómo lo hicieron los demás, una calificación (bueno, el ranking para Kaggle, en realidad no importa). Después de la competencia, puedes ver las ideas de otros y aprender de ellas. Y la participación se ve bien en tu currículum 🙂

2. Cuanto más ML conozcas, mejor. Aprendí la mayor parte del mío del curso de ML en Coursera (en el momento en que tenía tres cursos y cada uno tenía un sitio separado) y del curso de ML en la escuela de análisis de datos de la escuela Yandex.

3. Eso es lo bueno: siempre tienen algunos concursos, con duraciones que varían de semanas a meses.

4. Absolutamente, e incluso diría que las competiciones de Kaggle son aún mejores: si contratas a un ganador de la competencia de Kaggle, puedes estar seguro de que conoce su ML 🙂 Las empresas realizan concursos de reclutamiento en la plataforma de Kaggle (incluso tienen una categoría especial para esto). Por ejemplo, ahora está ocurriendo Facebook Recruiting III – Extracción de palabras clave.