Ir al contenido

Usuario:KingKant/Taller

De Wikipedia, la enciclopedia libre

SMOTE (Synthetic Minority Over-sampling technique)[editar]

SMOTE (Técnica de sobremuestreo sintético de minorías, por sus siglas en inglés) es un algoritmo popular utilizado en el aprendizaje automático para manejar el desequilibrio de clases. En un conjunto de datos, el desequilibrio de clases ocurre cuando el número de instancias que pertenecen a una clase es significativamente menor que el número de instancias que pertenecen a las otras clases.

Es importante trabajar con clases balanceadas ya que la mayoría de las técnicas de aprendizaje automático ignorarán, y tendrán un mal rendimiento, en la clase minoritaria. Adicionalmente el rendimiento en la clase minoritaria es lo más importante en los modelos de aprendizaje máquina generalmente.


SMOTE se utiliza ampliamente en diversas aplicaciones, incluyendo la detección de fraude, el diagnóstico médico y la evaluación crediticia. Está implementado en varias bibliotecas de aprendizaje automático, incluyendo Scikit-learn[1]​, Imbalanced-learn y Weka.

Funcionamiento[editar]

SMOTE funciona creando muestras sintéticas de la clase minoritaria (es decir, la clase con menos instancias) para equilibrar la distribución de clases. El algoritmo selecciona aleatoriamente una instancia de la clase minoritaria y calcula los k-vecinos más cercanos para esta instancia. Luego selecciona uno de estos vecinos y crea una nueva instancia sintética interpolando linealmente entre la instancia original y el vecino seleccionado.

Este proceso continúa hasta que la clase minoritaria se sobremuestrea a un nivel deseado. El conjunto de datos resultante tendrá una distribución de clases equilibrada, y las instancias sintéticas pueden ayudar a mejorar el rendimiento de los algoritmos de aprendizaje automático, especialmente en casos donde el desequilibrio de clases es severo.

Creadores[editar]

Los creadores de SMOTE son Nitesh V. Chawla, Kevin W. Bowyer, Lawrence O. Hall y W. Philip Kegelmeyer. Introdujeron el algoritmo SMOTE en su artículo de 2002 titulado "SMOTE: Synthetic Minority Over-sampling Technique", que fue publicado en el Journal of Artificial Intelligence Research (JAIR)[2]​.

Demotración[editar]

Aquí hay una demostración paso a paso de cómo SMOTE genera muestras sintéticas:

  • Para cada instancia en la clase minoritaria, SMOTE selecciona los k vecinos más cercanos de la misma clase (donde k es un parámetro definido por el usuario).
  • SMOTE luego selecciona un vecino aleatorio de entre los k vecinos más cercanos.
  • SMOTE genera una nueva instancia interpolando entre la instancia original y el vecino seleccionado. Específicamente, para cada característica, SMOTE calcula la diferencia entre los valores de la característica de la instancia original y el vecino seleccionado. Luego, SMOTE multiplica esta diferencia por un número aleatorio entre 0 y 1 y agrega el resultado al valor de la característica de la instancia original.
  • SMOTE repite los pasos 2-3 hasta que haya generado el número deseado de instancias sintéticas.

Ejemplo[editar]

Por ejemplo, supongamos que tenemos un conjunto de datos con dos clases, A y B. La clase A tiene 10 instancias y la clase B tiene 100 instancias. Queremos usar SMOTE para generar instancias sintéticas para la clase A para que el conjunto de datos esté más equilibrado. Digamos que establecemos k en 5.

Para cada instancia en la clase A, SMOTE selecciona los 5 vecinos más cercanos de la clase A. Supongamos que los vecinos más cercanos para la primera instancia son las instancias A2, A4, A5, A7 y A9.

SMOTE selecciona aleatoriamente uno de los vecinos (digamos A4). Luego genera una nueva instancia interpolando entre la instancia A1 y la instancia A4. Por ejemplo, supongamos que el valor de la característica X1 para A1 es 5 y el valor de la característica X1 para A4 es 3. SMOTE calcula la diferencia (5-3=2) y la multiplica por un número aleatorio entre 0 y 1 (digamos 0,7). Luego agrega el resultado (2*0,7=1,4) al valor de la característica X1 para A1, dando un nuevo valor de 6,4.

SMOTE repite este proceso para cada instancia en la clase A hasta que haya generado el número deseado de instancias sintéticas. El conjunto de datos resultante tendrá más instancias de la clase A, lo que lo hará más equilibrado.

  1. «SMOTE — Version 0.10.1». imbalanced-learn.org. Consultado el 30 de abril de 2023. 
  2. Chawla, N. V.; Bowyer, K. W.; Hall, L. O.; Kegelmeyer, W. P. (1 de junio de 2002). «SMOTE: Synthetic Minority Over-sampling Technique». Journal of Artificial Intelligence Research 16: 321-357. ISSN 1076-9757. doi:10.1613/jair.953. Consultado el 30 de abril de 2023.