Las batallas del
Data Scientist:
aprendiendo desde
las trincheras
Soy Jesús Montes
Data Scientist y profesor universitario
¡Hola!
@IcantExplain0
¿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
DISCLAIMER:
La mayoría de lo que viene a
continuación son sólo opiniones,
y ya se sabe que las opiniones...
Un poco de
contexto...
para ubicarse
1
¿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
“Ningún Plan, por bueno que
sea, resiste su primer contacto
con el enemigo.”
- Moltke
“
Lo básico
Ciencia de datos y otras yerbas
2
¿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)
¿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.
¿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í!
¿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.
¿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!
Batallitas
Cosas que uno aprende haciendo Data Science
3
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.
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”
Preparación de los datos:
Combinando varias fuentes
RealityExpectation
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á”.
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...)
◉ 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:
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.
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.
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
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...
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”
Big Data
Total War
4
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.
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
Despedida y cierre5
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
¿Preguntas?
¡Gracias!
@IcantExplain0
Plantilla de slides creada por SlidesCarnival (CC BY 4.0)

Las batallas del data scientist

  • 1.
    Las batallas del DataScientist: aprendiendo desde las trincheras
  • 2.
    Soy Jesús Montes DataScientist y profesor universitario ¡Hola! @IcantExplain0
  • 3.
    ¿De qué vamosa 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 delo que viene a continuación son sólo opiniones, y ya se sabe que las opiniones...
  • 5.
  • 6.
    ¿Por qué hablamosde 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, porbueno que sea, resiste su primer contacto con el enemigo.” - Moltke “
  • 8.
    Lo básico Ciencia dedatos y otras yerbas 2
  • 9.
    ¿Qué es unproyecto 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 enun 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 lasfases 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 lafase 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 saberpara 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!
  • 14.
    Batallitas Cosas que unoaprende haciendo Data Science 3
  • 15.
    Definición del problema: ¿Cómodeberí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: Principalespeligros ◉ 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”
  • 17.
    Preparación de losdatos: Combinando varias fuentes RealityExpectation
  • 18.
    Preparación de losdatos: 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 losdatos: 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ónredundante “¡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: Lapregunta 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: ¿Ylos 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: Escogerla 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”
  • 26.
  • 27.
    Ciencia de datosy 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 comoreto 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
  • 29.
  • 30.
    Reflexiones finales ◉ Datascience 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
  • 31.