Machine Learning
Una Intro
"All models are wrong, but some are useful."
- George. E.P. Box.
Taxonomía
Diferentes Tipos de Algoritmos
- Aprendizaje Supervisado:
- Regresión.
- Clasificación
- Binaria
- Multiclase
- Recomendaciones
- Aprendizaje No-Supervisado.
- Clustering.
Aprendizaje Supervisado
Aprendizaje Supervisado
- Clasificación, Regresión y Recomendaciones.
- Contamos con un "set de entrenamiento"
- El objetivo es a partir del set de entrenamiento derivar un modelo.
- Que luego nos sirva para realizar predicciones.
Parámetros
- Los parámetros son los valores que el algoritmo tiene que aprender.
- f(trainingSet) = parameters
- f(testSet,parameters) = predictions
Cross Validation
- Dividir el set de entrenamiento en 2: train & test
- Usar solo "train" para entrenar el algoritmo.
- Usar el set de test para evaluar los resultados.
Evaluando un Algoritmo de ML
- Hace falta definir una métrica que nos diga que tan bien o mal ha funcionado el
algoritmo.
- Hay muchas métricas posibles:
- RMSE
- Log Loss
- Cross Entropy
- AUC Score
- F1-Score
Hiper-Parámetros
- Son parámetros que sirven para "tunear" un algoritmo.
- Por ejemplo si nuestro algoritmo es ajustar un polinomio el grado del polinomio es un
hiper-parámetro y los coeficientes son los parámetros.
- Un algoritmo que no tiene hiper-parámetros es "libre de parámetros"
- Para encontrar los hiper-parámetros óptimos se usa una combinación de grid-search y
cross-validation
Grid Search & Cross Validation
- Dividir el set de datos en 3:
- Set de entrenamiento
- Set de validación
- Set de test
- Armar una lista de valores posibles para los hiper-parámetros
- Para cada valor posible:
- Entrenar el algoritmo con el set de entrenamiento.
- Validar con el set de validación
Grid Search vs Random Search
- Grid Search:
- Analizar cada valor posible para cada hiper-parámetro
- Random Search:
- Probar valores aleatorios para cada hiper-parámetro.
Overfitting & Underfitting
Sobre la "expresividad de los modelos"
- Diferentes modelos tienen diferentes capacidades de expresarse.
- La expresividad del modelo está directamente ligada a su complejidad.
- Un modelo es el adecuado si no es demasiado simple ni demasiado complejo para
nuestro problema.
Underfitting
Underfitting
- El underfitting se da cuando el modelo no tiene suficiente capacidad expresiva.
- Síntomas: Malos resultados para el set de entrenamiento mismo!
- Diagnóstico: "Visión borrosa": Nuestro algoritmo no ve bien
- Solución: Aumentar la complejidad del modelo o cambiar de algoritmo.
Overfitting
Overfitting
- El overfitting se da cuando el algoritmo no puede generalizar bien a datos nuevos.
- Síntomas: Buen resultado para el set de entrenamiento pero mal resultado para el set
de test.
- Diagnóstico: Overfitting, nuestro algoritmo alucina!
- Solución:
- Conseguir más datos
- Regularización
Overfitting
- Todos los algoritmos pueden caer en overfitting.
- Algunos tienen una mayor o menor tendencia a este problema.
Regularización
- En ML la regularización es una forma de controlar la complejidad del modelo.
- La idea es penalizar la complejidad del modelo pero sólo si es innecesaria.
- El costo de tener un modelo más complejo es un hiper-parámetro de nuestro
algoritmo.
Bias & Variance
Big Data & ML
Big Data & ML
- Tener más datos siempre es una buena idea.
- Para evitar overfitting, cuantos más datos tenemos más expresivo puede ser el modelo
que usemos. Mayor expresividad = mayor inteligencia.
- Conseguir más datos es más importante que tener un buen algoritmo!
Machine Learning:
Las Tribus
Los Simbolistas
Simbolistas
- Principios: Lógica, Filosofía.
- Tipo de razonamiento: If, then, else.
- Algoritmo estrella: árboles de decisión, random forests
Los Conexionistas
Los Conexionistas
- Principios: Sinapsis, paso de mensajes, ajuste continuo.
- Tipo de razonamiento: Aprender de los errores.
- Algoritmo estrella: Redes Neuronales, Backpropagation.
- Deep Learning
- CNNs
Evolucionistas
Evolucionistas
- Principios: Evolución, selección natural.
- Tipo de razonamiento: Supervivencia del mejor, mutación.
- Algoritmo estrella: Algoritmos genéticos.
Bayesianos
Bayesianos
- Principios: Probabilidades a-priori y ajuste en base a la evidencia.
- Tipo de razonamiento: Probabilístico, observación.
- Algoritmo estrella: Naive Bayes, Redes Bayesianas, MCMC.
Analogistas
Analogistas
- Principios: Analogía
- Tipo de razonamiento: Si parece un pato es un pato
- Algoritmo estrella: KNN, SVM
The No Free Lunch Theorem
NFL Theorem [Wolpert ‘97]
"Promediados sobre todos los problemas posibles dos algoritmos de optimización
cualesquiera son equivalentes"
Un set de datos
(libro,azul) = 1
(auto, azul) = 1
(auto, verde) = 0
(teclado, azul) = 1
(guitarra, verde) = 0
(lapicera, roja) = 0
(guitarra, azul) = 1
(lapiz, verde) = 0
(libro, rojo) = 0
(auto, rojo) = 0
(zapato, azul) = 1
(zapato, verde) = 1
(lapicera, azul) = 1
(cuaderno, azul) = 1
(cuaderno, rojo) = 0
(lapiz, azul) = 1
Un set de datos
(libro,azul) = 1
(auto, azul) = 1
(auto, verde) = 0
(teclado, azul) = 1
(guitarra, verde) = 0
(lapicera, roja) = 0
(guitarra, azul) = 1
(lapiz, verde) = 0
(libro, rojo) = 0
(auto, rojo) = 0
(zapato, azul) = 1
(zapato, verde) = 1
(lapicera, azul) = 1
(cuaderno, azul) = 1
(cuaderno, rojo) = 0
(lapiz, azul) = 1
Un set de datos
(libro,azul) = 1
(auto, azul) = 1
(auto, verde) = 0
(teclado, azul) = 1
(guitarra, verde) = 0
(lapicera, roja) = 0
(guitarra, azul) = 1
(lapiz, verde) = 0
(libro, rojo) = 0
(auto, rojo) = 0
(zapato, azul) = 1
(zapato, verde) = 1
(lapicera, azul) = 1
(cuaderno, azul) = 1
(cuaderno, rojo) = 0
(lapiz, azul) = 1
95%
Un set de datos
(libro,azul) = 1
(auto, azul) = 1
(auto, verde) = 0
(teclado, azul) = 1
(guitarra, verde) = 0
(lapicera, roja) = 0
(guitarra, azul) = 1
(lapiz, verde) = 0
(libro, rojo) = 0
(auto, rojo) = 0
(zapato, azul) = 1
(zapato, verde) = 1
(lapicera, azul) = 0
(cuaderno, azul) = 0
(cuaderno, rojo) = 1
(lapiz, azul) = 0
Un set de datos
(libro,azul) = 1
(auto, azul) = 1
(auto, verde) = 0
(teclado, azul) = 1
(guitarra, verde) = 0
(lapicera, roja) = 0
(guitarra, azul) = 1
(lapiz, verde) = 0
(libro, rojo) = 0
(auto, rojo) = 0
(zapato, azul) = 1
(zapato, verde) = 1
(lapicera, azul) = 0
(cuaderno, azul) = 0
(cuaderno, rojo) = 1
(lapiz, azul) = 0
5%
NFL Theorem
- Corolario: Todo algoritmo funciona mal con algún set de datos.
- Corolario 2: Dado un set de datos cualquier algoritmo puede ser el mejor.
NFL Theorem
- Corolario: Todo algoritmo funciona mal con algún set de datos.
- Corolario 2: Dado un set de datos cualquier algoritmo puede ser el mejor.
Esto solo es cierto si consideramos TODOS los problemas posibles.
La mayoría de los problemas de optimización no tiene sentido.
Solo nos interesan los problemas que pueden tener sentido.
Feature Engineering
Feature Engineering
- Es muy importante que los "features" de nuestros datos sean los adecuados para
nuestro algoritmo.
- A veces nos hace falta agregar nuevos features.
- A veces nos hace falta quitar features.
- A veces nos hace falta transformar features.
Agregando Features
- Agregar features permite modelos más complejos.
- Por ejemplo podemos agregar funciones no lineales de atributos que ya tenemos (sqrt,
log, log log, etc)
- O podemos agregar features que muestren la interacción entre 2 features ya existentes
- (edad, localidad, género)
- (edad, localidad) (edad, género) (género,localidad) etc.
Eliminando Features
- Algunos features pueden llevar al overfitting, ej: IDs, etc.
- Algunos features son ruidosos y no aportan nada.
- Ej: la altura del cliente si estamos estimando su riesgo financiero.
Transformando Features
- El caso más típico es el de atributos categóricos.
- Ejemplo: Color (rojo, verde, azul)
- Técnicas de transformación:
- One hot encoding
- Binary encoding
- Feature Hashing
Feature Hashing (The Hashing Trick)
- Usar una función de hashing para determinar la dimensión de un atributo.
- Ejemplo: Convertir un texto en un vector numérico.
Ensambles
Ensambles
- La unión hace la fuerza.
- Invariablemente las mejores soluciones siempre surgen de una combinación de varios
algoritmos.
Ensambles: Bagging
- Generar un bootstrap a partir del set de entrenamiento (muestreo con reemplazo del
mismo tamaño que el set de entrenamiento)
- Entrenar el algoritmo con este set
- Generar otro bootstrap
- Entrenar el algoritmo con este set
- Etc..
- Resultado final: Promedio o por votación.
Ensambles: Boosting
- Entrenar un algoritmo.
- Entrenar otro algoritmo que aprenda a corregir los errores del anterior.
- Etc.
- Ejemplo: GBM, XGBoost
Ensambles: Stacking
- Entrenar varios algoritmos diferentes.
- Entrenar un algoritmo que a partir de los algoritmos anteriores aprenda a generar las
predicciones correctas.
Tools
Tools
Python : Pandas, scikit-learn, Jupyter, matplotlib, seaborn, XGboos, TensorFlow
R: X1071, Caret, Paqueres Varios, Ggplot, TensorFlow(?!)
El Proceso (?)
El Proceso
- Es una tarea 100% artesanal.
- Gran parte del tiempo se pierde en conseguir los datos, limpiarlos y darles el formato
necesario (80%?)
- Probar modelos y tunearlos (cross validation) es una tarea de fuerza bruta.
- No hay absolutamente ningun standard de deployment
Caos, Caos...
- Datos originales (inmutables)
- Datos limpios
- Datos extendidos
- Feature Engineering
- Modelos
- Ensambles
Unit Testing
If we knew what it was we were doing it
wouldn't be called research.
Wouldn't it?
- No hay resultados "correctos"
- La mejor forma de comparar versiones diferentes es mediante la inspección
manual/visual por parte de un humano.
- Es sumamente importante poder revertir cambios que afectan la performance de los
modelos.
- Una palabra clave: Reproducibilidad.
- Una herramienta importante: Notebooks.
Unit Testing & Machine Learning
¿Preguntas?
Muchas Gracias
lrargerich@gmail.com

TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Learning

  • 1.
  • 2.
    "All models arewrong, but some are useful." - George. E.P. Box.
  • 11.
  • 12.
    Diferentes Tipos deAlgoritmos - Aprendizaje Supervisado: - Regresión. - Clasificación - Binaria - Multiclase - Recomendaciones - Aprendizaje No-Supervisado. - Clustering.
  • 13.
  • 14.
    Aprendizaje Supervisado - Clasificación,Regresión y Recomendaciones. - Contamos con un "set de entrenamiento" - El objetivo es a partir del set de entrenamiento derivar un modelo. - Que luego nos sirva para realizar predicciones.
  • 19.
    Parámetros - Los parámetrosson los valores que el algoritmo tiene que aprender. - f(trainingSet) = parameters - f(testSet,parameters) = predictions
  • 20.
    Cross Validation - Dividirel set de entrenamiento en 2: train & test - Usar solo "train" para entrenar el algoritmo. - Usar el set de test para evaluar los resultados.
  • 21.
    Evaluando un Algoritmode ML - Hace falta definir una métrica que nos diga que tan bien o mal ha funcionado el algoritmo. - Hay muchas métricas posibles: - RMSE - Log Loss - Cross Entropy - AUC Score - F1-Score
  • 22.
    Hiper-Parámetros - Son parámetrosque sirven para "tunear" un algoritmo. - Por ejemplo si nuestro algoritmo es ajustar un polinomio el grado del polinomio es un hiper-parámetro y los coeficientes son los parámetros. - Un algoritmo que no tiene hiper-parámetros es "libre de parámetros" - Para encontrar los hiper-parámetros óptimos se usa una combinación de grid-search y cross-validation
  • 23.
    Grid Search &Cross Validation - Dividir el set de datos en 3: - Set de entrenamiento - Set de validación - Set de test - Armar una lista de valores posibles para los hiper-parámetros - Para cada valor posible: - Entrenar el algoritmo con el set de entrenamiento. - Validar con el set de validación
  • 24.
    Grid Search vsRandom Search - Grid Search: - Analizar cada valor posible para cada hiper-parámetro - Random Search: - Probar valores aleatorios para cada hiper-parámetro.
  • 25.
  • 26.
    Sobre la "expresividadde los modelos" - Diferentes modelos tienen diferentes capacidades de expresarse. - La expresividad del modelo está directamente ligada a su complejidad. - Un modelo es el adecuado si no es demasiado simple ni demasiado complejo para nuestro problema.
  • 30.
  • 31.
    Underfitting - El underfittingse da cuando el modelo no tiene suficiente capacidad expresiva. - Síntomas: Malos resultados para el set de entrenamiento mismo! - Diagnóstico: "Visión borrosa": Nuestro algoritmo no ve bien - Solución: Aumentar la complejidad del modelo o cambiar de algoritmo.
  • 32.
  • 33.
    Overfitting - El overfittingse da cuando el algoritmo no puede generalizar bien a datos nuevos. - Síntomas: Buen resultado para el set de entrenamiento pero mal resultado para el set de test. - Diagnóstico: Overfitting, nuestro algoritmo alucina! - Solución: - Conseguir más datos - Regularización
  • 34.
    Overfitting - Todos losalgoritmos pueden caer en overfitting. - Algunos tienen una mayor o menor tendencia a este problema.
  • 36.
    Regularización - En MLla regularización es una forma de controlar la complejidad del modelo. - La idea es penalizar la complejidad del modelo pero sólo si es innecesaria. - El costo de tener un modelo más complejo es un hiper-parámetro de nuestro algoritmo.
  • 37.
  • 38.
  • 39.
    Big Data &ML - Tener más datos siempre es una buena idea. - Para evitar overfitting, cuantos más datos tenemos más expresivo puede ser el modelo que usemos. Mayor expresividad = mayor inteligencia. - Conseguir más datos es más importante que tener un buen algoritmo!
  • 42.
  • 43.
  • 44.
    Simbolistas - Principios: Lógica,Filosofía. - Tipo de razonamiento: If, then, else. - Algoritmo estrella: árboles de decisión, random forests
  • 46.
  • 47.
    Los Conexionistas - Principios:Sinapsis, paso de mensajes, ajuste continuo. - Tipo de razonamiento: Aprender de los errores. - Algoritmo estrella: Redes Neuronales, Backpropagation. - Deep Learning - CNNs
  • 49.
  • 50.
    Evolucionistas - Principios: Evolución,selección natural. - Tipo de razonamiento: Supervivencia del mejor, mutación. - Algoritmo estrella: Algoritmos genéticos.
  • 52.
  • 53.
    Bayesianos - Principios: Probabilidadesa-priori y ajuste en base a la evidencia. - Tipo de razonamiento: Probabilístico, observación. - Algoritmo estrella: Naive Bayes, Redes Bayesianas, MCMC.
  • 55.
  • 56.
    Analogistas - Principios: Analogía -Tipo de razonamiento: Si parece un pato es un pato - Algoritmo estrella: KNN, SVM
  • 58.
    The No FreeLunch Theorem
  • 59.
    NFL Theorem [Wolpert‘97] "Promediados sobre todos los problemas posibles dos algoritmos de optimización cualesquiera son equivalentes"
  • 60.
    Un set dedatos (libro,azul) = 1 (auto, azul) = 1 (auto, verde) = 0 (teclado, azul) = 1 (guitarra, verde) = 0 (lapicera, roja) = 0 (guitarra, azul) = 1 (lapiz, verde) = 0 (libro, rojo) = 0 (auto, rojo) = 0 (zapato, azul) = 1 (zapato, verde) = 1 (lapicera, azul) = 1 (cuaderno, azul) = 1 (cuaderno, rojo) = 0 (lapiz, azul) = 1
  • 61.
    Un set dedatos (libro,azul) = 1 (auto, azul) = 1 (auto, verde) = 0 (teclado, azul) = 1 (guitarra, verde) = 0 (lapicera, roja) = 0 (guitarra, azul) = 1 (lapiz, verde) = 0 (libro, rojo) = 0 (auto, rojo) = 0 (zapato, azul) = 1 (zapato, verde) = 1 (lapicera, azul) = 1 (cuaderno, azul) = 1 (cuaderno, rojo) = 0 (lapiz, azul) = 1
  • 62.
    Un set dedatos (libro,azul) = 1 (auto, azul) = 1 (auto, verde) = 0 (teclado, azul) = 1 (guitarra, verde) = 0 (lapicera, roja) = 0 (guitarra, azul) = 1 (lapiz, verde) = 0 (libro, rojo) = 0 (auto, rojo) = 0 (zapato, azul) = 1 (zapato, verde) = 1 (lapicera, azul) = 1 (cuaderno, azul) = 1 (cuaderno, rojo) = 0 (lapiz, azul) = 1 95%
  • 63.
    Un set dedatos (libro,azul) = 1 (auto, azul) = 1 (auto, verde) = 0 (teclado, azul) = 1 (guitarra, verde) = 0 (lapicera, roja) = 0 (guitarra, azul) = 1 (lapiz, verde) = 0 (libro, rojo) = 0 (auto, rojo) = 0 (zapato, azul) = 1 (zapato, verde) = 1 (lapicera, azul) = 0 (cuaderno, azul) = 0 (cuaderno, rojo) = 1 (lapiz, azul) = 0
  • 64.
    Un set dedatos (libro,azul) = 1 (auto, azul) = 1 (auto, verde) = 0 (teclado, azul) = 1 (guitarra, verde) = 0 (lapicera, roja) = 0 (guitarra, azul) = 1 (lapiz, verde) = 0 (libro, rojo) = 0 (auto, rojo) = 0 (zapato, azul) = 1 (zapato, verde) = 1 (lapicera, azul) = 0 (cuaderno, azul) = 0 (cuaderno, rojo) = 1 (lapiz, azul) = 0 5%
  • 65.
    NFL Theorem - Corolario:Todo algoritmo funciona mal con algún set de datos. - Corolario 2: Dado un set de datos cualquier algoritmo puede ser el mejor.
  • 66.
    NFL Theorem - Corolario:Todo algoritmo funciona mal con algún set de datos. - Corolario 2: Dado un set de datos cualquier algoritmo puede ser el mejor. Esto solo es cierto si consideramos TODOS los problemas posibles. La mayoría de los problemas de optimización no tiene sentido. Solo nos interesan los problemas que pueden tener sentido.
  • 67.
  • 68.
    Feature Engineering - Esmuy importante que los "features" de nuestros datos sean los adecuados para nuestro algoritmo. - A veces nos hace falta agregar nuevos features. - A veces nos hace falta quitar features. - A veces nos hace falta transformar features.
  • 69.
    Agregando Features - Agregarfeatures permite modelos más complejos. - Por ejemplo podemos agregar funciones no lineales de atributos que ya tenemos (sqrt, log, log log, etc) - O podemos agregar features que muestren la interacción entre 2 features ya existentes - (edad, localidad, género) - (edad, localidad) (edad, género) (género,localidad) etc.
  • 70.
    Eliminando Features - Algunosfeatures pueden llevar al overfitting, ej: IDs, etc. - Algunos features son ruidosos y no aportan nada. - Ej: la altura del cliente si estamos estimando su riesgo financiero.
  • 71.
    Transformando Features - Elcaso más típico es el de atributos categóricos. - Ejemplo: Color (rojo, verde, azul) - Técnicas de transformación: - One hot encoding - Binary encoding - Feature Hashing
  • 72.
    Feature Hashing (TheHashing Trick) - Usar una función de hashing para determinar la dimensión de un atributo. - Ejemplo: Convertir un texto en un vector numérico.
  • 74.
  • 75.
    Ensambles - La uniónhace la fuerza. - Invariablemente las mejores soluciones siempre surgen de una combinación de varios algoritmos.
  • 76.
    Ensambles: Bagging - Generarun bootstrap a partir del set de entrenamiento (muestreo con reemplazo del mismo tamaño que el set de entrenamiento) - Entrenar el algoritmo con este set - Generar otro bootstrap - Entrenar el algoritmo con este set - Etc.. - Resultado final: Promedio o por votación.
  • 77.
    Ensambles: Boosting - Entrenarun algoritmo. - Entrenar otro algoritmo que aprenda a corregir los errores del anterior. - Etc. - Ejemplo: GBM, XGBoost
  • 78.
    Ensambles: Stacking - Entrenarvarios algoritmos diferentes. - Entrenar un algoritmo que a partir de los algoritmos anteriores aprenda a generar las predicciones correctas.
  • 79.
  • 80.
    Tools Python : Pandas,scikit-learn, Jupyter, matplotlib, seaborn, XGboos, TensorFlow R: X1071, Caret, Paqueres Varios, Ggplot, TensorFlow(?!)
  • 81.
  • 82.
    El Proceso - Esuna tarea 100% artesanal. - Gran parte del tiempo se pierde en conseguir los datos, limpiarlos y darles el formato necesario (80%?) - Probar modelos y tunearlos (cross validation) es una tarea de fuerza bruta. - No hay absolutamente ningun standard de deployment
  • 84.
    Caos, Caos... - Datosoriginales (inmutables) - Datos limpios - Datos extendidos - Feature Engineering - Modelos - Ensambles
  • 85.
  • 86.
    If we knewwhat it was we were doing it wouldn't be called research. Wouldn't it?
  • 87.
    - No hayresultados "correctos" - La mejor forma de comparar versiones diferentes es mediante la inspección manual/visual por parte de un humano. - Es sumamente importante poder revertir cambios que afectan la performance de los modelos. - Una palabra clave: Reproducibilidad. - Una herramienta importante: Notebooks. Unit Testing & Machine Learning
  • 88.
  • 89.