Este artículo discutirá cómo el módulo SMOTE ayuda a incrementar los números subrepresentados en el conjunto de datos de un modelo de aprendizaje automático. SMOTE es el mejor método que permite aumentar los casos raros en lugar de duplicar los anteriores.
Cuando se tiene un conjunto de datos desequilibrado, se puede conectar el modelo con el módulo SMOTE. Puede haber numerosas razones para un conjunto de datos desequilibrado. Tal vez la categoría objetivo tiene un conjunto de datos único en la población, o los datos son difíciles de recoger. Puede solicitar la ayuda de SMOTE para analizar la clase subrepresentada. La salida del módulo contendrá la muestra original así como muestras adicionales. Estas nuevas muestras son muestras sintéticas de minorías. Debe definir el número de estas muestras sintéticas antes de iniciar la técnica.
Qué son los datos desequilibrados?
Cuando la clasificación de los datos no es igual, se puede hablar de datos desequilibrados. Se trata de una tarea de clasificación y provoca varios problemas en la salida del modelo. Por ejemplo, usted tiene 100 casos en un problema de clasificación binaria. La clase 1 incluye 80 instancias etiquetadas. Por otro lado, la muestra marcada restante estará en la Clase-2. Este será un ejemplo sencillo de un conjunto de datos desequilibrado. La proporción de instancias de la Clase 1 y de la Clase 2 sería de 4:1.
El problema de desequilibrio de clases es muy común, tanto si se habla de conjuntos de datos de prueba reales como de la competición Kaggle. Los problemas de clasificación del mundo real incluirán algún nivel de desequilibrio de clasificación. Esto suele ocurrir cuando no hay instancias de datos adecuadas que encajen en alguna clase. Por lo tanto, es esencial elegir la métrica de valoración correcta del modelo. Si el modelo tiene un conjunto de datos desequilibrado, su resultado será inútil. Sin embargo, si resuelve un problema de la vida real con este modelo, el resultado será un desperdicio.
En varias situaciones, siempre se producirá un desequilibrio de clases. Un buen ejemplo es cuando se considera el conjunto de datos de transacciones fraudulentas y no fraudulentas. Encontrará menos transacciones fraudulentas que no fraudulentas. Aquí es donde se encuentran los problemas.
Qué es SMOTE?
SMOTE es una técnica que se puede utilizar para el sobremuestreo de datos. Esta técnica crea nuevos ejemplos sintéticos en lugar de realizar un sobremuestreo por sustituciones. SMOTE introduce ejemplos sintéticos en los segmentos de línea para el sobremuestreo de las muestras de la clase minoritaria. Une todas las k clases minoritarias que están cerca de los vecinos. La elección de los vecinos de los k vecinos más cercanos es aleatoria. El número depende de la cantidad de sobremuestreo que necesite el modelo.
La función principal de SMOTE es construir clases minoritarias. Hay un algoritmo sencillo para hacer estas clases. Como es sabido, la elaboración de instancias repetitivas o el sobremuestreo pueden provocar un sobreajuste. Además, el límite de decisión se hace aún más estrecho. Se puede resolver el problema generando muestras similares en lugar de repetirlas todas. SMOTE genera muestras recién construidas que tienen características diferentes a las de las muestras anteriores. Por lo tanto, el límite de decisión se volverá más suave. Esto ayudará al algoritmo a estimar la hipótesis exacta. A continuación encontrará algunas ventajas de SMOTE:
– La información no se pierde.
– Esta técnica es sencilla y se puede interpretar e implementar fácilmente en el modelo.
– Mejora el overfitting como ejemplos sintéticos. Esto ayudará a generar nuevas instancias en lugar de replicarlas.
Cómo resolver el problema del desequilibrio de clases con SMOTE?
SMOTE sintetiza las nuevas instancias minoritarias similares a las instancias minoritarias reales. Imagine que hay una línea entre las instancias existentes. SMOTE dibuja estas líneas para crear instancias minoritarias sintéticas y nuevas en estas líneas.
library(smotefamily)
dat_plot = SMOTE(dat[,2:4], # valores de las características
as.numeric(dat[,6]), # etiquetas de clase
K = 6, dup_size =0) # parámetros de la función
Una vez completado el proceso de síntesis de nuevas instancias minoritarias, la salida incluirá el menor desequilibrio de los datos. El modelo añadirá nuevas instancias con la ayuda de SMOTE nivelando las clases.
Los parámetros de la función SMOTE
Dup_size y K son los dos parámetros de SMOTE (). Si quieres entender Dup_size y K, necesitas aprender el mecanismo de trabajo de SMOTE (). SMOTE () trabajará a través de la perspectiva de las instancias existentes y generará otras nuevas de forma aleatoria. La función creará una nueva instancia a cierta distancia de su instancia vecina. Sin embargo, todavía no está claro cómo el SMOTE () considera a sus vecinos para cada instancia minoritaria que crean
– La función considerará al vecino más cercano en K = 1.
– La función considerará al vecino más cercano y al siguiente en K = 2.
Normalmente, el SMOTE () hará un bucle a través de la instancia minoritaria original. Mientras la iteración del bucle es una sola instancia, el modelo creará la nueva instancia entre la instancia original y el vecino. El parámetro dup_size indica cuántas veces la función SMOTE hará un bucle en la instancia original. Por ejemplo, con dup_size = 1, el modelo sintetizará sólo cuatro nuevos puntos de datos y así sucesivamente.
Conclusión
Al crear un modelo predictivo en el aprendizaje automático, es posible que experimente conjuntos de datos desequilibrados. Estos conjuntos de datos pueden afectar al resultado del modelo. Puede resolver este problema sobremuestreando los datos minoritarios. Así que en lugar de duplicar los datos, utilice la técnica SMOTE y cree datos sintéticos para el sobremuestreo. A continuación encontrará algunas variaciones de SMOTE:
– Borderline-SMOTE
– SMOTE-NC
– SMOTE
– ADASYN
– SVM-SMOTE