Índice De Contenido

  1. Holi

Manejando conjuntos de datos desbalanceados en Aprendizaje Automático

Ha amanecido un lunes maravilloso y te encuentras de camino a la oficina (hoy toca trabajo presencial). En el viaje le sigues dando vueltas a ese nuevo proyecto en el que has entrado, junto al departamento de marketing, para predicción de compra de un producto en la tienda online.

El departamento de marketing y ventas te ha proporcionado una base de datos con multitud de registros (filas). Detrás de cada una de esas filas del conjunto de datos que tienes disponible sobre ventas pasadas se encuentra una persona y seguramente al observar un puñado de esas «filas» del conjunto de datos esto es lo que ocurrirá:

Ejemplo ilustrativo de un conjunto de datos desbalanceados

¿Qué observas en la imagen?

En efecto, al analizar el conjunto de observaciones del set de datos se puede ver que hay la clase representada por el hombrecito de negro (la que nos interesa identificar lo más correctamente posible) está muy en desventaja con la del hombrecito blanco…

La clase del hombrecito negro se denomina, en este contexto, clase minoritaria, es decir, es la clase de la que se tienen menos muestras. Cuando en un conjunto de datos, o dataset en inglés, se tiene un clase minoritaria y otra, por contra, mayoritaria, se dice que el conjunto de datos se encuentra desbalanceado o desequilibrado.

¿En qué casos de clasificación suelen tenerse conjuntos de datos desbalanceados?

Este caso del ‘funnel’ de marketing no es el único en el que lo normal es pelearse con conjuntos de datos desbalanceados. Otros casos míticos de presencia de desiquilibrio en los datos lo encontramos en los algoritmos de detección de fraude en transacciones con tarjetas de crédito. En estos casos, lo normal es que existan muchos más clientes ‘honestos’ que clientes que han cometido fraude en la transacción.

Otro mundo muy afectado por esta característica de desbalanceo en los conjuntos de datos es el de la Salud, en donde solemos encontrar conjuntos de datos con miles de registros con pacientes “negativos” y unos pocos casos positivos es decir, que padecen la enfermedad que queremos clasificar.

Más ejemplos los encontramos en los detectores de mensajería de SPAM o en la predicción de si uno de los empleados en plantilla presentará o no la carta de baja en los próximos meses…

¿Porqué puede suponer un problema enfrentarse a conjuntos de datos desbalanceados?

Veámoslo en otro ejemplo:

Hemos cambiado de proyecto en nuestra empresa ficticia y ahora el cometido es el de crear un modelo que, basándose en varias mediciones a nuestra disposición, prediga si un producto es defectuoso o no. Decides usar de nuevo tu algoritmo clasificador favorito, entrenarlo en los datos y listo: ¡obtienes una exactitud del 96.2%!


Tu responsable directo ha quedado asombrado y decide usar tu modelo sin más pruebas. Unas semanas más tarde, se pasa por tu mesa en la oficina y subraya la inutilidad de tu modelo. De hecho, el modelo que creaste ¡no ha encontrado ningún producto defectuoso desde el momento en que se ha utilizado en la producción!


Después de algunas investigaciones, descubres que sólo alrededor del 3.8% del producto fabricado por tu empresa es defectuoso y tu modelo siempre predice «no defectuoso», lo que lleva a una exactitud del 96.2%.

Este tipo de resultados «ingenuos» en los que parece que hemos llegado a modelos de predicción muy certeros cuando la verdad no es tal se debe a que el conjunto de datos con el que se está trabajando está desbalanceado.

Con lo cuál, nuestra situación ideal sería algo así:

Ejemplo ilustrativo de un conjunto de datos balanceado

En este caso, hay casi la misma cantidad de individuos que renuevan el contrato que de los que no lo hacen. Con este tipo de conjunto de datos, el algoritmo de clasificación tiene más muestras de las que «aprender» para formalizar la predicción.

3 formas de enfrentarse a un conjunto de datos desbalanceado

  1. Recopilar más datos
  2. Emplear las métricas de evaluación correctas
  3. Re-muestrear el conjunto de datos

Recopilando más datos

Aunque puedas pensar que es una tontería, pero la recopilación de más datos casi siempre se pasa por alto. Verifica si es posible reunir más datos para el problema, un conjunto de datos más grande podría exponer una perspectiva diferente y quizás más equilibrada de las clases.

Empleando las métricas de evaluación correctas: la matriz de confusión

Para asegurar que detectamos cualquier «comportamiento ingenuo» de nuestro clasificador lo mejor es emplear las medidas de evaluación correctas y entender qué información nos proporcionan.

Como has visto en la sección anterior, el emplear la exactitud (en inglés ‘accuracy’) para la evaluación de un modelo y «quedarse ahí» puede resultar muy peligroso y engañoso a la hora de decidir qué modelo de clasificación funcionará en nuestro proyecto.

La matriz de confusión (en inglés, confusion matrix) es una métrica muy buena y simple que siempre debería usarse cuando se trata con un problema de clasificación. Esta métrica ofrece una visión general interesante de qué tan bien le está yendo a un modelo. Por lo tanto, es un gran punto de partida para cualquier evaluación del modelo de los modelos de clasificación. Resumimos la mayoría de las métricas que pueden derivarse de la matriz de confusión en el siguiente gráfico:

