Sobremuestreo y submuestreo en el análisis de datos


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

El sobremuestreo y el submuestreo en el análisis de datos son técnicas que se utilizan para ajustar la distribución de clases de un conjunto de datos (es decir, la relación entre las diferentes clases / categorías representadas). Estos términos se utilizan tanto en muestreo estadístico, metodología de diseño de encuestas como en aprendizaje automático .

El sobremuestreo y el submuestreo son técnicas opuestas y aproximadamente equivalentes. También existen técnicas de sobremuestreo más complejas, incluida la creación de puntos de datos artificiales con algoritmos como la técnica de sobremuestreo de minorías sintéticas . [1] [2]

Motivación para el sobremuestreo y el submuestreo

Tanto el sobremuestreo como el submuestreo implican introducir un sesgo para seleccionar más muestras de una clase que de otra, para compensar un desequilibrio que ya está presente en los datos o que es probable que se desarrolle si se toma una muestra puramente aleatoria. El desequilibrio de datos puede ser de los siguientes tipos:

  1. Subrrepresentación de una clase en una o más variables predictoras importantes. Supongamos que, para abordar la cuestión de la discriminación de género, tenemos datos de encuestas sobre salarios dentro de un campo en particular, por ejemplo, software de computadora. Se sabe que las mujeres están subrepresentadas considerablemente en una muestra aleatoria de ingenieros de software, lo que sería importante al ajustar otras variables, como los años empleados y el nivel actual de antigüedad. Supongamos que solo el 20% de los ingenieros de software son mujeres, es decir, los hombres son 4 veces más frecuentes que las mujeres. Si estuviéramos diseñando una encuesta para recopilar datos, encuestaríamos 4 veces más mujeres que hombres, de modo que en la muestra final, ambos géneros estén representados por igual. (Consulte también Muestreo estratificado ).
  2. Subrrepresentación de una clase en la variable de resultado (dependiente). Supongamos que queremos predecir, a partir de un gran conjunto de datos clínicos, qué pacientes tienen probabilidades de desarrollar una enfermedad en particular (por ejemplo, diabetes). Sin embargo, suponga que solo el 10% de los pacientes desarrollan la enfermedad. Supongamos que tenemos un gran conjunto de datos existente. Luego, podemos elegir 9 veces el número de pacientes que no desarrollaron la enfermedad por cada paciente que sí lo hizo.


El sobremuestreo generalmente se emplea con más frecuencia que el submuestreo, especialmente cuando los datos detallados aún no se han recopilado mediante encuestas, entrevistas o de otro modo. El submuestreo se emplea con mucha menos frecuencia. La sobreabundancia de datos ya recopilados se convirtió en un problema solo en la era del "Big Data", y las razones para utilizar el submuestreo son principalmente prácticas y están relacionadas con los costos de los recursos. Específicamente, si bien se necesita un tamaño de muestra suficientemente grande para sacar conclusiones estadísticas válidas, los datos deben limpiarse antes de que puedan usarse. La limpieza suele implicar un componente humano importante y suele ser específica del conjunto de datos y del problema analítico, por lo que requiere tiempo y dinero. Por ejemplo:

  • Los expertos en el dominio sugerirán medios de validación específicos del conjunto de datos que involucren no solo verificaciones intravariables (valores permitidos, valores válidos máximos y mínimos posibles, etc.), sino también verificaciones intervariables. Por ejemplo, los componentes individuales de un recuento diferencial de glóbulos blancos deben sumar 100, porque cada uno es un porcentaje del total.
  • Los datos que están incrustados en el texto narrativo (por ejemplo, transcripciones de entrevistas) deben codificarse manualmente en variables discretas que un paquete estadístico o de aprendizaje automático puede manejar. Cuantos más datos, mayor es el esfuerzo de codificación. (A veces, la codificación se puede realizar a través de software, pero a menudo alguien debe escribir un programa único y personalizado para hacerlo, y la salida del programa debe probarse para verificar su precisión, en términos de resultados falsos positivos y falsos negativos).

Por estas razones, normalmente se limpiarán solo los datos necesarios para responder una pregunta con una confianza estadística razonable (consulte Tamaño de la muestra), pero no más que eso.

