Cómo implementar prácticamente algoritmos enseñados por Andrew Ng en su curso de aprendizaje automático

Así que estoy a punto de completar el curso el próximo mes. Esbozaré mi proceso de mantener el equilibrio entre el curso y la aplicación práctica.

Si ha completado el curso, habría seguido los siguientes conceptos:

  • Regresión lineal (multivariante)
  • Regresión logística
  • K significa agrupación
  • Clasificación
  • Redes neuronales
  • SVM
  • Sistemas de recomendación

Creo en el aprendizaje mediante la práctica. Aprender haciendo cosas, fallando y volviendo a levantarse. Entonces, comencé a trabajar en conjuntos de datos reales a medida que aprendía un nuevo conjunto de datos.

Aquí hay algunos conjuntos de datos en los que trabajé para los conceptos respectivos:

  • Regresión lineal / Regresión logística
    • Vivienda de Boston | Kaggle
  • K significa agrupamiento
    • Iris Species | Kaggle
    • Conjunto de datos de modelado de conocimiento del usuario
    • Conjunto de datos de lecturas por hora de la Junta de electricidad de Tamil Nadu
    • Estadísticas de partidos de torneos importantes de tenis
  • Clasificación
    • Conjunto de datos de recopilación de spam de SMS
  • Sistemas de recomendación
    • Conjunto de datos de datos de recomendación Chicago de entrada
    • Interacciones Subreddit para 25,000 usuarios
  • SVM
    • Datos LIBSVM: clasificación, regresión y etiquetas múltiples

Te sugiero que trabajes un poco más en los siguientes temas:

  • Análisis de series temporales
  • Estimacion
  • Prueba de hipótesis
  • Prueba T
  • prueba de chi-cuadrado
  • Anova
  • Correlación
  • Spark para manejar gran cantidad de datos
  • Hadoop
  • Colmena
  • SQL (en el mundo real no tendrá conjuntos de datos listos en la mano. Deberá extraerlos manualmente ejecutando consultas en bases de datos o volcados)
    • Bases de datos relacionales y no relacionales
  • Procesamiento natural del lenguaje
  • Trabaja con herramientas como Scipy, Matplotlib, Numpy

De aquí en adelante, tendrá la opción de trabajar, ya sea aplicando Machine Learning o investigando sobre ello.

Si planea ir del lado de la aplicación, es decir, trabajar en alguna empresa como Data Scientist, luego pasar a las herramientas utilizadas en la industria y tratar de ponerlas en práctica. Las empresas quieren contratar personas que no necesitan entrenar desde cero.

Si planeas seguir adelante en el frente de la investigación, deberás trabajar mucho en tu partido en lugar de en las herramientas. Sin embargo, incluso si elige el lado de la aplicación, necesitará trabajar un poco en matemáticas según el dominio en el que trabaja su empresa.

Espero que la respuesta te ayude 🙂

Querrás usar un lenguaje de programación de producción como Python. La razón por la que Python es excelente para este tipo de trabajo es que es fácil de trabajar y tiene múltiples bibliotecas matemáticas. Eche un vistazo a estas bibliotecas:

  • scikit-learn: aprendizaje automático en Python
  • NumPy – NumPy
  • Biblioteca de análisis de datos de Python

Si todavía no te sientes cómodo con Python, te sugiero que lo aprendas primero. Debería tener al menos una comprensión básica de los conceptos de programación si pudo completar las tareas de Octave en el curso del Profesor Ng. Aprender Python no debería causarte muchos problemas.


Su próximo paso será descubrir qué tipo de aplicación “práctica” desea crear. Crear una aplicación de aprendizaje automático requiere un conjunto de datos. Esto no debería ser demasiado difícil de encontrar, pero para comenzar, eche un vistazo a Data.gov y Titanic: Machine Learning from Disaster. El sitio web de datos del Gobierno de los EE. UU. Proporciona bastante información que puede utilizar y Kaggle es un sitio web de competencia de aprendizaje automático. El enlace para Kaggle es una de sus competencias de “inicio” que utiliza datos del desastre del Titanic.

Mientras crea su aplicación, decida qué algoritmos de ML funcionarán mejor y comience a planificarlo. No dude en buscar ayuda en la web o hacer referencia al curso. Comprar una introducción al libro de aprendizaje automático también sería una gran idea. Si se atasca o obtiene resultados inesperados, haga preguntas aquí o en otros sitios web que ofrezcan un foro relevante.

