Saltar al contenido

lección 2

Cargar los extractos y ver el desbalanceo

Cargar las lesiones y los desenlaces, ver qué proporción resultó grave, y poner número a la asimetría de los errores.

⏱ 55 min

## Lunes, 11:30. El cajón de los extractos

Lucía te deja en la carpeta compartida dos ficheros CSV, los extractos que el equipo de datos exporta de la base clínica seudonimizada. No hay diccionario de datos: lo que es cada columna se pregunta por el chat. Uno, lesiones.csv, trae una fila por lesión con sus metadatos y los descriptores numéricos que extrae la app. El otro, desenlaces.csv, trae el resultado confirmado tras la revisión del dermatólogo: benigna o requiere atención. Ese desenlace es el target. El primer trabajo de un data scientist no es modelar, es entender qué tiene delante, y nadie se salta ese paso sin pagarlo luego.

Así que hoy montas el esqueleto del repositorio, cargas los dos ficheros con Pandas y les haces las preguntas de siempre: cuántas filas, qué columnas, de qué tipo, cuántos nulos, y qué pinta tienen las primeras filas. Lucía ya te ha avisado de que los extractos vienen con marranadas —el tamaño en milímetros y centímetros mezclados, la zona del cuerpo escrita de mil formas, edades imposibles, descriptores con nulos cuando la foto era mala, y lesiones subidas dos veces—, pero conviene comprobarlo con datos, no de oídas.

Los dos extractos. Los descriptores y los metadatos están en lesiones.csv; el desenlace confirmado —el target— está en desenlaces.csv. Fíjate en que lesiones trae más filas que desenlaces: ahí están los duplicados que habrá que resolver mañana.

## Qué es una fila, y qué es el target

El sujeto del caso es la lesión, no el paciente. Una persona puede tener varias lesiones, y cada una se tria por separado: por eso hay menos pacientes distintos que lesiones. El target es el desenlace confirmado, convertido a binario: 1 si la lesión requirió atención, 0 si fue benigna. Y aquí llega el número que ordena toda la semana: la proporción de lesiones graves. La mayoría son benignas; las que requieren atención son una minoría. Eso es el desbalanceo, y ya sabes de tu encargo en la ONG que con una clase rara el acierto global engaña.

La granularidad del caso. El sujeto es la lesión, no la persona: un paciente con tres lunares genera tres filas, y cada una se tria aparte. Por eso hay menos pacientes distintos que filas, y por eso los duplicados hay que resolverlos por lesión.
La proporción real de la clase grave, dibujada a escala. La franja roja es lo único que importa, y es pequeña: por eso el acierto global engaña y hay que mirar el recall de esa franja.

No confundas el desbalanceo con la trampa del caso. Que la clase grave sea minoritaria es el punto de partida, no el hallazgo. Lo nuevo no es «mira el recall en vez del accuracy» —eso ya lo traes aprendido—, sino qué haces con ese recall cuando toca convertir una probabilidad en una decisión. La prevalencia de la clase grave la vas a necesitar como referencia toda la semana, así que mídela bien hoy.

Fíjate también en el papel de los descriptores numéricos: la asimetría, la irregularidad del borde, la variación de color y el diámetro relativo. Son las columnas que más van a pesar, porque recogen la forma de la lesión, que es lo que de verdad distingue una grave de un lunar. Y son justo las que vienen con nulos cuando la foto era mala. Cómo tratarlos sin tirar lesiones a ciegas es una de las decisiones del martes.

Consejo de senior: cuando un dataset viene de varios extractos que hay que cruzar, cuenta las filas de cada uno antes de unir nada. Si lesiones trae más filas que desenlaces, o hay duplicados, o alguna lesión se queda sin desenlace, mejor saberlo ahora que descubrirlo cuando el modelo dé un número raro y no sepas de dónde sale.

Regístrate para guardar tu progreso.