¿Puedo aprender Machine Learning completamente con Kaggle?

Como otros han señalado, probablemente puedas , pero no deberías . Kaggle puede aumentar su conocimiento de ML, pero por sí solo, no será la mejor manera.

En primer lugar, el enfoque principal de Kaggle es obtener la mayor precisión. Ese no es siempre el comportamiento más deseable en el mundo real: si tiene dos métodos A y B, con una precisión del 91.0% frente al 91.1% y tiempos de entrenamiento de 2 horas frente a 2 días, ¿cuál elegiría? La respuesta para las competencias de Kaggle es diferente de la que usarías en el mundo real (muy probablemente).

En segundo lugar, la mayoría de las personas que compiten en Kaggle usarían algoritmos listos para usar, mientras que como parte del aprendizaje automático de aprendizaje, a menudo querría implementar algoritmos desde cero, para comprenderlos mejor.

En tercer lugar, la mayoría de las competiciones en Kaggle involucran conjuntos de datos muy grandes. Este no suele ser el caso en el mundo real. Los algoritmos que funcionan bien para datos grandes (por ejemplo, redes neuronales) no son adecuados para conjuntos de datos pequeños.

Para resumir, si comienza con Kaggle, pasará mucho tiempo para dominar una parte muy pequeña del campo, y la mayoría de las otras técnicas se dejarán sin explorar, lo que tendrá que estudiar de la manera convencional. Así que bien podría comenzar con la forma convencional.


He creado una extensa hoja de ruta para comenzar con ML, a la que puede referirse: la respuesta de Prasoon Goyal a ¿Qué consejo le daría a un aspirante a científico de datos?

Para los principiantes que tienen como objetivo aprender y trabajar en el dominio de la ciencia de datos, son muchas fuentes en línea y Kaggle es una plataforma en la que podrá encontrar recursos del proyecto y podrá probar sus habilidades y mejorar sus conocimientos.

Para empezar, puedo sugerir una vía de aprendizaje de alto nivel, pero las necesidades de aprendizaje individuales con respecto al tiempo y al esfuerzo pueden requerir ajustes apropiados en estos pasos.

Los programadores principiantes y novatos pueden seguir aprendiendo herramientas de visualización de datos, análisis y bases de datos como Tableau, Excel y My SQL. ¡Aprender estas herramientas le permitirá sentirse cómodo y disfrutar trabajando con datos!

Después de lo cual puede seguir su aprendizaje avanzado en estos pasos

Primer paso: Intente avanzar en sus capacidades de programación (en la herramienta de programación Python o R).

Segundo paso: obtenga el conocimiento hasta las aplicaciones de estadística y probabilidad intermedias en escenarios de negocios, domine sus habilidades hasta las matemáticas de nivel universitario, comprenda cómo los algoritmos y métodos de aprendizaje automático se aplican y utilizan en casos de la vida real.

PRECAUCIÓN: para empezar, solo céntrate en dos o tres algoritmos de Machine Learning. Diga regresión lineal, regresión logística, agrupación de K-medias e intente comprender ( en profundidad) cómo se aplican en diferentes casos de uso.

Tercer paso: la prueba real de sus habilidades avanzadas de análisis y aprendizaje automático. Trabaje con proyectos independientes, puede obtener los conjuntos de datos de plataformas como Kaggle. Intente implementar su aprendizaje paso a paso mientras resuelve los objetivos de estos proyectos.

Mi sugerencia es una descripción general de alto nivel sobre lo que puede hacer para comenzar, pero encontrará el mejor camino una vez que comience a aprender. ¡Espero que mi respuesta lo ayude a comprenderlo!

¿Puedes aprender a conducir participando en carreras de rally?

Claro que puede, al descubrir lentamente qué hacen los diferentes pedales, cómo reacciona su automóvil cuando gira el volante. ¿Pero es la mejor manera? ¡Probablemente no!

