Este taller pretende hacer una conexión entre el arte y la ciencia necesarias para desarrollar un modelo correcto. Nos enfrentaremos a datos agrios y modelos aguados, pero entenderemos el camino para corregir.
Laboratorio práctico: La sazón del científico de datos
1. La sazón del científico de datos
Marzo 2019
Data Day - Taller
2. ● Introducción:
○ La ciencia de datos y su ciclo
○ El recetario de mi abuelita
● Objetivo
● Desarrollo de un primer modelo siguiendo la receta original.
● Desarrollo de un segundo modelo ya sazonado.
● Agregando un poquito de Lime para explicar el negocio.
● Cómo se despliega el modelo.
Agenda
5. ¿Qué es Ciencia de Datos?
● La Ciencia de Datos es un campo interdisciplinario que se dedica a extraer conocimiento que
proviene de los datos.
● Es una disciplina que utiliza métodos estadísticos, de minería de datos, de aprendizaje de
máquina, de ingeniería y arquitectura de datos, así como el conocimiento del dominio al que
se esté aplicando.
TODO COMIENZA CON UNA PREGUNTA...
Preguntas de negocio:
● ¿Qué clientes están conformes
con mi servicio?
● ¿A qué equipo le debo dar
mantenimiento?
● ¿Que tratamiento es mejor para
cierta enfermedad?
● ¿Cuál es el perfil de mi cliente
más valioso?
Tipo de análisis:
● Algoritmos de Clasificación
● Detección de Anomalías
● Análisis de sobrevivencia
● Customer Value Analysis
Introducción
6. El proceso CRISP-DM
Introducción
ENTENDIMIENTO DEL NEGOCIO
Formulación de las preguntas de negocio.
Problemas a resolver.
Definición de requerimientos y plan a seguir.
PUESTA EN PRODUCCIÓN
Producción y automatización del modelo.
ENTENDIMIENTO DE LOS DATOS
Revisión y entendimiento de los datos disponibles.
Calidad de datos.
Análisis exploratorio de los datos (Discovery).
DESARROLLO DE MODELOS Y EVALUACIÓN
Elección de algoritmos.
Entrenamiento y evaluación de modelos.
Explicación del modelo al usuario final.
PREPARACIÓN DE LOS DATOS
Limpieza y transformación de datos.
Análisis exploratorio de los datos enfocado al desarrollo de modelos.
Feature Engineering (creación de nuevos atributos).
Ciclo de Ciencia
de Datos
CRISP-DM
8. El equipo de Ciencia de Datos y sus herramientas
Introducción
Matemáticos, físicos,
científicos,
especialistas en ML y
AI, así como cualquier
interesado en aprender
Arquitectos e
ingenieros de
Datos
Expertos en el
Dominio
Científicos de
decisiones
Software
Dev y UX
PENTAHO PLATFORM
Integración de datos
Adaptive Big Data Layer
Business Analytics
WEKA
Data Mining
PYTHON
Machine Learning
Deep Learning
R
Software Estadístico
10. Objetivo y recordatorios
Nuestra meta es...
● Aprender a experimentar con los datos.
● Entender que la sazón en Ciencia de Datos se da con la experiencia, así como con el
conocimiento concreto de procesos y datos.
● Aceptar que no existe una receta, la creatividad y ganas de experimentar son fundamentales
para crear un buen modelo.
El camino será:
● Llevar a cabo un par de iteraciones del Ciclo de Ciencia de Datos para obtener un modelo
sabroso y no uno aguado.
● Sazonar más aún, usando LIME (Local Interpretable Model-Agnostic Explanations), para
explicar el modelo a nuestros usuarios finales.
● Tener una primicia de qué significa poner un modelo en producción.
Para seguir el curso es necesario tener:
● Jupyter Notebook (https://www.anaconda.com/distribution/)
● Weka (https://www.cs.waikato.ac.nz/ml/weka/)
12. Contexto del experimento y preguntas
1 Entendimiento del negocio
En 2011 se realizó un experimento por parte del laboratorio de dinámica humana del MIT. El
objetivo era entender el comportamiento de las personas a través de sus interacciones vía teléfono
celular. Este experimento ha dado pie a que se escriban muchos artículos respondiendo a las
siguientes preguntas: ¿Cómo toman decisiones las personas? ¿Cómo se
puede ayudar a las personas a que tomen mejores decisiones?
Se registraron las interacciones de 129 individuos, llamadas telefónicas o
mensajes de texto. Estos individuos debían cargar una aplicación en su
teléfono para registrar ciertos indicadores de estas interacciones.
El experimento tuvo una duración de un año, y los participantes podían
entrar en cualquier semana.
La hipótesis que queremos probar es:
● ¿Se puede predecir el estrato socioeconómico de las personas a
partir de sus interacciones telefónicas?
13. ¿Cómo se reciben los datos?
1.1 Entendimiento de los datos
Por cada usuario tenemos dos archivos con los siguientes datos:
Atributos
● Identificador del usuario
● Género (binario)
● Estrato socioeconómico (binario)
Registro por usuario
● Interacción
● Sentido de la interacción
● Identificador usuario con el que realizó
la interacción
● Día y hora de la interacción
● Duración de la llamada
● Identificador de antena
● Explicación de los identificadores
14. 2.1 Feature Engineering
2 Preparación de los datos
Para comenzar con el análisis exploratorio de datos se generan indicadores estadísticos de las
interacciones.
Acercamiento Tradicional
● Se debe escribir mucho código.
● Requiere mucho tiempo y conocimiento
para mantenerse.
Generación automática de características
●
● Entendimiento de la librería que se
utiliza.
● Menor tiempo de desarrollo y
mantenimiento.
15. 2.1 ¿Qué está haciendo Bandicoot?
2 Preparación de los datos
Bandicoot genera indicadores estadísticos para CDRs (Call Detail Records) y otros datos de
telecomunicaciones.
16. 2.2 Análisis Exploratorio de Datos (EDA)
2 Preparación de los datos
En análisis exploratorio de datos es un paso crítico en cualquier proyecto de ciencia de datos,
principalmente por las siguientes razones:
● Detección de errores en los datos.
● Validación de supuestos.
● Guía en la selección de algoritmos adecuados.
● Determinar relaciones entre las variables explicativas.
● Evaluar la dirección y el tamaño (aproximadamente) de las relaciones entre las variables
predictoras o explicativas y de respuesta u objetivo.
764 atributos
129registros 129 X 764
17. 2.2.2 Análisis básico
2 Preparación de los datos
El generar estadísticas descriptivas nos permite tener una idea de la distribución de los atributos y
comenzar a entender el comportamiento de los datos sin tener que visualizarlos.
active_days__weekend__day__callandtext__mean.describe()
count 122.000000
mean 1.437301
std 0.232737
min 1.000000
25% 1.254167
50% 1.449490
75% 1.621837
max 2.000000
Name: active_days__weekend__day__callandtext__mean, dtype:
float64
18. 2.2.4 Visualización de datos
2 Preparación de los datos
La visualización de datos también es útil para entender el comportamiento de los mismos. En este
caso podemos descubrir si nuestros datos están balanceados o no.
19. 2.2.4 Visualización de datos
2 Preparación de los datos
La visualización de datos permite que validemos hipótesis.
El promedio del promedio de todas
las semanas, de la duración de las
llamadas en todo el dia.
● Clase 0 tiene mayor duración
en las llamadas.
● Clase 1 tiene menor promedio
de duración.
20. 2.2.4 Visualización de datos
2 Preparación de los datos
La visualización de datos permite que validemos hipótesis.
Promedio del número de contactos
sms en las noches de los fines de
semana.
● Clase 0 tiene menor promedio
de número de contactos.
● Clase 1 tiene mayor promedio
de número de contactos.
21. 2.2.4 Visualización de datos
2 Preparación de los datos
La visualización de datos permite que validemos hipótesis.
Desviación estándar de tiempo entre
eventos de llamadas en la semana
de dia.
● Clase 0 tiene menor dispersión
entre eventos.
● Clase 1 tiene mayor dispersión
entre eventos.
22. 2.3 Procesamiento de Datos
2 Preparación de los datos
Esta parte puede verse como un proceso de limpieza y calidad de datos para comenzar a entrenar
nuestro modelo.
Pasos a seguir:
● Eliminar registros nulos en la variable
objetivo.
● Convertir la variable género en una
variable binaria.
● Eliminar variables de reporteo
(governance) generadas por bandicoot.
● Sustituir valores nulos en los atributos
por el valor 0.
● Normalizar valores numéricos de los
atributos.
23. 3.1 Elección del algoritmo
3 Desarrollo de modelos y evaluación
Para resolver el problema de clasificación, elegimos el algoritmo de Support Vector Machine
(SVM).
PROS
● Optimalidad asegurada.
● Mejor desempeño que regresión logística
● Mínimo riesgo estructural.
CONS
● La solución no siempre es rápida
● Problemas de desempeño con clases no
balanceadas.
24. 3.1 Entrenamiento del modelo
3 Desarrollo de modelos y evaluación
La mejor práctica para entrenar un modelo consiste en dividir los datos en dos conjuntos: el de
entrenamiento y el de prueba. El objetivo principal es entrenar el modelo con el primer conjunto y
evaluarlo con el segundo. Un modelo efectivo es aquel que tiene buena precisión con datos no
vistos.
Conjunto de Entrenamiento:
Es la partición del dataset con el cual se
entrenará el algoritmo para obtener un
modelo.
Conjunto de Prueba:
Partición del dataset que no ha sido utilizada
para el entrenamiento del modelo y permite
evaluar el comportamiento del mismo.
DATASET
Total de los datos
TRAIN SET TEST SET
T = 0 T = 1
En tiempos diferentes
25. 3.2 Validación Cruzada o Cross Validation
3 Desarrollo de modelos y evaluación
En Machine Learning, se utiliza la validación cruzada a k-iteraciones (folds) para maximizar el uso
de los datos disponibles para entrenamiento y evaluación del modelo. Permite describir el
desempeño del modelo.
Fold / capa / iteración:
Se utiliza cada iteración para
entrenar con un conjunto de
entrenamiento y de prueba
distintos.
DATASET
TRAIN SET
TEST SET
TEST SET
TEST SET
TRAIN SET TRAIN SET
TRAIN SET
k = 1
k = 2
k = 3
26. 3.3 Evaluación del modelo
3 Desarrollo de modelos y evaluación
Analizando las métricas de evaluación y la curva ROC.
13 3
11 10
Real
Class 0 Class 1
Class 0
Class 1
Predicción
● Matriz de Confusión:
● Precision: 0.64
● 3-fold cross-validation Score:
0.62
● TPR = 13/(13+11) = 0.54
● TNR = 10/(10+3) = 0.76
29. 4.1 Procesamiento de Datos
4 Preparación de los datos - Revisited
Esta parte puede verse como un proceso de limpieza y calidad de datos para comenzar a entrenar
nuestro modelo.
Pasos a seguir:
● Eliminar registros nulos en la variable
objetivo.
● Convertir la variable género en una
variable binaria.
● Eliminar variables de reporteo
(governance) generadas por bandicoot.
● Eliminar los atributos con mínima
variabilidad y aquellos con valores
constantes.
● Sustituir valores nulos por el promedio.
● Normalizar valores numéricos de los
atributos.
30. ● Matriz de Confusión:
● Precision: 0.74
● 3-fold cross-validation Score:
0.66
● TPR = 13/(13+5) = 0.72
● TNR = 16/(16+5) = 0.76
4.2 Evaluación del modelo
4 Desarrollo de modelos y evaluación
Analizando las métricas de evaluación y la curva ROC.
13 5
5 16
Real
Class 0 Class 1
Class 0
Class 1
Predicción
31. 5 Local Interpretable Model-Agnostic Explanations
5 LIME
La salida de LIME es una lista de explicaciones, que refleja la contribución de cada característica a
la predicción de una muestra de datos. Esto proporciona una interpretación local, y también
permite determinar qué cambios en las características tendrán mayor impacto en la predicción.
33. WEKA
Puesta en Producción de un modelo
WEKA es un programa desarrollado
en Java, el cual tiene una colección
de algoritmos de aprendizaje de
máquina para llevar a cabo minería
y ciencia de datos.
Contiene herramientas para las
etapas del ciclo CRISP-DM:
- Visualización de datos
- Preparación de datos
- Algoritmos de clasificación,
regresión, clustering, series de
tiempo, reglas de asociación, etc.
35. PENTAHO
Puesta en Producción de un modelo
Pentaho es una plataforma de código
abierto, especializada en datos.
Reúne a los usuarios de negocio con
los equipos de IT, arquitectura y
ciencia de datos.
Es 100% java, por lo cual soporta
Windows, Linux y MacOS.