Ejemplo ilustrativo de la Matriz de Confusión

Esta matriz de confusión aquí representada es aplicable a casos de clasificación binaria, es decir, el modelo de Machine Learning tiene que predecir entre dos posibles valores. En este caso pronostica si la observación pertenece a clase ‘hombrecito azul’ o a la clase ‘hombrecito blanco’.

Los valores númericos dentro de los cuadraditos coloreados que forman parte de la matriz de confusión toman generalmente los nombres de ‘Verdaderos Positivos (TP en inglés)’, ‘Verdaderos Negativos (TN en inglés)’, ‘Falsos Positivos (FP en inglés)’ y ‘Falsos Negativos (FN en inglés)’. Sin embargo como esta nomenclatura puede en ocasiones inducir a error y por eso es quizá mejor renombrarlo a ‘Verdaderos Perseguidos’, ‘Verdaderos No Perseguidos’, ‘Falsos Perseguidos’ y ‘Falsos No Perseguidos’.

¿Pero qué son exactamente estos valores?

Volvamos al ejemplo de predicción de ‘hombrecitos azules’ y ‘hombrecitos blancos’. Recordemos que por detrás del ‘hombrecito azul’ está nuestro caso de éxito del negocio y es que el cliente desea renovar el contrato de seguro con nosotros, por tanto es lo que nuestra empresa ‘persigue’. ¡Es el perseguido!. El hombrecito blanco es lo que no queremos, el que se cambia, y que, por desgracia pues existirá y seguirá existiendo…

Entonces imáginemos ahora que dentro de nuestro proyecto llega el momento de evaluar el primero de los modelos sobre un conjunto de testeo de 100 individuos. Como se trata del conjunto de pruebas (o de test) ya sabemos a priori la realidad sobre cuántos son ‘hombrecitos azules’ y cuántos son blancos: 68 son azules y el resto, 32, son blancos.

Ahora pasamos los datos de las variables predictoras por nuestro modelo de clasificación y éste nos devuelve que dentro de nuestro conjunto 70 de las observaciones corresponden a ‘hombrecitos azules’ y 30 son ‘hombrecitos blancos’.

A priori, 70 no está muy lejos de 68 ni 30 muy lejos de 32… Nuestro modelo puede que sea realmente efectivo detectando a ‘hombrecitos azules’ y ‘hombrecitos blancos’.

Pues bien, como puedes intuir, no es tan fácil como parece y te adelanto que, en efecto, el modelo no es tan genial para predecir ‘hombrecitos azules’ y ‘hombrecitos blancos’. La razón está en los valores de la matriz de confusión que ahora rellenaremos con:

  • Verdaderos Perseguidos (o VP / TP): Son el total de observaciones predichas como clase perseguida y que realmente pertenecían a la clase perseguida. En nuestro ejemplo son la cantidad de ‘hombrecitos’ que el clasificador predijo como azules y que realmente eran azules dentro del conjunto de testeo. El valor para nuestro ejemplo es: 41 (Este es un dato arbitario que yo «me he sacado de la manga»).
  • Verdaderos No Perseguidos (o VN / TN): Son el total de observaciones predichas para la clase NO perseguida y que realmente pertenecían a la clase NO perseguida. En nuestro ejemplo son la cantidad de ‘hombrecitos’ que el clasificador predijo como blancos y que realmente eran blancos dentro del conjunto de testeo. El valor para nuestro ejemplo es: 2 (nuevamente este es un dato que «me he sacado de la manga»)
  • Falsos Perseguidos (o FP): Son el total de observaciuones predichas como clase perseguida pero que realmente pertenecían a la otra clase, la NO perseguida… :(. En nuestro ejemplo son la cantidad de ‘hombrecitos’ que el clasificador predijo como azules y que realmente eran blancos dentro del conjunto de testeo. El valor para nuestro ejemplo es: 30 (de nuevo es un valor «inventado»)
  • Falsos NO Perseguidos (o FP): Son el total de observaciuones predichas como clase NO perseguida pero que realmente pertenecían a la otra clase, la perseguida… :(. En nuestro ejemplo son la cantidad de ‘hombrecitos’ que el clasificador predijo como blancos y que realmente eran azules dentro del conjunto de testeo. El valor para nuestro ejemplo es: 27 (de nuevo es un valor «inventado»)

De la matriz de confusión se pueden obtener diversas métricas para la evaluación de nuestro clasificador. Las más comunes son:

Principales métricas que se obtienen de la Matriz de Confusión

Veamos brevemente el significado de éstas y cómo interpretarlas:

La exactitud (en inglés accuracy) del modelo es básicamente la proporción de predicciones hechas correctamente sobre el total de predicciones realizadas. Por tanto se trata del cociente entre todos los verdaderos y la suma de verdaderos y falsos.

¿Crees que puede serle útil a alguien más? ¡Comparte! :)
0 0 votos
Valora este artículo!
Suscribirse a los comentarios de este artículo
Notificarme de
guest
0 Comments
Inline Feedbacks
Ver todos los comentarios