¿Cómo es trabajar en proyectos de aprendizaje automático en la industria del software?

En mi experiencia muy limitada, tuve la oportunidad de trabajar en varios proyectos de Data Science para diferentes requisitos y escalas. Las siguientes son las cosas que he hecho hasta ahora:

  1. Capturando los requisitos del proyecto
    Esta es una de las tareas más importantes y de fase inicial que la gente piensa que es muy básica, pero por otro lado es muy importante hacer las preguntas correctas sobre el análisis / producto / característica / … al principio para que todos estén en la misma página.
    Además, deberá comprender las expectativas del cliente / gerente / empresa de su parte y explicarles, si es necesario, cuál es su comprensión sobre los objetivos.
  2. Diseño de flujo de trabajo EDA y datos
    Paso mucho tiempo diseñando el flujo de trabajo de ciencia de datos y entendiendo el flujo de datos de las compañías para tener el mapa de datos completo en mi mente. Necesito ver los datos manualmente, también algunas estadísticas básicas sobre los datos (media, modo, distribución, valores perdidos, desequilibrio, etc.) para saber a qué me enfrentaré.
  3. Selección de herramientas y diseño de marco de algoritmo
    Puede suceder que algunos datos se almacenen en MySQL, algunos datos en archivos planos, algunos en Hadoop, también necesita obtener datos de alguna API tranquila como datos de redes sociales, etc. Por lo tanto, deberá decidir cómo va a utilizarlos. datos en su análisis. Si los datos son grandes, puede utilizar R directamente. Tendrá que hacer mucho trabajo en el entorno de Hadoop, así que prepárese para ello.
  4. Limpieza de datos
    Ahora viene la tarea más lenta y frustrante de todo el problema. Deberá limpiar todos los datos según sus necesidades. Por lo tanto, el comando de shell de Linux, el script PIG, SQL, Hive, Python, etc., lo ayudarán.
  5. Modelo de construcción (aprendizaje automático | minería de datos | estadística)
    En algún momento, uso Mahout si los datos son grandes, pero la mayoría de las veces tiendo a usar R (para minería de datos preferiblemente) y Python (para minería de texto preferiblemente)
  6. Sintonia FINA
    Todo está funcionando bien ahora, pero los resultados no son excelentes para los que te han contratado. Ahora es el momento de ajustar su modelo, mejorando la calidad de los datos de entrada si es posible, adoptando algún otro algoritmo / metodología (investigación).
  7. Entrega del proyecto
    Esta es nuevamente una tarea muy importante. La presentación es muy importante, como una visualización atractiva (D3, R-ggplots), los informes / presentaciones intuitivos pueden ayudarlo a comunicar su análisis a los clientes de manera efectiva.

Hay una cita muy famosa en Data Science:

“Sus herramientas no deberían determinar cómo responde las preguntas. Sus preguntas deben determinar qué herramientas usa”.

En mi opinión, las actividades típicas realizadas por un científico de datos (el término normal para un “ingeniero de software de aprendizaje automático) son:
1. Limpieza / munging de datos: preparación de los datos para que se puedan aplicar algoritmos de aprendizaje automático. Esto puede implicar varios subpasos como análisis, creación de perfiles, visualización, coincidencia, fusión, deduplicación, etc.
2. Escriba scripts para la recopilación de datos: esto no es común, pero puede ocurrir en algunos proyectos.
3. Construcción del modelo, incluido el diseño y el desarrollo: descifrar algoritmos apropiados para ejecutar los datos, selección de características, poda, etc. El modelo se ajusta y prueba en un proceso iterativo.

Minería de texto: debido a la llegada de datos no estructurados, esto se ha convertido en algo importante. La minería de texto está posiblemente relacionada con los puntos 1 y 3 anteriores.

Las herramientas típicas utilizadas son R y SAS. R tiene utilidades de preparación de datos además
a los modelos (algoritmos de ML y su realización). También puede ayudar en la visualización de datos. La visualización sofisticada se realiza a través de herramientas como Tableau o Qlikview.

En caso de que el tamaño del conjunto de datos sea muy grande, se pueden usar Mahout o las alternativas de Hadoop de próxima generación como Spark.