Laboratorio práctico: La sazón del científico de datos

Software Guru
Software GuruSoftware Guru
La sazón del científico de datos
Marzo 2019
Data Day - Taller
● 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
https://bit.ly/2U0rh9x
Material
¿Qué es Ciencia de Datos?
¿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
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
¿Quién es el Científico de Datos?
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
El recetario de mi abuelita
Introducción
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/)
¡A cocinar!
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?
¿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
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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
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
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
¡Gracias!
Fin
¡Gracias!
No todavía… Be kind, rewind...
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.
● 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
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.
¿Y entonces?
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.
WEKA
Puesta en Producción de un modelo
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.
¡Gracias!
@nankyoku - Alexandra Lemus
@data_von - Roberto Sánchez
Ahora sí...
1 de 36

Recomendados

Tarea silabo2 por
Tarea silabo2Tarea silabo2
Tarea silabo2henryw79
243 vistas7 diapositivas
Silabo parte 2 por
Silabo parte 2Silabo parte 2
Silabo parte 2Andres Cabascango
234 vistas7 diapositivas
Presentación 1 AESS.pptx por
Presentación 1 AESS.pptxPresentación 1 AESS.pptx
Presentación 1 AESS.pptxDanielaIturriagaSilv
3 vistas45 diapositivas
Silabo parte 3 por
Silabo parte 3Silabo parte 3
Silabo parte 3Andres Cabascango
209 vistas10 diapositivas
Que es Azure Machine Learning 2015 por
Que es Azure Machine Learning 2015Que es Azure Machine Learning 2015
Que es Azure Machine Learning 2015Eduardo Castro
2.3K vistas40 diapositivas
Sitema de control de matricula por
Sitema de control de matriculaSitema de control de matricula
Sitema de control de matriculaTaty Mi Sun Huayra Huanhuayo
4.4K vistas74 diapositivas

Más contenido relacionado

Similar a Laboratorio práctico: La sazón del científico de datos

datatons en Women Techmakers por
datatons en Women Techmakersdatatons en Women Techmakers
datatons en Women TechmakersDatatons
68 vistas30 diapositivas
380843037-Unidad-de-Aprendizaje-N-01-1-Grado-docx.docx por
380843037-Unidad-de-Aprendizaje-N-01-1-Grado-docx.docx380843037-Unidad-de-Aprendizaje-N-01-1-Grado-docx.docx
380843037-Unidad-de-Aprendizaje-N-01-1-Grado-docx.docxrojasR3
2 vistas4 diapositivas
Administracion de Proyecto de ti por
Administracion de Proyecto de tiAdministracion de Proyecto de ti
Administracion de Proyecto de tiDarthuz Kilates
8.5K vistas13 diapositivas
ANALÍTICA DE DATOS EN INSTITUCIONES EDUCATIVAS 1 por
ANALÍTICA DE DATOS EN INSTITUCIONES EDUCATIVAS 1ANALÍTICA DE DATOS EN INSTITUCIONES EDUCATIVAS 1
ANALÍTICA DE DATOS EN INSTITUCIONES EDUCATIVAS 1CARLOS MASSUH
129 vistas43 diapositivas
Industrializacionde la IA Maria Borbones por
Industrializacionde la IA Maria BorbonesIndustrializacionde la IA Maria Borbones
Industrializacionde la IA Maria BorbonesWiMLDS_Madrid
127 vistas21 diapositivas
Seminario Almacenamiento Datos Hoy - 13/12/10 por
Seminario Almacenamiento Datos Hoy - 13/12/10Seminario Almacenamiento Datos Hoy - 13/12/10
Seminario Almacenamiento Datos Hoy - 13/12/10CAESCG.org
239 vistas54 diapositivas

Similar a Laboratorio práctico: La sazón del científico de datos(20)

