SMOTE

Importante

El soporte técnico de Machine Learning Studio (clásico) finalizará el 31 de agosto de 2024. Se recomienda realizar la transición a Azure Machine Learning antes de esa fecha.

A partir del 1 de diciembre de 2021 no se podrán crear recursos de Machine Learning Studio (clásico). Hasta el 31 de agosto de 2024, puede seguir usando los recursos de Machine Learning Studio (clásico) existentes.

La documentación de ML Studio (clásico) se está retirando y es posible que no se actualice en el futuro.

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:

Solo se aplica a: Machine Learning Studio (clásico)

Hay módulos para arrastrar y colocar similares en el diseñador de Azure Machine Learning.

Información general sobre el módulo

En este artículo se describe cómo usar el módulo SMOTE en Machine Learning Studio (clásico) para aumentar el número de casos infrapresentados en un conjunto de datos 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 va a dirigir podría ser muy poco frecuente en la población o los datos podrían ser 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 usa el conjunto de datos Donación de sangre disponible en Machine Learning Studio (clásico).

Si agrega el conjunto de datos a un experimento y hace clic en Visualizar en la salida del conjunto de datos, puede ver que, de las 748 filas o casos del conjunto de datos, 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 porcentaje SMOTE = 0)
570

76%
178

24%
748
Porcentaje SMOTE = 100 570

62%
356

38%
926
Porcentaje SMOTE = 200 570

52%
534

48%
1104
Porcentaje 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 label 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 la 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 mayoritarios, la proporción de casos de cada clase ahora 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, el tamaño del conjunto de datos aumenta de forma que el número de casos de mayoría permanece igual y el número de casos minoritarios aumenta hasta que coincide 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 Random seed (Valor de ed. aleatorio) si desea asegurarse de que los mismos resultados se han obtenido en ejecuciones del mismo experimento, con los mismos datos. De lo contrario, el módulo genera una ed. aleatoria basada en los valores de reloj del procesador cuando se implementa el experimento, lo que puede provocar 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é filas nuevas se agregaron, puede usar los módulos Aplicar SQL transformación oCombinación de 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. Es posible que reciba 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 tales casos: Blagus y Lusa: SMOTE para datos desequilibrados de clase altamente dimensionales

    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 los ejemplos 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.

Consulte también

Muestrear y dividir
Lista de módulos A-Z