Future Technology: Machine Learning

Level:

Beginner

Date:

04.03 - 08.03.19

16.09 - 20.09.19

Duration:

5 days

Audiencia

En este curso aprenderá cómo identificar problemas de Machine Learning e implementar soluciones en Python. Si bien en el curso se hará referencia a las funciones, librerías, etc. que se utilizarán, no se profundizará en los detalles del lenguaje. Por ello, es recomendable que los asistentes tengan al menos un conocimiento básico de Python.

Inhalt

Día 1: Instalación e introducción

Introducción a Machine Learning:

  • ¿Qué es?
  • Aplicaciones (Predicciones financieras, Perfiles, Text Mining, Reconocimiento de Imágenes)
  • Aprendizaje supervisado vs no supervisado
  • Otras implementaciones: Information Retrieval, Optimización, Análisis de Grafos
  • Análisis exploratorio: ¿Qué es y por qué es importante?

Instalación de Python

Instalación de PyCharm

Introducción a Python para Machine Learning:

  • Introducción a Python
  • Introducción a librerías fundamentales para ML:
    • numpy
    • pandas
    • scikit
    • matplotlib

Vistazo a PyCharm:

  • Funcionalidades
  • Shortcuts útiles
  • Modo Debug
  • Data View

Día 2: Análisis exploratorio

Guía para la realización de un análisis exploratorio:

  • ¿Qué clase de problema tengo? ¿Hay una variable objetivo?
  • ¿Cómo se ven mis Datos? ¿Qué variables están correlacionadas? ¿Todas las correlaciones son importantes? ¿Con qué criterio se determina? ¿El criterio es sólo estadístico?
  • ¿Qué técnicas estadísticas utilizamos para hacer un análisis exploratorio? Medidas resumen, pruebas de correlación, PCA, Análisis de correspondencias, etc.
  • Visualización como un aliado: ¿Cómo extraer insights de gráficos? Análisis de gráficos sencillos y complejos

Las respuestas a estas preguntas se darán a partir de un trabajo colectivo del grupo, en donde los alumnos aprenderán no sólo acerca de las técnicas en sí sino también cómo llevarlas a cabo en Python. En relación a los aspectos técnicos, este curso cubrirá:

  • Carga de datos (CSV, SQL, JSON, etc.)
  • Procesamiento (Subsets, agregaciones, etc.)
  • Métodos estadísticos presentados
  • Gráficos

Día 3: Aprendizaje Supervisado

Contenidos:

  • Conceptos principales del aprendizaje supervisado:
    • Training, Testing y validación
    • Cross-validation
    • Overfitting y Underfitting
    • Generación de variables adicionales
  • Aprendizaje Supervisado en Python
    • Regresiones
    • Naive Bayes
    • Árboles de clasificación y Random Forest
    • SVM
    • Redes Neuronales
  • Medidas de Performance
    • R2
    • Error promedio, error cuadratico medio
    • Matriz de confusión
    • ROC y AUC
  • Aspectos técnicos en Python
    • Separación train y test
    • Generación de variables adicionales
    • Entrenamiento de modelos
    • Predicciones
    • Medidas de performance

Esta jornada comenzará con una breve introducción teórica a los conceptos y técnicas fundamentales del Aprendizaje Supervisado. Siguiendo con el enfoque fuertemente práctico de este curso, los participantes serán divididos en pequeños grupos. Cada uno de ellos entrenará un modelo de Aprendizaje Supervisado distinto.

Todos los equipos recibirán los mismos datos y deberán decidir internamente qué variables adicionales generar. Al final de este proceso, cada grupo compartirá las experiencias y enfoques e ideas con el resto.

La performance del modelo entrenado se testeará con datos desconocidos. Los resultados serán analizados y discutidos en conjunto. El instructor estará naturalmente a disposición durante todo el proceso para cualquier inquietud que pudiere llegar a surgir.

A través de esta experiencia, los participantes no sólo se enfrentan con un problema “real” de Machine Learning sino que también aprende distintas maneras de encararlo usando Python

Día 4: Aprendizaje No Supervisado + Text Mining

  • Aprendizaje No Supervisado:
    • Kmeans
    • Clustering jerárquico & Heatmap
    • Análisis en Componentes Principales/ Análisis de Correspondencia
  • Introducción al Text Mining e Information Retrieval
    • Aplicaciones (Sentiment Analysis, IR, etc.)
    • De las palabras a los números:
      • Pre-procesamiento (Puntuación, mayúsculas/minúsculas, etc)
      • Porting – Stemming
      • Lematización
      • N-gramas
      • Matrices numéricas desde texto

Cada módulo se dará por separado en las sesiones de la mañana y la tarde respectivamente. En ambos casos, la organización será la siguiente:

  • Introducción teórica
  • Ejemplos en Python
  • Análisis de los resultados
  • Ejercicios Prácticos individuales
  • Puesta en común y discusión

A lo largo de ambos módulos se explicarán las herramientas de Python utilizadas, como por ejemplo:

  • Scikit clustering
  • Nltk (Natural Language Toolkit)

Día 5: Del Laboratorio a Producción

A la mañana se trabajará en la implementación de modelos de Machine Learning en un entorno productivo. Ello incluye:

  • Predicciones Online vs. Offline
  • Estrategias de recolección de Datos – Tiempos de respuesta
  • APIs en Machine Learning
  • Predicciones Batch
  • Reportes
  • Dashboards

En este módulo se utilizarán las siguientes herramientas Python, entre otras:

  • Flask
  • Jupyter
  • Dash

A la tarde se hará un breve repaso de los temas tratados y se cerrará con una puesta en común de conclusiones:

  • Vistazo de los temas
  • Discusión: ¿Cómo se relacionan los distintos temas entre sí?
  • Preguntas finales