Lo que Kaggle hace es increíble, una plataforma donde se reúnen algunos de los mejores científicos de datos del mundo para resolver problemas prácticos. Y es cierto que los principiantes también se benefician de los núcleos de código abierto donde personas experimentadas publican tutoriales y comparten ideas. Pero lo que no obtendrá directamente de Kaggle (sin buscar otras fuentes) es la comprensión de lo que hacen los diferentes algoritmos de ML y qué usar cuando se les da un problema en particular. Además, kaggle es ligeramente diferente de cómo es la ciencia de datos en el exterior. Los datos que obtendrá fuera son mucho más desordenados y, a menudo, necesitará obtener los datos usted mismo. Ciertamente no puedes aprender eso en Kaggle.

ML es un subconjunto de la ciencia de datos, que es un campo en el que necesitará conocimiento en informática, estadísticas y dominio en el problema que está resolviendo. necesitará una comprensión fundamental de estos temas para poder dominar ML. Por lo tanto, le sugiero que comience por lo básico al elegir un par de cursos de ML / ciencia de datos. El curso de Andrew Ng es bastante popular. Si realmente te gusta, elige algunos cursos sobre estadística y ciencias de la computación para aumentar tu conocimiento. Una vez que haya completado los cursos, podrá leer los núcleos disponibles en kaggle y comprender cómo piensan y trabajan los científicos que practican los datos. Entonces puede ensuciarse las manos en los muchos conjuntos de datos disponibles.

Probablemente aprenderás mucho.

Para eso, necesitará participar en múltiples concursos, leer las diferentes publicaciones de blog (estas son excelentes para aprender más sobre las soluciones ganadoras), revisar los núcleos regularmente, leer las discusiones del foro, etc.

Algunas cosas que aprenderás:

  • Ingeniería de características : esta es probablemente una de las mejores cosas para aprender de ella. De hecho, Kaggle lo expone a una gran variedad de problemas, cada uno viene con su conjunto específico de desafíos y, por lo tanto, presenta oportunidades de ingeniería.
  • Análisis exploratorio de datos (EDA en resumen): muchos núcleos son excelentes demostraciones de este tema. Aquí está el enlace [1] al núcleo de Python más votado.
  • Ensamblaje [2]: este parece ser el camino a seguir para la mayoría de las soluciones ganadoras.
  • La importancia de la validación cruzada [3]: valide siempre su modelo. Asegúrese de utilizar la forma correcta ( CV estratificado [4] cuando trabaje con un problema de clasificación, por ejemplo, o CV de serie temporal [5] cuando trabaje con problemas relacionados con el tiempo)

Dicho esto, no aprenderás todo sobre el aprendizaje automático, ni mucho menos.

No aprenderás, por ejemplo:

  • Cómo poner modelos en producción : este no es el enfoque de Kaggle. A nadie le importa si pudieras poner en producción tu conjunto de 30 modelos de 30 etapas para miles de usuarios si superas la tabla de clasificación privada.
  • Cómo escribir codeb idiomático : ocasionalmente estarás expuesto a algunos de ellos, pero el enfoque principal no es ese. De hecho, la mayor parte del código de Kaggle es frágil, está basado en un cuaderno, no es (fácilmente) generalizable, difícil de refactorizar …
  • Cómo colaborar con otros profesionales del aprendizaje automático: bueno, esto no es del todo cierto ya que la mayoría de las competiciones están abiertas a equipos, pero no es lo mismo que colaborar en un producto de producción.
  • Cómo intercambiar el rendimiento estadístico con la complejidad , la capacidad de interpretación , el tiempo de ejecución y el uso de los recursos : de nuevo, a nadie le importará si su modelo ganador tarda 3 días en entrenarse y solo puede ser mantenido por una persona. Siempre que funcione bien en la tabla de clasificación privada.

¿Cómo adquirir estas habilidades entonces?

Esto no es una sorpresa, pero la respuesta es trabajar como ingeniero de aprendizaje automático o científico de datos en una empresa.

Kaggle es un buen recurso complementario pero no es el único.

Buena suerte.

Notas al pie

