SMOTE

Aumenta el número de ejemplos de baja incidencia en un conjunto de datos con el sobremuestreo minoritario sintético

Categoría: transformación y manipulación de datos

Nota

Se aplica a: machine learning Studio (clásico)

Este contenido solo pertenece a Studio (clásico). Se han agregado módulos similares de arrastrar y colocar al diseñador de Azure Machine Learning. Obtenga más información en este artículo comparativa de las dos versiones.

Información general sobre el módulo

En este artículo se describe cómo usar el módulo SMOTE en Azure machine learning Studio (clásico) para aumentar el número de casos de underepresented en un conjunto de información usado para el aprendizaje automático. SMOTE es una mejor manera para aumentar el número de casos poco frecuentes en lugar de simplemente duplicar los casos existentes.

El módulo SMOTE se conecta a un conjunto de datos desequilibrados. Hay muchas razones por las que un conjunto de datos podría estar desequilibrado: la categoría a la que se destina podría ser muy poco frecuente en la población, o bien es posible que los datos sean simplemente difíciles de recopilar. Normalmente, se utiliza SMOTE cuando la clase que desea analizar está en representación inferior.

El módulo devuelve un conjunto de datos que contiene las muestras originales, más un número adicional de muestras minoritarias sintéticas, según el porcentaje que especifique.

Más información sobre SMOTE

SMOTE significa Técnica de sobremuestreo de minorías sintéticas. Se trata de una técnica estadística para aumentar el número de casos en el conjunto de datos de manera equilibrada. El módulo funciona cuando genera nuevas instancias a partir de casos minoritarios existentes que se proporcionan como entrada. Esta implementación de SMOTE no cambia el número de casos de mayoría.

Las nuevas instancias no son solo copias de casos de minorías existentes, sino que el algoritmo toma muestras del espacio de características para cada clase de destino y sus vecinos más próximos, y genera nuevos ejemplos que combinan características del caso de destino con las características de sus vecinos. Este enfoque aumenta las características disponibles para cada clase y hace que las muestras sean más generales.

SMOTE toma todo el conjunto de datos como una entrada, pero solo aumenta el porcentaje de los casos minoritarios. Por ejemplo, supongamos que tiene un conjunto de datos desequilibrado donde solo el 1% de los casos tiene el valor de destino A (la clase minoritaria) y el 99% de los casos tienen el valor B. Para aumentar al doble el porcentaje de los casos minoritarios, recomendamos introducir 200 para porcentaje de SMOTE en las propiedades del módulo.

Ejemplos

Le recomendamos que intente usar SMOTE con un conjunto de datos pequeño para ver cómo funciona. En el ejemplo siguiente se utiliza el conjunto de elementos de la donación de sangre disponible en Azure Machine Learning Studio (clásico).

Si agrega el conjunto de elementos a un experimento y hace clic en visualizar en la salida del conjunto de elementos , puede ver que, de las 748 filas o casos del conjunto de elementos, hay 570 casos (76%). de la clase 0 y 178 casos (24%) de la clase 1. Aunque esto no está tan desequilibrado, la Clase 1 representa a las personas que donaron sangre, y por lo tanto estos registros contienen el espacio de características que desea modelar.

Para aumentar el número de casos, puede establecer el valor de porcentaje SMOTE con múltiplos de 100, como se indica a continuación:

Clase 0 Clase 1 total
Conjunto de datos original

(equivalente a SMOTE Percentage = 0)
570

76%
178

24%
748
Porcentaje = de SMOTE 100 570

62%
356

38%
926
Porcentaje = de SMOTE 200 570

52%
534

48%
1104
Porcentaje = de SMOTE 300 570

44%
712

56%
1282

Advertencia

El aumento del número de casos en SMOTE no garantiza la producción de modelos más precisos. Experimente con diferentes porcentajes, conjuntos de características distintos y varias cantidades de vecinos más cercanos para ver de qué modo influye en el modelo la adición de casos.

