Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Comenzamos el segundo bloque de la carrera viendo cómo podemos mejorar
nuestros análisis y modelos de Machine Learning con el Preprocesamiento de
Datos. Es turno de ver cómo mejorar la evaluación de nuestros modelos.
Hasta aquí solamente vimos los modelos más sencillos: árboles de decisión,
k-vecinos más cercanos y regresión lineal. Debés estar ansioso/a por ver
modelos más complejos y elaborados. Pero ten en cuenta que un modelo sencillo
con un buen preprocesamiento de datos y una buena evaluación es preferible
al modelo más actual mal alimentado (“garbage in, garbage out”) y mal evaluado.
Tener estas herramientas nos servirá para que cuando veamos los modelos de
clasificación y regresión más avanzados podamos aprovecharlos en todo su
desempeño.
En la presente bitácora nos vamos a concentrar en cómo mejorar la validación
de nuestros modelos de Machine Learning, a partir de lo que se conoce como
Validación Cruzada (Cross Validation). Además, vamos a introducir el concepto
de curva de ROC y a ver cómo podemos usarlo como métrica de evaluación para
nuestros modelos de clasificación.
La primera es de Arthur Samuel, quien lo describió como: "el campo de estudio
que da a los ordenadores la capacidad de aprender sin ser programados
explícitamente". Esta es una definición más antigua e informal.
Por otro lado, Tom Mitchell nos proporciona una definición más moderna: "Se
dice que un programa de ordenador aprende de la experiencia E con respecto a
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
1
DATA SCIENCE
alguna clase de tareas T y la medida de rendimiento P, si su rendimiento en las
tareas en T, medidas por P, mejora con la experiencia E ."
Tipos de Machine Learning
● El aprendizaje no supervisado nos permite abordar los problemas con
poca o ninguna idea de cómo deberían ser nuestros resultados. Podemos
derivar la estructura agrupando los datos en base a las relaciones entre
las variables de los datos.
● El aprendizaje por refuerzos es un área del aprendizaje automático
inspirada en la psicología conductista, que se ocupa de cómo los agentes
de software deben actuar en un entorno para maximizar alguna noción de
recompensa acumulativa.
● En el aprendizaje supervisado, se nos da un conjunto de datos y ya
sabemos cómo debe ser nuestra salida correcta (teniendo la idea de que
existe una relación entre la entrada y la salida). Recordemos que los
problemas de aprendizaje supervisado se clasifican en problemas de
"regresión" y "clasificación".
○ En un problema de regresión, tratamos de predecir los resultados
dentro de una salida continua, lo que significa que estamos
tratando de mapear las variables de entrada a alguna función
continua.
○ En un problema de clasificación, en cambio, estamos tratando de
predecir los resultados en una salida discreta. En otras palabras,
estamos tratando de mapear las variables de entrada en categorías
discretas.
Por otra parte, como hemos visto en encuentros y bitácoras anteriores, existen
métricas que nos facilitan la tarea de evaluar el rendimiento de un modelo. Por
ejemplo, para problemas de clasificación vimos que existen:
● Exactitud.
● Precisión/Exhaustividad.
● F-Score.
Y en los problemas de regresión:
● MAE.
● MSE/RMSE, etc.
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
2
DATA SCIENCE
¿Cuál es el error que solemos cometer cuando recién arrancamos en esta
disciplina? Tomamos nuestros datos, elegimos algún modelo —por ejemplo,
árboles de decisión— y alguna métrica que nos interese. Entrenamos ese modelo
con todos nuestros datos y, luego, usamos el modelo para predecir las etiquetas
de esos mismos datos. Cuando lo evaluamos —por ejemplo, usando exactitud—,
vemos que tiene un desempeño altísimo, cercano a la perfección. ¿Cuál fue el
error?
Entendiendo el underfitting y el overfitting
Un/a Data Scientist desarrolla modelos de Machine Learning para obtener
predicciones sobre nuevos datos y, en el medio, aprender sobre el problema
que le interesa. Un buen modelo no es aquel que da predicciones exactas sobre
los datos conocidos (o datos de entrenamiento), sino el que da buenas
predicciones sobre nuevos datos (datos desconocidos o nunca vistos),
evitando tanto como sea posible los problemas de sobreajuste (overfitting)
y de subajuste (underfitting):
● El Overfitting se produce cuando un modelo de aprendizaje automático
captura el ruido de los datos. Intuitivamente, el overfitting se produce
cuando el modelo se ajusta demasiado bien a los datos o como se suele
decir coloquialmente “el modelo aprende de memoria los datos”. Este
ajuste excesivo da como resultado un buen desempeño en el conjunto de
datos de entrenamiento, pero resultados pobres en los datos nunca
vistos.
● Por el contrario, el Underfitting se produce cuando un modelo no puede
capturar la tendencia subyacente de los datos. Intuitivamente, la
inadecuación se produce cuando el modelo no generaliza lo
suficientemente bien a los datos. Este subjuaste suele ser el resultado de
un modelo excesivamente simple.
Tanto el underfitting como el overfitting se pueden presentar en problemas de
clasificación como de regresión. Veamos los siguientes ejemplos:
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
3
DATA SCIENCE
Ahora sí, vayamos a la pregunta central de esta bitácora:
¿Cómo podemos evaluar si el modelo está
aprendiendo o no de nuestros datos?
Una vez que terminamos de entrenar nuestro modelo, no podemos asumir que
va a funcionar bien con datos nunca vistos. En otras palabras, no podemos estar
seguros de que el modelo tendrá el desempeño deseado en el entorno de
producción. Necesitamos algún tipo de garantía de la exactitud de las
predicciones que nuestro modelo está realizando o, dicho de otra manera,
necesitamos validar nuestro modelo.
Para evaluar el rendimiento de cualquier modelo necesitamos probarlo con
algunos datos nuevos (nunca vistos), simulando el uso que le daremos a ese
modelo una vez que haya sido entrenado. Basándonos en el rendimiento de los
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
4
DATA SCIENCE
modelos en los datos nunca vistos podremos decir si nuestro modelo está
subajustado, sobreajustado o si generaliza bien.
La forma más sencilla y fundamental de lograr esto es con un Train/Test Split,
como vimos en el Bloque 1. En este enfoque dividimos aleatoriamente el
conjunto de datos completo en subconjuntos de entrenamiento (train) y prueba
(test). Luego entrenamos nuestro modelo con el conjunto de datos de
entrenamiento y usamos el conjunto de pruebas para propósitos de validación,
idealmente dividimos los datos con una proporción 70/30 u 80/20.
Este método, sin embargo, no es muy fiable, ya que el desempeño obtenido para
un conjunto de pruebas determinado puede ser muy diferente al desempeño
obtenido para un conjunto de pruebas diferente. ¿Cómo podemos garantizar que
el desempeño de nuestro modelo es independiente de la separación de los datos
que hayamos hecho? ¿Se te ocurre alguna idea? Tómate unos minutos para
pensar si se te ocurre algo, muchas veces la respuesta intuitiva es la correcta.
Validación Cruzada
Según Wikipedia, “la validación cruzada o cross-validation es una técnica
utilizada para evaluar los resultados de un análisis estadístico y garantizar que
son independientes de la partición entre datos de entrenamiento y prueba.”
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
5
DATA SCIENCE
En Machine Learning se utiliza para evaluar los modelos de aprendizaje
automático mediante el entrenamiento de varios modelos con subconjuntos de
los datos de entrada disponibles y su evaluación en el subconjunto
complementario de los datos.
📌 Utilizando la validación cruzada, hay grandes posibilidades de que
podamos detectar el overfitting con mayor facilidad.
⚠ Una aclaración importante: muchas veces usamos la palabra modelo de
una manera bastante laxa. Por ejemplo, llamamos modelo a los árboles de
decisión. Pero, para esta sección, es mejor considerar a los modelos con
hiperparámetros ya definidos. Dos árboles de decisión con distintos
hiperparámetros son dos modelos distintos.
Existen varias técnicas de Validación Cruzada, siendo la más conocida la
validación cruzada de K-pliegues o de K-folds. En validación cruzada de
K-pliegues, el procedimiento tiene un único parámetro llamado K que se refiere
al número de grupos en los cuales se va a dividir una determinada muestra de
datos. Veamos cómo es el procedimiento para K=4.
Una pregunta que suele surgir es a qué modelo corresponde la métrica de
desempeño obtenida. En este ejemplo, durante el proceso de CV se entrenaron 4
modelos - todos con el mismo conjunto de hiperparámetros -, pero el
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
6
DATA SCIENCE
Existen otras formas de aplicar validación cruzada, que mencionaremos en el
encuentro. Todas giran alrededor de la misma idea - hacer más de una
separación en entrenamiento y testeo - y para obtener una estimación del
desempeño del modelo independiente de esa separación. Lamentablemente,
nunca podremos asegurar del todo que es independiente, pero la VC es una
técnica fundamental para una buena evaluación de nuestros modelos.
¿Esto significa que no debemos hacer más un train-test split de los datos? ¡No!
Todavía tenemos que hacerlo. En la próxima bitácora te explicaremos por qué,
cuando veamos cómo combinar Validación Cruzada con Optimización de
Hiperparámetros. Pero ahora veamos una métrica más avanzada para evaluar
Clasificadores.
Curva ROC y AUC-ROC
En un problema de clasificación, la Matriz de confusión nos permite observar el
desempeño de nuestro modelo comparando las etiquetas reales con las
etiquetas asignadas. Por ejemplo, en un problema binario, la matriz de confusión
es una tabla con 4 combinaciones diferentes de valores predichos y valores
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
7
DATA SCIENCE
Con estas dos clases, los elementos de la Matriz de Confusión se agrupan de la
siguiente manera:
Un test puede dar cualquiera de estos cuatro resultados, pero en la matriz de
confusión aparecen agrupados luego de realizar muchos tests. De esta forma,
en la Matriz de Confusión está toda la información del desempeño de nuestro
Clasificador. Sin embargo, puede ser difícil leer la matriz de confusión, sobre
todo cuando no nos importan por igual los Falsos Positivos y los Falsos
Negativos. Como vemos, no todos los errores se encuentran a un mismo nivel de
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
8
DATA SCIENCE
importancia, no es lo mismo cometer un error y decirle a un hombre que está
embarazado, que cometerlo con una mujer al decirle que está embarazada,
cuando no lo está. Entonces, hay algunas métricas que son útiles para resumir
esta información, hacerla más comprensible y adaptarla a nuestro problema.
Algunas de ellas son la exhaustividad, la precisión-, el F-Score y la exactitud.
¿Pero qué significan todas esas definiciones? Partiendo de TP, FP, FN y TN,
podemos definir lo siguiente:
· Exhaustividad o Recall
De todas las clases positivas, cuánto hemos predicho correctamente.
Debería ser lo más alto posible.
· Precisión
De todas las clases positivas que hemos predicho correctamente,
¿cuántas son realmente positivas?
· Exactitud o Accuracy
De todas las clases, cuánto predijimos correctamente. Debería ser lo más
alto posible.
· F-Score
Es difícil comparar dos modelos con baja precisión y alto recall o
viceversa. Así que para hacerlos comparables, usamos F-Score. El
F-Score ayuda a medir el recall y la precisión al mismo tiempo. Utiliza la
media armónica en lugar de la media aritmética, castigando más los
valores extremos.
Estas medidas suelen ser muy útiles para evaluar el desempeño de un modelo.
Notar que a medidas como Exactitud no les interesa una clase en particular,
mientras que a medidas como Precisión, Exhaustividad y F-Score sí.
Obviamente, cuanta más alta la Exactitud, más alta las otras, pero hay que tener
cuidado que existen sutilezas que pueden confundirnos en nuestra evaluación.
Siempre es importante evaluar con la métrica que consideremos más apropiada
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
9
DATA SCIENCE
Supongamos que tenemos un modelo que predice si un paciente tiene cáncer o
no, y que en lugar de predecir “1” (si tiene cáncer) y “0” (si no tiene cáncer),
predice la probabilidad/score de que tenga cáncer, por ejemplo: 95% ó 0.95.
Si luego graficamos dichos scores de predicción (en el eje X) vs. la cantidad de
veces que aparecen (en el eje Y) y los diferenciamos con distintos colores
basados en las verdaderas etiquetas, vamos a llegar a una gráfica como la
siguiente:
Normalmente, cuando nosotros definimos un modelo y las predicciones las
realizamos con una medida de la probabilidad (y_pred_score )en lugar de un
categoría (y_pred), la decisión de si un paciente está enfermo o no, se reduce a
observar que dicho valor de probabilidad se encuentre por debajo o por encima
de un umbral, en general de 0,5.
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
10
DATA SCIENCE
¿Y qué sucedería si cambiamos ese umbral de 0.5?
A medida que movemos el umbral, vamos cambiando la cantidad de aciertos, de
falsos positivos, de falsos negativos y de verdaderos negativos, dependiendo de
cuál sea ese nuevo umbral.
Con todo eso en mente, imagina que ahora vamos a ir barriendo el umbral y
observando los efectos que esto produce en la clasificación. Mientras sigues
imaginando esa situación, vamos a definir algunos conceptos que nos van a
permitir cuantificar la situación: Tasa Positiva Verdadera, Especificidad y
Tasa Positiva Falsa.
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
11
DATA SCIENCE
La curva de ROC, es la representación de TPR. vs. FPR. para
distintos valores de umbral.
¿Cómo determinar cuán bueno es un modelo en base a la curva de ROC?
Para hacer esa cuantificación, lo que se hace es calcular el área bajo la curva de
ROC (no lo hacemos a mano, recuerden que aprovechamos las bondades de las
librerías). De esta manera, con el área bajo la curva de ROC ó AUC-ROC, nos
evitamos tener que realizar la curva y sólamente calculamos un valor que nos
resume la curva de ROC.
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
12
DATA SCIENCE
Un modelo excelente tiene un AUC cercano al 1, lo que significa que tiene una
buena medida de separabilidad. Un modelo pobre tiene un AUC cercano al 0, lo
que significa que tiene la peor medida de separabilidad. De hecho, significa que
está dando vuelta el resultado. Predice 0s como 1s y 1s como 0s. Y cuando AUC
es 0.5, significa que el modelo no tiene ninguna capacidad de separación de
clases.
Interpretemos las declaraciones anteriores
Como sabemos, ROC es una curva de probabilidad. Así que vamos a graficar las
distribuciones de esas probabilidades:
Situación A
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
13
DATA SCIENCE
Situación A: esta es una situación ideal. Cuando dos curvas no se superponen
en absoluto significa que el modelo tiene una medida ideal de separabilidad. Es
perfectamente capaz de distinguir entre la clase positiva y la clase negativa.
Situación B
Situación B: cuando dos distribuciones se superponen, introducimos el error de
tipo 1 y tipo 2. Dependiendo del umbral, podemos minimizarlos o maximizarlos.
Cuando el AUC es de 0,7, significa que hay un 70% de posibilidades de que el
modelo sea capaz de distinguir entre la clase positiva y la clase negativa.
Situación C
Situación C: esta es la peor situación. Cuando el AUC es aproximadamente 0,5,
el modelo no tiene capacidad de discriminación para distinguir entre la clase
positiva y la clase negativa.
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
14
DATA SCIENCE
Situación D
Situación D: cuando el AUC es aproximadamente 0, el modelo está en realidad
dando vuelta las clases. Es decir, el modelo está prediciendo la clase negativa
como una clase positiva y viceversa.
Empieza a trabajar en el notebook
Para el encuentro, lleva resuelta la sección 1. Si aún tienes tiempo y ganas, mira
las otras secciones.
DS_Bitácora_21_CV_ROC
¡Prepárate para el próximo encuentro!
Challenge
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
15
DATA SCIENCE
Si te interesa saber más sobre Validación Cruzada y Curvas de ROC, te
recomendamos estos recursos:
● 📗 Python Data Science Handbook - Capítulo 5, “Hyperparameters and
Model Validation” .
● 📗 La guía de Scikit-Learn sobre CV y La guía de Scikit-Learn sobre
Curvas de ROC - Son siempre una muy buena referencia.
● Mira este video sobre Curvas de ROC, si te costó entender el concepto
visto en la bitácora, este video te va a ser de mucha ayuda.
● Juega con este recurso, del cual hemos sacado algunas de las imágenes
de esta bitácora.
Potencia tu Talento - Portales de empleo
🚀
Ofertas laborales
Si quieres comenzar a trabajar dentro de tu rama de estudio es importante que
investigues las ofertas de puestos disponibles. Ya hemos recorrido tus
opciones de desarrollo, los referentes de la industria y tienes un primer
proyecto para demostrar lo que sabes.
Revisar las ofertas de empleo disponibles te permitirá identificar qué aspectos
es mejor resaltar en tu perfil, te dará información muy valiosa para pensar tu
perfil de LinkedIn, CV y Portfolio de manera más estratégica.
🚀
Portales de empleo
Aquí te proponemos que indagues portales de empleo, no todas las ofertas
están en LinkedIn y te puedes estar perdiendo de oportunidades muy
interesantes si solo te quedas allí.
Además recuerda que en nuestro Slack de estudiantes tenemos el canal
#oportunidades-laborales abierto a toda la comunidad, para compartir
búsquedas de las distintas áreas de estudio de Acámica.
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
16
DATA SCIENCE
🔎
Portales de empleo
🔎 Trabajo remoto - construyendo una carrera con Topcoder
© Acamica S.A.- 2020. Esta obra está bajo una Licencia Creative Commons Atribución – No Comercial – Sin Obra Derivada 4.0 Internacional.
17