[1] Tutorial completo de preprocesamiento | Kaggle

[2] Ensemble learning – Wikipedia

[3] Validación cruzada (estadísticas) – Wikipedia

[4] Comprender la validación cruzada estratificada

[5] sklearn.model_selection.TimeSeriesSplit – documentación de scikit-learn 0.19.0

Hola, pasé dos años haciendo competiciones de Kaggle, pasando de novato en aprendizaje automático competitivo a 12 en el ranking de Kaggle y ganando dos competiciones en el camino.

Kaggle me ha sido de gran ayuda para aprender a modelar y especialmente a la validación cruzada. La comunidad y la naturaleza misma de las competencias lo empujan a aprender todo tipo de enfoques de modelado, mantenerse al día con las nuevas tecnologías y paquetes y aprender a confiar en la validación cruzada como si su vida dependiera de ello.

Ahora, si bien el modelado es la parte atractiva de cualquier proyecto de aprendizaje automático, también es una de las partes en las que realmente pasará la menor cantidad de tiempo (obviamente hay excepciones, como si usted es un ingeniero de aprendizaje automático que desarrolla una costumbre tipo de modelo desde cero).

En un entorno empresarial, el 80–90% del tiempo se dedicará a definir problemas que valen la pena resolver, definir métricas de evaluación, obtener acceso a los datos sin procesar, comprender los datos, generar características, presentar hallazgos y trabajar con ingenieros para implementar el modelo en producción a través de API u otros enfoques automatizados.

Kaggle proporcionará una exposición extremadamente limitada a todo menos al modelado.

Entonces, no, no aprenderá el aprendizaje automático por completo a través de Kaggle, al menos no el tipo de aprendizaje automático que una empresa le pagará por hacer.

Pero … un rendimiento consistentemente bueno en Kaggle podría ser suficiente para comprarte la oportunidad de entrevistarte para un papel que eventualmente te permitirá aprender todo lo demás.

Estoy totalmente de acuerdo en que el trabajo que realiza en Kaggle es un gran comienzo en Machine Learning, pero solo representa el 10% o menos del proceso para un proyecto exitoso en el mundo real.

Mi experiencia de más de 45 años tratando de resolver problemas usando datos, tuvo dos piezas importantes que deben ocurrir.

Nunca recuerdo un proyecto en el que ya estuviéramos recopilando los datos correctos. Comprender qué más se necesita requiere (OMI) el desarrollo de una o más teorías de lo que está sucediendo, seguido de conjeturas sobre qué datos serían necesarios para respaldar esas teorías. Cuando los datos aún no están disponibles, se deben desarrollar métodos de recolección, etc. En la mayoría de las competencias de Kaggle, puede pasar muchas horas tratando de obtener una mejora de 0.02 en R2. En el mundo real, obtendrá las mejores ganancias si pasa esas horas buscando datos adicionales que mejoren R2.

En segundo lugar, una vez que se define un conjunto de datos inicial, siempre se necesitará una gran cantidad de limpieza antes de ejecutarlo con su primer método. En las competencias de Kaggle, he visto conjuntos de datos donde uno o dos puntos son cuestionables. En todo mi mundo real, existían cientos o miles de puntos de datos que eran basura.

Si busco un trabajo, me gustaría una victoria de Kaggle o dos y algo de experiencia (¿pasante?) Ayudando a los equipos a resolver el problema en el mundo real. Si ya tengo un trabajo, esas herramientas de aprendizaje automático deberían convertirlo en un miembro muy respetado del equipo.

No.

No solo eso no lo recomiendo para principiantes.

Le da una falsa sensación de lo que realmente implica el trabajo.

La construcción de modelos es una pequeña parte del trabajo y, para ser brutalmente honesto, es la parte más fácil.

Si quieres conseguir un trabajo en el mundo real, aprende a manejar datos y aprende los conceptos básicos de Python realmente bien.

Después de que te sientas cómodo con lo básico, aprende la disputa de datos en Python con Pandas y luego SQL.