Técnicas de sobremuestreo para problemas de clasificación

Sobremuestreo aleatorio

El sobremuestreo aleatorio implica complementar los datos de entrenamiento con varias copias de algunas de las clases minoritarias. El sobremuestreo se puede realizar más de una vez (2x, 3x, 5x, 10x, etc.). Este es uno de los primeros métodos propuestos, que también ha demostrado ser robusto. [3] En lugar de duplicar todas las muestras de la clase minoritaria, algunas de ellas pueden elegirse al azar con reemplazo.

SMOTE

Hay varios métodos disponibles para sobremuestrear un conjunto de datos utilizado en un problema de clasificación típico (utilizando un algoritmo de clasificación para clasificar un conjunto de imágenes, dado un conjunto de imágenes de entrenamiento etiquetado). La técnica más común se conoce como SMOTE: Técnica de sobremuestreo de minorías sintéticas. [4] Para ilustrar cómo funciona esta técnica, considere algunos datos de entrenamiento que tienen muestras s y características f en el espacio de características de los datos. Tenga en cuenta que estas características, por simplicidad, son continuas. Como ejemplo, considere un conjunto de datos de aves para su clasificación. El espacio de características para la clase minoritaria para la que queremos sobremuestrear podría ser la longitud del pico, la envergadura y el peso (todo continuo). Para luego sobremuestrear, tome una muestra del conjunto de datos y considere suk vecinos más cercanos (en el espacio de características). Para crear un punto de datos sintéticos, tome el vector entre uno de esos k vecinos y el punto de datos actual. Multiplique este vector por un número aleatorio x que se encuentre entre 0 y 1. Agregue esto al punto de datos actual para crear el nuevo punto de datos sintéticos.

Se han realizado muchas modificaciones y ampliaciones al método SMOTE desde su propuesta. [5]

ADASYN

El enfoque de muestreo sintético adaptativo, o algoritmo ADASYN, [6] se basa en la metodología de SMOTE, al trasladar la importancia del límite de clasificación a las clases minoritarias que son difíciles. ADASYN utiliza una distribución ponderada para diferentes ejemplos de clases minoritarias de acuerdo con su nivel de dificultad en el aprendizaje, donde se generan más datos sintéticos para ejemplos de clases minoritarias que son más difíciles de aprender.

Aumento

El aumento de datos en el análisis de datos son técnicas que se utilizan para aumentar la cantidad de datos agregando copias ligeramente modificadas de datos ya existentes o datos sintéticos recién creados a partir de datos existentes. Actúa como un regularizador y ayuda a reducir el sobreajuste al entrenar un modelo de aprendizaje automático. [7] (Ver: aumento de datos )

Técnicas de submuestreo para problemas de clasificación

Submuestreo aleatorio

Elimine aleatoriamente muestras de la clase mayoritaria, con o sin reemplazo. Esta es una de las primeras técnicas utilizadas para aliviar el desequilibrio en el conjunto de datos; sin embargo, puede aumentar la varianza del clasificador y es muy probable que descarte muestras útiles o importantes. [5]

Grupo

Centroides de grupo es un método que reemplaza el grupo de muestras por el centroide de grupo de un algoritmo de K-medias, donde el número de grupos se establece por el nivel de submuestreo.

Enlaces de Tomek

Los enlaces Tomek eliminan la superposición no deseada entre clases donde los enlaces de clase mayoritaria se eliminan hasta que todos los pares de vecinos más cercanos mínimamente distanciados sean de la misma clase. Un enlace Tomek se define de la siguiente manera: dado un par de instancias , donde y es la distancia entre y , entonces el par se llama enlace Tomek si no hay una instancia tal que o . De esta manera, si dos instancias forman un enlace Tomek, una de estas instancias es ruido o ambas están cerca de un borde. Por lo tanto, se pueden usar enlaces de Tomek para limpiar la superposición entre clases. Al eliminar los ejemplos superpuestos, se pueden establecer grupos bien definidos en el conjunto de entrenamiento y conducir a un mejor rendimiento de clasificación.

Submuestreo con aprendizaje conjunto

