En los últimos años ha habido un creciente interés en extraer información útil de grandes cantidades
de datos. Esta información se puede usar para hacer predicciones a futuro o inferir valores
desconocidos. Existen una gran variedad de modelos predictivos para problemas de clasificación y
regresión. Sin embargo, en muchas investigaciones se asume a menudo que los datos están limpios
y se presta poca atención al preprocesamiento de los datos. A pesar de que hay muchos métodos
para solventar tareas de preprocesamiento específicas (por ejemplo, detección de valores extremos o
selección de atributos), el esfuerzo para realizar el preprocesamiento y limpiado de los datos puede
llevar entre el 60% y el 80% de todo el tiempo empleado en el proceso de minería de datos. Se hace por tanto muy necesario automatizar todo o parte de este proceso. En esta charla se da un introducción a la automatización de la selección y optimización de múltiples
métodos de preprocesamiento y predicción.
2. ¡Hola!
Manuel Martín Salvador
AI Research Engineer / Ingeniero de investigación en inteligencia artificial
PhD in Machine Learning / Doctor en Informática
8. Aprendizaje basado en datos
También conocido como aprendizaje automático o machine learning.
Aprendizaje supervisado Aprendizaje no supervisado
Origen (izquierda): https://www.reddit.com/r/learnmachinelearning/comments/bsz9xf/visualization_of_layer_outputs_of_a_cnn_running/
Origen (derecha): https://graphext.com
10. Problema: Los datos no son perfectos
Valores
desconocidos
Ruido
Alta
dimensionalidad
Valores
fuera de
rango
(outliers)
Question Mark: http://commons.wikimedia.org/wiki/File:Question_mark_road_sign,_Australia.jpg
Noise: http://www.ssp.ece.upatras.gr/galatsanos/IMAGE%20RESTORATION.htm
Outliers: http://commons.wikimedia.org/wiki/File:Diagrama_de_caixa_com_outliers_and_whisker.png
3D plot: http://salsahpc.indiana.edu/plotviz/
11. Solución: Preprocesamiento y limpieza
Datos Postprocesamiento Predicciones
Preprocesamiento
/ Limpieza
Modelo
Predictivo
13. ¿En qué se invierte más tiempo?
Limpiando y organizando
datos
Creando conjuntos de entrenamiento
Recolectando datos
Buscando patrones en los datos
Refinando los algoritmos
Otros
Origen: CrowdFlower - 2016 Data Science Report
18. Problema: No free lunch
No hay un modelo universalmente superior a todos los problemas
“No free lunch theorem for optimization” - Wolpert & Macready (1997)
19. Solución: Problema de optimización
Combined Algorithm Selection and Hyperparameter configuration problem
k-fold cross validation
Función a minimizar
(e.g. error de
clasificación)
HiperparámetrosAlgoritmos
Conjunto de
entrenamiento
Conjunto de
validación
Thornton, C., Hutter, F., Hoos, H.H., Leyton-Brown, K.: Auto-WEKA: combined selection and hyperparameter optimization of classification algorithms.
In: Proc. of the 19th ACM SIGKDD. (2013) 847–855 available at https://arxiv.org/abs/1208.3719
Martin Salvador M., Budka M., Gabrys B.: Automatic Composition and Optimization of Multicomponent Predictive Systems With an Extended Auto-WEKA. IEEE
Transactions on Automation Science and Engineering. (2018) 946-959 available at https://doi.org/10.1109/TASE.2018.2876430
20. Ejemplo 1: Problema de optimización
from hyperopt import fmin, tpe, hp
best = fmin(
fn=lambda x: (x-1)**2,
space=hp.uniform('x', -2, 2),
algo=tpe.suggest,
max_evals=100)
print(best)
Origen: https://medium.com/district-data-labs/parameter-tuning-with-hyperopt-faa86acdfdce
21. Ejemplo 1: Problema de optimización
from hyperopt import fmin, tpe, hp
best = fmin(
fn=lambda x: (x-1)**2,
space=hp.uniform('x', -2, 2),
algo=tpe.suggest,
max_evals=100)
print(best)
{'x': 0.997369045274755}
Origen: https://medium.com/district-data-labs/parameter-tuning-with-hyperopt-faa86acdfdce
22. Ejemplo 2: Problema de optimización
Origen: https://wacamlds.podia.com/applied-machine-learning-using-python-classification-with-iris-dataset
Conjunto de datos flor Iris
“The use of multiple
measurements in taxonomic
problems” R. Fisher (1936)
Objetivo: Crear un modelo de
clasificación que minimice el
error de predecir el tipo de flor
en base a sus características.
23. Ejemplo 2: Problema de optimización
from hyperopt import fmin, tpe, hp
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import cross_val_score
iris = datasets.load_iris()
X, y = iris.data, iris.target
def loss_function(params):
model = KNeighborsClassifier(**params)
accuracy = cross_val_score(model, X, y).mean()
return {'loss': -accuracy, 'status': STATUS_OK}
space_knn = {'n_neighbors': hp.choice('n_neighbors', range(1, 50))}
trials = Trials()
best = fmin(loss_function, space_knn, algo=tpe.suggest, max_evals=100, trials=trials)
Origen: https://medium.com/district-data-labs/parameter-tuning-with-hyperopt-faa86acdfdce
24. Ejemplo 2: Problema de optimización
Origen: https://medium.com/district-data-labs/parameter-tuning-with-hyperopt-faa86acdfdce
{'n_neighbors': 4}
25. Estrategias de optimización
● Búsqueda exhaustiva: Explora todo el espacio de búsqueda.
○ Problema: No es factible en espacios de búsqueda muy grandes.
● Búsqueda aleatoria: Explora el espacio de búsqueda de forma aleatoria
durante un determinado tiempo.
○ Problema: Puede encontrar buenas soluciones pero no indaga en mejorarlas.
● Optimización Bayesiana: Construye un modelo probabilístico para decidir qué
explorar a continuación. Dicho modelo se va actualizando conforme avanza la
exploración. Se detiene una vez alcance el límite de tiempo indicado.
● Metaheurísticas: Usan heurísticas para buscar la configuración más óptima.
29. Configuración inicial
¿Por dónde empiezo a buscar?
● Aleatorio: Se escogen una o varias configuraciones al azar.
● Definido a priori: Creemos que esta configuración es buena.
● Meta-Learning: Basado en experiencias con otros datasets.
30. ¿Cuándo detengo la búsqueda?
● Límite de tiempo (e.g. 24 horas)
● Límite de iteraciones (e.g. 1000
soluciones exploradas)
● Límite de paciencia (e.g. la mejor
configuración no ha mejorado
después de 200 iteraciones)
● Limite económico (e.g. 50€ en algún
servicio de la nube)
Origen: https://giphy.com/gifs/yyp58Yx3Qk0TK
31. Me has convencido, ¿cómo empiezo?
Origen: https://giphy.com/gifs/cat-hacker-webs-o0vwzuFwCGAFO
32. Software Libre para AutoML
Propósito general
● HyperOpt
● HyperBand
● BOAH
● SMAC
● MOE
Machine Learning
● Auto-WEKA
● Auto-sklearn
● TPOT
● H2O
Deep Learning
● Auto-PyTorch
● Keras Tuner
33. Espacio de búsqueda en WEKA
Predictor Meta-Predictor
Missing
Value
Handling
Outlier
Detection
and
Handling
Data
Transformation
Dimensionality
Reduction
Sampling
812 mil millones
de posibles combinaciones
34. Auto-WEKA for MCPS
MCPS = MultiComponent Predictive System
Modos:
● Completamente automático: Explora el
espacio de búsqueda compuesto por filtros
(preprocesamiento), modelos predictivos y
meta-modelos de WEKA.
● Dirigido: Explora el espacio de búsqueda
definido por el usuario.
https://github.com/dsibournemouth/autoweka
35. Servicios en la nube
● Auger.ai
● Azure AutoML
● DataRobot
● Google Cloud AutoML
● H20.ai
Origen: https://giphy.com/gifs/money-make-it-rain-JpG2A9P3dPHXaTYrwu
36. Adaptación de modelos
¿Qué sucede si la distribución de los datos de nuestro sistema se va modificando
con el paso del tiempo?
Tendremos que adaptar el modelo predictivo y posiblemente el preprocesamiento.
Origen: INFER project
37. Adaptación de modelos
¿Qué sucede si la distribución de los datos de nuestro sistema se va modificando
con el paso del tiempo?
Tendremos que adaptar el modelo predictivo y posiblemente el preprocesamiento.
Origen: INFER project
38. Artículos relacionados
Pitfalls and Best Practices in Algorithm Configuration (2019)
Automatic Composition and Optimization of Multicomponent Predictive Systems With an Extended Auto-WEKA (2018)
Automatic and adaptive preprocessing for the development of predictive models (tesis, 2017)
Towards Automatic Composition of Multicomponent Predictive Systems (2016)
Efficient and Robust Automated Machine Learning (2015)
Initializing bayesian hyperparameter optimization via meta-learning (2015)
Auto-WEKA: combined selection and hyperparameter optimization of classification algorithms (2013)
Sequential model-based optimization for general algorithm configuration (2011)