Este documento presenta una charla sobre las lecciones aprendidas en proyectos de ciencia de datos. Explica brevemente conceptos clave como aprendizaje automático, fases típicas de un proyecto y desafíos comunes como definir claramente el problema, limpiar y entender los datos, seleccionar adecuadamente los algoritmos y métricas de evaluación, y utilizar correctamente conjuntos de entrenamiento, validación y prueba. También menciona cómo el contexto de Big Data introduce nuevos retos tecnológicos.
3. ¿De qué vamos a hablar?
1. Un poco de contexto...
2. Lo básico: Ciencia de datos y otras yerbas
3. Batallitas: Cosas que uno aprende haciendo Data
Science
4. Mención especial: Big Data
5. Despedida y cierre
4. DISCLAIMER:
La mayoría de lo que viene a
continuación son sólo opiniones,
y ya se sabe que las opiniones...
6. ¿Por qué hablamos de ciencia
de datos en un meetup de IA?
◉ Una de las disciplinas más importantes dentro de
la inteligencia artificial es el aprendizaje automático
(machine learning).
◉ El aprendizaje automático es, a su
vez, una de las herramientas más
utilizadas por los científicos de
datos. DS
AI
Machine
learning
7. “Ningún Plan, por bueno que
sea, resiste su primer contacto
con el enemigo.”
- Moltke
“
9. ¿Qué es un proyecto de
ciencia de datos?
Aplicamos el método científico al
estudio de un conjunto de datos:
◉ Observar
◉ Hacerse preguntas
◉ Formular hipótesis
◉ Realizar experimentos
◉ Comprobar resultados
(1637)
10. ¿Qué buscamos en un proceso
de ciencia de datos?
Normalmente se busca:
◉ Conocer mejor los datos de nuestro
problema/negocio.
◉ Explicar eventos o situaciones interesantes.
◉ Crear modelos que nos permitan estimar/predecir
eventos o comportamientos futuros.
11. ¿Cuáles son las fases de un
proyecto de ciencia de datos?
? Definición de
un problema
Preparación
de datos
Fuentes de
datos
Estudio de
los datos
Creación
del modelo
Validación y
pruebas
¡Se empieza
por aquí!
12. ¿Cuál es la fase más
importante de todas?
? Definición de
un problema
Preparación
de datos
Validación y
pruebas
Creación
del modelo
Estudio de
los datos
Traducir el problema de
negocio.
Caracterizarlo
(clasificación, regresión,
clustering…).
Identificar fuentes de
datos.
Seleccionar la
técnica de
aprendizaje
automático.
Entrenar del modelo.
Analizar las variables
para entender su
comportamiento, y
las relaciones entre
ellas.
Limpieza, selección,
transformación...
Seleccionar datos
útiles.
Extraer los datos de
sus fuentes y
combinarlos.
Limpiar los datos.
Realizar validación
cruzada y ajustar
parámetros,
Evaluar el modelo.
13. ¿Qué necesito saber para
hacer ciencia de datos?
1. Estadística y aprendizaje
automático
2. Nociones claras sobre
cómo se organizan y
procesan datos
○ PRO TIP: Júntate con alguien
que sea buen data engineer.
3. Programar
○ Algoritmos y estructuras de datos
Place your screenshot here
¡Hay que saber hablar
bien con la máquina!
¡También
importan!
15. Definición del problema:
¿Cómo deberían ser las cosas?
◉ Debemos tener muy claro el problema que
queremos resolver.
○ ¿Cuál es nuestro objetivo principal?
○ ¿Por qué es relevante para el negocio/proyecto?
◉ Debemos poder caracterizar claramente el
problema.
○ Si es un problema supervisado, deberíamos saber
claramente cuál es la variable objetivo.
○ Si es no supervisado, deberíamos saber exáctamente
para qué se van a usar los resultados.
16. Definición del problema:
Principales peligros
◉ Definiciones ambiguas y/o problemas demasiado
amplios
“Vamos a estudiar los datos de nuestros clientes, a ver
si encontramos algún patrón interesante”
“Creemos que la información del customer journey nos
puede ayudar a mejorar nuestro negocio”
True Story
◉ Fuentes de datos no claras
“Seguro que cruzando A y B sacamos lo que nos falta”
18. Preparación de los datos:
Calidad de los datos
◉ En BBDD suficientemente grandes,
se dan todas las combinaciones
imaginables:
○ Valores imposibles
○ Claves incorrectas
○ Formatos de fecha extraños
○ Caracteres raros
○ Incoherencias temporales
○ ...
“Si el sistema lo permite, está”.
19. Estudio de los datos:
Entender la información
◉ Comprender cómo se comportan las variables es
fundamental para construir un buen modelo:
“Si no entendemos los datos, el modelo no funcionará”
(y si es clustering, ya ni hablamos)
◉ Debemos dedicar tiempo a analizar y entender las
variables:
○ Estadística descriptiva
○ Análisis univariante y multivariante (correlación, PCA...)
20. ◉ Evitar infromación redundante
“¡Fíjate! Quitando estas variables mi modelo mejora.”
Estudio de los datos:
Identificar lo relevante
◉ Vigilar valores extraños/atípicos
“No entiendo por qué mi modelo es tan sensible a cambios en esta variable...”
Algunas cosas que “suelen funcionar”...
◉ Filtrar por correlación
◉ Eliminar valores atípicos
◉ Normalizar
◉ Discretizar variables
continuas
◉ Seleccionar variables
No. This is
not optional.Usar sólo datos que aporten algo:
21. Creación del modelo:
¿Qué algoritmo uso?
No es necesario sacar siempre la
“artillería pesada”*
Depende mucho del problema:
◉ Supervisado/no supervisado
◉ Volumen de datos
◉ Número de variables
◉ Tipo de variable objetivo
◉ ...
El estudio previo nos da muchas pistas.
*: “Dicen” que el 80% de los modelos que se usan en la vida real son regresiones logísticas.
22. Creación del modelo:
La pregunta clave
“¿Tengo que entender lo que hace el algoritmo?”
¡Sí!
◉ Entender su funcionamiento es clave para poder utilizarlo correctamente.
◉ “¿Y detalles concretos de la implementación?” Pues depende.
23. Creación del modelo:
¿Y los hiper-parámetros?
◉ Hay que elegir muy bien los
hiper-parámetros.
○ Y es especialmente
importante en técnicas
complejas, cómo GBMs o
ANNs.
◉ Cuidado con el grid search.
Otras opciones:
○ ¿Random search?
○ ¿Optimización?
h1
h2
Óptimo
24. Validación y pruebas:
Escoger la métrica adecuada
◉ La métrica de evaluación
de un modelo debe
depender siempre de
nuestro objetivo final.
◉ Normalmente, el accuracy
es demasiado simple.
○ No tiene en cuenta falsos
positivos/negativos.
○ Es muy peligroso con clases
muy desbalanceadas.
“¿Qué puedo usar?”
◉ Clasificación: accuracy, matriz
de confusión, logloss, F1, ROC,
lift…
◉ Regresión: MAE, MSE, R², AIC…
◉ Clustering: Rand index...
25. Validación y pruebas:
Training-validation-test
◉ Tenemos que tener muy claro
para qué se usa cada
conjunto:
○ Training: Para entrenar.
○ Validation/development: Para
comparar alternativas y
optimizar hiper-parámetros.
○ Test: Para dar una medición
final.
◉ “¿Cómo hacemos la
división?”
Depende de los datos y el
problema.
○ Busquemos proporciones que
den estabilidad a los
resultados.
○ El muestreo aleatorio puede
no ser lo mejor.
“He probado varios modelos y éste es el que mejor resultado me da en test”
“No necesito conjunto de test porque estoy haciendo 10-fold cross-validation”
27. Ciencia de datos y Big Data
◉ Big Data no es solo “muchos datos”.
○ Recordemos las tres Vs (o cuatro, o cinco…)
◉ El Big Data es un contexto distinto en el
que hacer ciencia de datos.
◉ Desde el punto de vista de un data
scientist, es fundamentalmente un reto
tecnológico.
○ Aprender nuevas técnicas.
○ Adaptarse al contexto.
28. Big Data como reto
tecnológico
◉ Tecnologías como Spark o (“antiguamente”)
MapReduce permiten enfrentarse a problemas
muy complejos, pero hay que entender cómo
funcionan para aprovecharlas.
◉ La separación entre data engineer y data scientist
se vuelve difusa.
Data scientistData engineer
30. Reflexiones finales
◉ Data science no es solo
hacer modelos.
◉ La máquina aprende, pero
tenemos que guiarla
durante todo el proceso.
◉ Si no entendemos lo que
estamos haciendo, no
llegaremos a buen puerto.
...y recordad que todo ésto son sólo opiniones