datatons en Women Techmakers por Datatons
datatons en Women Techmakersdatatons en Women Techmakers
datatons en Women Techmakers
Datatons68 vistas
380843037-Unidad-de-Aprendizaje-N-01-1-Grado-docx.docx por rojasR3
380843037-Unidad-de-Aprendizaje-N-01-1-Grado-docx.docx380843037-Unidad-de-Aprendizaje-N-01-1-Grado-docx.docx
380843037-Unidad-de-Aprendizaje-N-01-1-Grado-docx.docx
rojasR32 vistas
Administracion de Proyecto de ti por Darthuz Kilates
Administracion de Proyecto de tiAdministracion de Proyecto de ti
Administracion de Proyecto de ti
Darthuz Kilates8.5K vistas
ANALÍTICA DE DATOS EN INSTITUCIONES EDUCATIVAS 1 por CARLOS MASSUH
ANALÍTICA DE DATOS EN INSTITUCIONES EDUCATIVAS 1ANALÍTICA DE DATOS EN INSTITUCIONES EDUCATIVAS 1
ANALÍTICA DE DATOS EN INSTITUCIONES EDUCATIVAS 1
CARLOS MASSUH129 vistas
Industrializacionde la IA Maria Borbones por WiMLDS_Madrid
Industrializacionde la IA Maria BorbonesIndustrializacionde la IA Maria Borbones
Industrializacionde la IA Maria Borbones
WiMLDS_Madrid127 vistas
Seminario Almacenamiento Datos Hoy - 13/12/10 por CAESCG.org
Seminario Almacenamiento Datos Hoy - 13/12/10Seminario Almacenamiento Datos Hoy - 13/12/10
Seminario Almacenamiento Datos Hoy - 13/12/10
CAESCG.org239 vistas
Universidad de oriente- Técnicas y herramientas de desarrollo de software por Rosmar Pinto
Universidad de oriente- Técnicas y herramientas de desarrollo de softwareUniversidad de oriente- Técnicas y herramientas de desarrollo de software
Universidad de oriente- Técnicas y herramientas de desarrollo de software
Rosmar Pinto4.6K vistas
Silabo algoritmos uniandes_2015_2 por Fabricio Lozada
Silabo algoritmos uniandes_2015_2Silabo algoritmos uniandes_2015_2
Silabo algoritmos uniandes_2015_2
Fabricio Lozada343 vistas
Guia de aprendizaje ofimatica por jb6138
Guia de aprendizaje ofimaticaGuia de aprendizaje ofimatica
Guia de aprendizaje ofimatica
jb61383K vistas
Temario software de aplicacion ejecutivo por Wilberth_Gongora
Temario software de aplicacion ejecutivoTemario software de aplicacion ejecutivo
Temario software de aplicacion ejecutivo
Wilberth_Gongora2.3K vistas
1. estructura curricular por jhordanperilla
1. estructura curricular1. estructura curricular
1. estructura curricular
jhordanperilla9.4K vistas
Gestion de recursos humanos por Ruben Robles
Gestion de recursos humanosGestion de recursos humanos
Gestion de recursos humanos
Ruben Robles1.8K vistas
Ciclo de Vida y Diseño de los Sistemas de Información por erwin portillo
Ciclo de Vida y Diseño de los Sistemas de InformaciónCiclo de Vida y Diseño de los Sistemas de Información
Ciclo de Vida y Diseño de los Sistemas de Información
erwin portillo142 vistas
Sílabo de herramientas de desarrollo de software por WILDER VILCAHUAMAN
Sílabo de herramientas de desarrollo de softwareSílabo de herramientas de desarrollo de software
Sílabo de herramientas de desarrollo de software
WILDER VILCAHUAMAN2.2K vistas

Más de Software Guru

Hola Mundo del Internet de las Cosas por
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasSoftware Guru
999 vistas19 diapositivas
Estructuras de datos avanzadas: Casos de uso reales por
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesSoftware Guru
377 vistas44 diapositivas
Building bias-aware environments por
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environmentsSoftware Guru
120 vistas61 diapositivas
El secreto para ser un desarrollador Senior por
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorSoftware Guru
199 vistas29 diapositivas
Cómo encontrar el trabajo remoto ideal por
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealSoftware Guru
126 vistas74 diapositivas
Automatizando ideas con Apache Airflow por
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowSoftware Guru
348 vistas25 diapositivas

Más de Software Guru(20)