Al igual que cualquier otro problema de programación, la práctica lo ayudará a mejorar.

Tenga un lenguaje adecuado de ML a su disposición. (Python en mi caso ..)

Además, tenga un buen conjunto de datos o cree uno usted mismo … (utilizando distribuciones aleatorias y todo … y luego expórtelo a un archivo .CSV)

Y solo busque el repositorio ML desde cero …

Ahora depende de usted si desea hacer todo desde cero o usar módulos de código abierto …

La mejor parte es primero comprender bien el algoritmo, implementarlo en una hoja de papel blanco … y luego

Estamos listos para despegar …

Enlace Edit-1 para el repositorio github que adoro ..

eriklindernoren / ML-From-Scratch

Enlace Colección de conjuntos de datos

Depósito de aprendizaje automático UCI: conjuntos de datos

Fuente – Google …

El primer paso es identificar un problema. Identificar el problema correcto para resolver es una habilidad subestimada. Una vez que tenga ese problema, recuerde que la mayoría de los problemas se pueden resolver con buenos algoritmos. Si necesita usar ML, recuerde la definición básica de ML.

Un sistema S que mejora en la tarea T a medida que adquiere más experiencia E en forma de ejemplos supervisados ​​( x , y ) donde x es la entrada al sistema e y es la salida esperada.

Trate de enmarcar el problema en términos de S, T y E. Una vez que tenga eso, S es su sistema de ML que puede tomar del curso de Ng o de otro lugar. La tarea T es lo que estás tratando de resolver. E es un conjunto de datos que ha obtenido por algún método (conjuntos de datos gratuitos / los recopiló usted mismo, etc.).

El quid, por supuesto, es definir el problema en términos que le permitan resolverlo con ML. Después de eso, las definiciones del curso de las funciones de costo adecuadas, etc. se hacen cargo y usted está en territorio conocido.

Aquí hay una manera de hacerlo, pero no lo tome como la única manera. Es más una idea para ti mezclar con otras respuestas aquí

También está tomando en cuenta las últimas conferencias de Andrew, todas utilizando Python.

Como Andrew menciona muchas veces en el curso, GitHub es su mejor fuente para aventurarse en el mundo real de ML. Entonces comience allí, pero primero, encuentre un problema :

  1. Piensa en lo que más te interesa, fuera de la programación de computadoras. ¿Es música? ¿Algún tipo de ingeniería (eléctrica, industrial, electrónica, etc.) de automóviles? ¿Moda? Es importante que te apasione cualquier área que elijas.
  2. Ahora elija (piense) un problema para resolver en esa área. Sé valiente y valiente. Elija un problema difícil, siempre puede reducirlo o cortar una pieza para que pueda trabajar.
  3. Ahora es el momento de ingresar a GitHub y explorar lo que sea que esté disponible para su problema. Es probable que encuentre algo que pueda usar como punto de partida. Sea creativo en sus búsquedas, busque conceptos más generales si su específico aún no está allí.
  4. Por lo general, encontrará referencias a algunos conjuntos de datos buenos allí, pero si no, su próximo paso es buscar datos relacionados con su área. Busque en el archivo de impresión electrónica de arXiv.org documentos relacionados con su área, probablemente la forma más rápida de encontrar todos los conjuntos de datos disponibles públicamente.
  5. Por último, pero no menos importante, prepárate para generar datos tú mismo. Estoy de acuerdo con otras respuestas, la mayor parte de su código no utilizará marcos de ML, sino que masajeará los datos para alimentar los modelos. Puede que no sea una tarea fácil, pero confía en mí, aprenderás muchísimo y obtendrás mucha satisfacción al hacerlo.
  6. En cuanto a qué modelos usar, creo que tendrá suficiente como Andrew lo llama ‘intuición’ para tomar la decisión correcta.
  7. Tal vez solo un consejo: no tenga miedo de usar modelos pre-entrenados (VGG, etc.) y Keras en sus soluciones. Al principio de mis estudios de ML me aconsejaron usarlos, y puedo confirmar personalmente: sí, funcionan casi con cualquier conjunto de datos (imagen). Andrew mostró cómo hacerlo, así que solo vuelve y revisa si es necesario.

Ahora, ¿está por encima de la única forma de hacerlo? Definitivamente no. Pero esto funcionó para mí y estoy convencido de que también funcionará para otros.

¡Buena suerte!

Comparta su experiencia en las próximas semanas y meses. ¡Me encantaría saber sobre su viaje!