Cómo configurar SMOTE

  1. Agregue el módulo SMOTE al experimento. Puede encontrar el módulo en Módulos de transformación de datos, en la categoría de manipulación.

  2. Conecte el conjunto de datos que quiera transformar. Si desea especificar el espacio de características para compilar los nuevos casos, ya sea con el uso de columnas específicas o algunos excluidos, use el módulo Seleccionar columnas del conjunto de datos para aislar las columnas que desea usar antes de comenzar el uso de SMOTE.

    De lo contrario, la creación de nuevos casos en SMOTE se basa en todas las columnas que se proporcionan como entradas.

  3. Asegúrese de que la columna que contiene la etiqueta o la clase de destino esté marcada como tal.

    Si no hay ninguna columna de etiqueta, use el módulo editar metadatos para seleccionar la columna que contiene las etiquetas de clase y seleccione etiqueta en la lista desplegable campos .

  4. El módulo SMOTE identifica automáticamente la clase minoritaria en la columna de etiqueta y, a continuación, obtiene todos los ejemplos de la clase minoritaria.

  5. En la opción porcentaje SMOTE, escriba un número entero que indique el porcentaje destino de los casos minoritarios en el conjunto de datos de los resultados. Por ejemplo:

    • Escriba 0 (%). El módulo SMOTE devuelve exactamente el mismo conjunto de datos que proporcionó como entrada y no agrega ningún caso minoritario nuevo. En este conjunto de datos, la proporción de clase no ha cambiado.

    • Escriba 100 (%). El módulo SMOTE genera nuevos casos minoritarios, agregando el mismo número de casos minoritarios que estaban en el conjunto de datos original. Dado que SMOTE no aumenta el número de casos de mayoría, la proporción de casos de cada clase ha cambiado.

    • Escriba 200 (%). El módulo duplica el porcentaje de casos minoritarios en comparación con el conjunto de datos original. Esto no significa que haya el doble de casos minoritarios que antes. En su lugar, se aumenta el tamaño del conjunto de resultados de forma que el número de casos de mayoría sea el mismo y el número de casos minoritarios aumente hasta que coincida con el valor de porcentaje deseado.

    Nota

    Use solo múltiplos de 100 para el porcentaje SMOTE.

  6. Use la opción Número de vecinos más próximos para determinar el tamaño del espacio de característica que utiliza el algoritmo SMOTE al compilar nuevos casos. Un vecino más próximo es una fila de datos (un caso) que es muy similar a algún caso de destino. La distancia entre dos casos cualesquiera se mide con la combinación de los vectores ponderados de todas las características.

    • Al aumentar el número de vecinos más próximos, se obtienen características en más casos.
    • Al mantener bajo el número de vecinos más próximos, se usan características que son más similares a las de la muestra original.
  7. Escriba un valor en el cuadro de texto inicialización aleatoria si desea garantizar los mismos resultados en las ejecuciones del mismo experimento con los mismos datos. De lo contrario, el módulo genera un valor de inicialización aleatorio según los valores del reloj del procesador cuando se implementa el experimento, lo que puede producir resultados ligeramente diferentes en las ejecuciones.

  8. Ejecute el experimento.

    La salida del módulo es un conjunto de datos que contiene los registros originales más un número de registros agregados con casos minoritarios.

Sugerencia

Si desea averiguar qué nuevas filas se agregaron, puede usar los módulos aplicar transformación de SQL o combinar datos .

Notas técnicas

  • Al publicar un modelo que usa el módulo SMOTE , quite SMOTE del experimento predictivo antes de publicarlo como un servicio Web. La razón es que SMOTE está diseñado para mejorar un modelo durante el entrenamiento, y no para puntuación. Podría recibir un error si un experimento predictivo publicado contiene el módulo SMOTE.

  • A menudo se pueden obtener mejores resultados si aplica la limpieza de valores que faltan u otras transformaciones para corregir los datos antes de aplicar SMOTE.

  • Algunos investigadores han hecho investigaciones para saber si SMOTE es efectivo en datos de gran dimensión o dispersos, como los que se utilizan en la clasificación de textos o en los conjuntos de datos genómicos. Este documento tiene un buen Resumen de los efectos y de la validez teórica de la aplicación de SMOTE en estos casos: Blagus y lusa: SMOTE para los datos desequilibrados de clase de gran dimensionalidad .

    Si SMOTE no es efectivo en el conjunto de datos, otros enfoques que puede considerar incluyen varios métodos para el sobremuestreo de los casos minoritarios o el submuestreo de los casos de mayoría, así como técnicas de conjunto que ayuden directamente al aprendizaje con el uso de agrupación en clústeres, empaquetamiento o aumento adaptable.

Entrada prevista

Nombre Tipo Descripción
Ejemplos Tabla de datos Conjunto de datos de muestras

Parámetros del módulo

Nombre Intervalo Tipo Valor predeterminado Descripción
Porcentaje SMOTE >=0 Entero 100 Cantidad de sobremuestreo en múltiplos de 100.
Número de vecinos más cercanos >=1 Entero 1 Número del vecino más cercano desde el que se van a extraer las características de los nuevos casos
Inicialización aleatoria Any Entero 0 Inicialización para el generador de números aleatorios

Output

Nombre Tipo Descripción
Tabla Tabla de datos Una tabla de datos que contiene las muestras originales más un número adicional de muestras de clases minoritarias sintéticas. El número de muestras nuevas es (smotePercent/100)*T, donde T es el número de muestras de clases minoritarias.

Vea también

Ejemplo y división
Lista de módulos A-Z