Esto es lo que creo que es una buena impresión azul.

  • Python Básico
  • Pandas
  • matplotlib
  • Scikit-learn
  • Keras

Mientras aprende los fundamentos anteriores, querrá tomar una clase de estadísticas y álgebra lineal. Solo lo básico. Un curso tipo Khan Academy será suficiente.

Aquí hay un curso de Python del mundo real para comenzar: El curso completo de Python para ingenieros de aprendizaje automático

Gratis para los primeros 5.

No puedes aprender ML completamente con Kaggle. Tan bueno como Kaggle es, también necesitas aprender de esos cursos. Si son complejos, descubra qué es lo que lo hace complejo, analice todo y descubra en qué es realmente bueno y qué necesita repasar. Encuentre una estrategia para aprender las cosas a su manera. Con todo, Kaggle es un muy buen sitio que te enseña a pensar por ti mismo y resolver problemas del mundo real, eso es genial. No dejes de usarlo, pero asegúrate de que también puedes hacer esos cursos. Aquí están algunas de mis recomendaciones.

  • Aprendizaje automático | Coursera
  • Introducción al curso de inteligencia artificial y capacitación en línea | Udacity

El segundo es un curso de Kaggle Udacity y el primero es de Andrew Ng, uno de los mejores en Machine Learning.

Aprendí casi todo lo que sé sobre Data Science de Kaggle. Es una gran comunidad, y hay muchas personas dispuestas a enseñar.

Necesitas estar bastante motivado. Tomará un par de años de arduo trabajo ser “bueno” en Kaggle, y habrá muchas competiciones en las que lo harás mal antes de dominarlo.

Pero si las competiciones de Kaggle son divertidas para ti y no te importa estar bajo en la clasificación, puedes aprender mucho probándote a ti mismo y luego leyendo las soluciones del ganador y viendo lo que hicieron que te perdiste.

No, a menos que tengas una sólida formación en matemáticas. Necesitará cálculo multivariable, álgebra lineal, teoría de la probabilidad y estadísticas avanzadas (nivel de posgrado), ya que estos son los fundamentos de la mayoría de los algoritmos de aprendizaje automático y son necesarios para comprender los documentos lo suficiente como para conocer las fortalezas y limitaciones de los algoritmos (muy importante para aprovechar correctamente los algoritmos de aprendizaje automático). Una vez que tenga esto, Kaggle es útil para familiarizarse con el análisis de datos y hacer proyectos para demostrar su competencia.

More Interesting

Cómo mejorar en el aprendizaje automático

¿Cuál es el bosquejo de la informática?

¿Cómo se usan las supercomputadoras?

Pero, ¿podría Alan Turing interpretar a Benedict Cumberbatch en una película biográfica?

¿Qué habilidades necesito para hacer una IA recolectora de basura que pueda recolectarse a través de robots?

¿Cómo difieren la lógica binaria y la lógica aritmética?

¿Qué cambios se pueden hacer al algoritmo de Floyd-Warshall para resolver este problema NAJKRACI de SPOJ?

¿Cómo es estudiar informática en Princeton?

Escritores y autores: ¿Cuáles son sus situaciones típicas al obtener nuevas ideas o un mensaje "clics" en la mente?

¿Cómo se ha visto afectada la epistemología por los recientes desarrollos en el aprendizaje automático?

¿Qué es un enrutador de software y cómo se implementa el plano de datos en los enrutadores de software?

¿Cuál es la diferencia entre una maestría en informática (MS) y una maestría en aplicaciones informáticas (MCA)? Este año busqué una Licenciatura en Aplicación de Computadoras (BCA), ¿qué título debo elegir ahora?

Cómo crear una inteligencia general artificial

¿Cómo aprendo matemáticas del nivel cero? Soy un graduado en informática y bastante decente en mi función de programación. Extraño el contexto del uso de las matemáticas en la vida; No puedo visualizarlo.

Si podemos navegar por los contenidos de Internet en el sandbox (como el navegador Chrome), ¿por qué necesitamos establecer otros valores?