Hola Mundo del Internet de las Cosas por Software Guru
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
Software Guru999 vistas
Estructuras de datos avanzadas: Casos de uso reales por Software Guru
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
Software Guru377 vistas
Building bias-aware environments por Software Guru
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
Software Guru120 vistas
El secreto para ser un desarrollador Senior por Software Guru
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
Software Guru199 vistas
Cómo encontrar el trabajo remoto ideal por Software Guru
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
Software Guru126 vistas
Automatizando ideas con Apache Airflow por Software Guru
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
Software Guru348 vistas
How thick data can improve big data analysis for business: por Software Guru
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
Software Guru159 vistas
Introducción al machine learning por Software Guru
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
Software Guru140 vistas
Democratizando el uso de CoDi por Software Guru
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
Software Guru225 vistas
Gestionando la felicidad de los equipos con Management 3.0 por Software Guru
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
Software Guru348 vistas
Taller: Creación de Componentes Web re-usables con StencilJS por Software Guru
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
Software Guru162 vistas
El camino del full stack developer (o como hacemos en SERTI para que no solo ... por Software Guru
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
Software Guru774 vistas
¿Qué significa ser un programador en Bitso? por Software Guru
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
Software Guru326 vistas
Colaboración efectiva entre desarrolladores del cliente y tu equipo. por Software Guru
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Software Guru194 vistas
Pruebas de integración con Docker en Azure DevOps por Software Guru
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
Software Guru327 vistas
Elixir + Elm: Usando lenguajes funcionales en servicios productivos por Software Guru
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Software Guru509 vistas
Así publicamos las apps de Spotify sin stress por Software Guru
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
Software Guru418 vistas
Achieving Your Goals: 5 Tips to successfully achieve your goals por Software Guru
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
Software Guru203 vistas
Acciones de comunidades tech en tiempos del Covid19 por Software Guru
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
Software Guru268 vistas
De lo operativo a lo estratégico: un modelo de management de diseño por Software Guru
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
Software Guru331 vistas

Último

periodo 2.pdf por
periodo 2.pdfperiodo 2.pdf
periodo 2.pdfqkpjyqbctx
8 vistas7 diapositivas
PRESENTACION DE FC.pptx por
PRESENTACION DE FC.pptxPRESENTACION DE FC.pptx
PRESENTACION DE FC.pptxGabrielRivas75
5 vistas5 diapositivas
Tecnologia (6).pdf por
Tecnologia (6).pdfTecnologia (6).pdf
Tecnologia (6).pdffspro99
6 vistas6 diapositivas
El Ciberespacio y sus Características.pptx por
El Ciberespacio y  sus Características.pptxEl Ciberespacio y  sus Características.pptx
El Ciberespacio y sus Características.pptxAnthlingPereira
6 vistas3 diapositivas
Tarea-Teclados ergonómico y pantallas táctiles.pptx por
Tarea-Teclados ergonómico y pantallas táctiles.pptxTarea-Teclados ergonómico y pantallas táctiles.pptx
Tarea-Teclados ergonómico y pantallas táctiles.pptxxiomarakerly200325
8 vistas16 diapositivas
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf por
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdfFUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdfortizjuanjose591
5 vistas16 diapositivas

Último(20)

Tecnologia (6).pdf por fspro99
Tecnologia (6).pdfTecnologia (6).pdf
Tecnologia (6).pdf
fspro996 vistas
El Ciberespacio y sus Características.pptx por AnthlingPereira
El Ciberespacio y  sus Características.pptxEl Ciberespacio y  sus Características.pptx
El Ciberespacio y sus Características.pptx
AnthlingPereira6 vistas
Tarea-Teclados ergonómico y pantallas táctiles.pptx por xiomarakerly200325
Tarea-Teclados ergonómico y pantallas táctiles.pptxTarea-Teclados ergonómico y pantallas táctiles.pptx
Tarea-Teclados ergonómico y pantallas táctiles.pptx
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf por ortizjuanjose591
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdfFUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf
ortizjuanjose5915 vistas
Excel avanzado.pdf por fspro99
Excel avanzado.pdfExcel avanzado.pdf
Excel avanzado.pdf
fspro998 vistas
Fundamentos De Electricidad y Electrónica equipo 5.pdf por CamilaCordoba30
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdf
CamilaCordoba3015 vistas
Estrategia de apoyo de tecnologia 3er periodo de tecnologia.pdf por SofiaArceCaicedo
Estrategia de apoyo de tecnologia 3er periodo de tecnologia.pdfEstrategia de apoyo de tecnologia 3er periodo de tecnologia.pdf
Estrategia de apoyo de tecnologia 3er periodo de tecnologia.pdf
SofiaArceCaicedo9 vistas
Excel avanzado.docx por Xian11
Excel avanzado.docxExcel avanzado.docx
Excel avanzado.docx
Xian117 vistas
programacion orientada a objetos_sebastian segura barreto.pptx por sebastiansegura25
programacion orientada a objetos_sebastian segura barreto.pptxprogramacion orientada a objetos_sebastian segura barreto.pptx
programacion orientada a objetos_sebastian segura barreto.pptx
tecnologaeinformtica-231124115719-3a836080.pdf por MaraJos722801
tecnologaeinformtica-231124115719-3a836080.pdftecnologaeinformtica-231124115719-3a836080.pdf
tecnologaeinformtica-231124115719-3a836080.pdf
MaraJos72280110 vistas
Tarea15.pptx por illanlir
Tarea15.pptxTarea15.pptx
Tarea15.pptx
illanlir7 vistas
excelavanzado1-231020003159-be608ddc.pdf por sarahloradorado
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdf
sarahloradorado11 vistas

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
  • 4. ¿Qué es Ciencia de Datos?
  • 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
  • 7. ¿Quién es el Científico de Datos?
  • 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
  • 9. El recetario de mi abuelita Introducción
  • 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
  • 28. ¡Gracias! No todavía… Be kind, rewind...
  • 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.
  • 36. ¡Gracias! @nankyoku - Alexandra Lemus @data_von - Roberto Sánchez Ahora sí...