Un estudio reciente muestra que la combinación de submuestreo con aprendizaje en conjunto puede lograr mejores resultados, consulte IFME: filtrado de información por múltiples ejemplos con submuestreo en un entorno de biblioteca digital. [8]

Técnicas adicionales

Es posible combinar técnicas de sobremuestreo y submuestreo en una estrategia híbrida. Los ejemplos comunes incluyen enlaces SMOTE y Tomek o SMOTE y Vecinos más cercanos editados (ENN). Las formas adicionales de aprender sobre conjuntos de datos desequilibrados incluyen instancias de entrenamiento de ponderación, introduciendo diferentes costos de clasificación errónea para ejemplos positivos y negativos y bootstrapping. [9]

Implementaciones

  • Se implementa una variedad de técnicas de remuestreo de datos en el paquete desequilibrado-learn [1] compatible con la interfaz scikit-learn de Python. Las técnicas de remuestreo se implementan en cuatro categorías diferentes: submuestreo de la clase mayoritaria, sobremuestreo de la clase minoritaria, combinación de sobremuestreo y submuestreo y muestreo de conjunto.
  • La implementación de Python de 85 técnicas de sobremuestreo minoritario con funciones de selección de modelo está disponible en el paquete smote-variantes [2] .

Ver también

  • Muestreo (estadísticas)
  • Aumento de datos

Referencias

  1. ^ a b https://github.com/scikit-learn-contrib/imbalanced-learn
  2. ^ a b https://github.com/analyticalmindsltd/smote_variants
  3. ^ Ling, Charles X. y Chenghui Li. "Minería de datos para marketing directo: problemas y soluciones". Kdd . Vol. 98. 1998.
  4. ^ Chawla, NV; Bowyer, KW; Hall, LO; Kegelmeyer, WP (1 de junio de 2002). "SMOTE: Técnica de sobremuestreo de minorías sintéticas" . Revista de Investigación en Inteligencia Artificial . 16 : 321–357. arXiv : 1106.1813 . doi : 10.1613 / jair.953 . ISSN  1076-9757 .
  5. ^ a b Chawla, Nitesh V .; Herrera, Francisco; García, Salvador; Fernández, Alberto (20/04/2018). "SMOTE para aprender a partir de datos desequilibrados: avances y desafíos, marcando el aniversario de 15 años" . Revista de Investigación en Inteligencia Artificial . 61 : 863–905. doi : 10.1613 / jair.1.11192 . ISSN 1076-9757 . 
  6. ^ http://sci2s.ugr.es/keel/pdf/algorithm/congreso/2008-He-ieee.pdf
  7. ^ Acortar, Connor; Khoshgoftaar, Taghi M. (2019). "Una encuesta sobre el aumento de datos de imágenes para el aprendizaje profundo" . Matemáticas y Computación en Simulación . saltador. 6 : 60. doi : 10.1186 / s40537-019-0197-0 .
  8. ^ Zhu, Mingzhu; Xu, Chao; Wu, Yi-Fang Brook (22 de julio de 2013). IFME: filtrado de información por múltiples ejemplos con submuestreo en un entorno de biblioteca digital . ACM. págs. 107-110. doi : 10.1145 / 2467696.2467736 . ISBN 9781450320771.
  9. ^ Haibo He; García, EA (2009). "Aprendiendo de datos desequilibrados". Transacciones IEEE sobre conocimiento e ingeniería de datos . 21 (9): 1263-1284. doi : 10.1109 / TKDE.2008.239 .
  • Chawla, Nitesh V. (2010) Minería de datos para conjuntos de datos desequilibrados: una descripción general doi : 10.1007 / 978-0-387-09823-4_45 En: Maimon, Oded; Rokach, Lior (Eds) Manual de descubrimiento de conocimientos y minería de datos , Springer ISBN 978-0-387-09823-4 (páginas 875–886) 
  • Lemaître, G. Nogueira, F. Aridas, Ch.K. (2017) Aprendizaje desequilibrado: una caja de herramientas de Python para abordar la maldición de los conjuntos de datos desequilibrados en el aprendizaje automático , Journal of Machine Learning Research, vol. 18, no. 17, 2017, págs. 1-5.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Oversampling_and_undersampling_in_data_analysis&oldid=1049017540 "