PREPROCESAMIENTO DE DATOS
Recopilar un conjunto de datos en el que cada clase tenga exactamente el mismo número de clases para predecir puede ser un desafío. En realidad, las cosas rara vez están perfectamente equilibradas y, cuando se crea un modelo de clasificación, esto puede ser un problema. Cuando un modelo se entrena con un conjunto de datos de este tipo, donde una clase tiene más ejemplos que la otra, generalmente mejora en la predicción de los grupos más grandes y peor en la predicción de los más pequeños. Para ayudar con este problema, podemos utilizar tácticas como el sobremuestreo y el submuestreo: crear más ejemplos del grupo más pequeño o eliminar algunos ejemplos del grupo más grande.
Existen muchos métodos diferentes de sobremuestreo y submuestreo (con nombres intimidantes como SMOTE, ADASYN y Tomek Links), pero no parece haber muchos recursos que comparen visualmente cómo funcionan. Entonces, aquí usaremos un conjunto de datos 2D simple para mostrar los cambios que ocurren en los datos después de aplicar esos métodos, de modo que podamos ver qué tan diferente es el resultado de cada método. Verá en las imágenes que estos diversos enfoques brindan diferentes soluciones y, quién sabe, ¡alguno podría ser adecuado para su desafío específico de aprendizaje automático!
Sobremuestreo
El sobremuestreo hace que un conjunto de datos sea más equilibrado cuando un grupo tiene muchos menos ejemplos que el otro. La forma en que funciona es haciendo más copias de los ejemplos del grupo más pequeño. Esto ayuda a que el conjunto de datos represente a ambos grupos de manera más equitativa.
Submuestreo
Por otro lado, el submuestreo funciona eliminando algunos de los ejemplos del grupo más grande hasta que tengan casi el mismo tamaño que el grupo más pequeño. Al final, el conjunto de datos es más pequeño, claro, pero ambos grupos tendrán una cantidad más similar de ejemplos.
Muestreo híbrido
La combinación de sobremuestreo y submuestreo se puede denominar “muestreo híbrido”. Aumenta el tamaño del grupo más pequeño al hacer más copias de sus ejemplos y también elimina algunos ejemplos del grupo más grande al eliminar algunos de sus ejemplos. Intenta crear un conjunto de datos que sea más equilibrado, ni demasiado grande ni demasiado pequeño.
Utilicemos un conjunto de datos de golf artificial simple para mostrar tanto el sobremuestreo como el submuestreo. Este conjunto de datos muestra qué tipo de actividad de golf realiza una persona en una condición climática particular.
⚠️ Tenga en cuenta que, si bien este pequeño conjunto de datos es bueno para comprender los conceptos, en aplicaciones reales querrá conjuntos de datos mucho más grandes antes de aplicar estas técnicas, ya que el muestreo con muy pocos datos puede generar resultados poco confiables.
Sobremuestreo aleatorio
Sobremuestreo aleatorio es una forma sencilla de hacer que el grupo más pequeño sea más grande. Funciona haciendo duplicados de los ejemplos del grupo más pequeño hasta que todas las clases estén equilibradas.
👍 Ideal para conjuntos de datos muy pequeños que deben equilibrarse rápidamente
👎 No recomendado para conjuntos de datos complicados
HERIDO
HERIDO (Técnica de sobremuestreo de minorías sintéticas) es una técnica de sobremuestreo que crea nuevos ejemplos interpolando el grupo más pequeño. A diferencia del sobremuestreo aleatorio, no solo copia lo que hay allí, sino que utiliza los ejemplos del grupo más pequeño para generar algunos ejemplos entre ellos.
👍 Es mejor cuando tienes una cantidad decente de ejemplos con los que trabajar y necesitas variedad en tus datos
👎 No recomendado si tienes muy pocos ejemplos.
👎 No recomendado si los puntos de datos están demasiado dispersos o son ruidosos
ADASYN
ADASYN (Adaptive Synthetic) es como SMOTE pero se centra en crear nuevos ejemplos en las partes más difíciles de aprender del grupo más pequeño. Encuentra los ejemplos que son más difíciles de clasificar y presenta más puntos nuevos en torno a ellos. Esto ayuda al modelo a comprender mejor las áreas desafiantes.
👍 Es mejor cuando algunas partes de tus datos son más difíciles de clasificar que otras
👍 Lo mejor para conjuntos de datos complejos con áreas desafiantes
👎 No recomendado si tus datos son bastante simples y directos
El submuestreo reduce el grupo más grande para acercarlo en tamaño al grupo más pequeño. Hay algunas formas de hacer esto:
Submuestreo aleatorio
Submuestreo aleatorio elimina ejemplos del grupo más grande al azar hasta que tenga el mismo tamaño que el grupo más pequeño. Al igual que el sobremuestreo aleatorio, el método es bastante simple, pero podría eliminar información importante que realmente muestra cuán diferentes son los grupos.
👍 Ideal para conjuntos de datos muy grandes con muchos ejemplos repetitivos
👍 Mejor cuando necesitas una solución rápida y sencilla
👎 No recomendado si todos los ejemplos de tu grupo más grande son importantes
👎 No recomendado si no puedes permitirte perder información
Enlaces de Tomek
Enlaces de Tomek Es un método de submuestreo que aclara las “líneas” entre grupos. Busca pares de ejemplos de diferentes grupos que sean realmente parecidos. Cuando encuentra un par donde los ejemplos son vecinos más cercanos pero pertenecen a grupos diferentes, elimina el ejemplo del grupo más grande.
👍 Mejor cuando tus grupos se superponen demasiado
👍 Lo mejor para limpiar datos desordenados o ruidosos
👍 Mejor cuando necesitas límites claros entre grupos
👎 No recomendado si vuestros grupos ya están bien separados
Casi accidente
Casi accidente es un conjunto de técnicas de submuestreo que funcionan con diferentes reglas:
- Casi accidente-1: Mantiene los ejemplos del grupo más grande que son más cercanos a los ejemplos del grupo más pequeño.
- Casi Miss-2: Mantiene ejemplos del grupo más grande que tienen la distancia promedio más pequeña a sus tres vecinos más cercanos en el grupo más pequeño.
- Casi Miss-3: Mantiene los ejemplos del grupo más grande que están más alejados de otros ejemplos de su propio grupo.
La idea principal aquí es conservar los ejemplos más informativos del grupo más grande y deshacerse de los que no son tan importantes.
👍 Es mejor cuando quieres controlar qué ejemplos conservar
👎 No recomendado si necesita una solución sencilla y rápida
ENN
Vecinos más cercanos editados (ENN) elimina ejemplos que probablemente sean ruido o valores atípicos. Para cada ejemplo del grupo más grande, comprueba si la mayoría de sus vecinos más cercanos pertenecen al mismo grupo. Si no lo hacen, elimina ese ejemplo. Esto ayuda a crear límites más limpios entre los grupos.
👍 Lo mejor para limpiar datos desordenados
👍 Mejor cuando necesitas eliminar valores atípicos
👍 Lo mejor para crear límites de grupo más limpios
👎 No recomendado si tus datos ya están limpios y bien organizados
SMOTETomek
SMOTETomek funciona creando primero nuevos ejemplos para el grupo más pequeño usando SMOTE, luego limpiando límites desordenados eliminando ejemplos “confusos” usando Tomek Links. Esto ayuda a crear un conjunto de datos más equilibrado con límites más claros y menos ruido.
👍 Lo mejor para datos desequilibrados que son realmente graves
👍 Mejor cuando necesitas más ejemplos y límites más claros
👍 Es mejor cuando se trata de grupos ruidosos y superpuestos
👎 No recomendado si tus datos ya están limpios y bien organizados
👎 No recomendado para conjuntos de datos pequeños
SUAVE
SUAVE funciona creando primero nuevos ejemplos para el grupo más pequeño usando SMOTE, luego limpiando ambos grupos eliminando ejemplos que no encajan bien con sus vecinos usando ENN. Al igual que SMOTETomek, esto ayuda a crear un conjunto de datos más limpio con límites más claros entre los grupos.
👍 Lo mejor para limpiar ambos grupos a la vez
👍 Mejor cuando necesitas más ejemplos pero datos más limpios
👍 Lo mejor cuando se trata de muchos valores atípicos
👎 No recomendado si tus datos ya están limpios y bien organizados
👎 No recomendado para conjuntos de datos pequeños