¿Cómo se aplica SMOTE en la clasificación de texto?
13
La técnica de sobremuestreo de minorías sintéticas (SMOTE) es una técnica de sobremuestreo utilizada en un problema de conjunto de datos desequilibrado. Hasta ahora tengo una idea de cómo aplicarlo en datos genéricos y estructurados. ¿Pero es posible aplicarlo en un problema de clasificación de texto? ¿Qué parte de los datos necesita sobremuestrear? Ya hay otra pregunta al respecto, pero no tiene una respuesta. ¿Dónde puedo aprender a comenzar con esto?
En realidad, la PNL es una de las áreas más comunes en las que se necesita volver a muestrear datos, ya que hay muchas tareas de clasificación de texto que se ocupan de un problema desequilibrado (piense en el filtrado de spam, la detección de comentarios insultantes, la clasificación de artículos, etc.). Pero SMOTE parece ser problemático aquí por algunas razones:
SMOTE funciona en el espacio de características. Significa que la salida de SMOTE no es un dato sintético que es un representante real de un texto dentro de su espacio de características.
Por un lado, SMOTE funciona con KNN y, por otro lado, los espacios de características para el problema de PNL son dramáticamente enormes. KNN fallará fácilmente en esas enormes dimensiones.
Entonces puedo proponerle dos enfoques:
No me importa la representación de texto real de nuevas muestras sintéticas, que supongo que debería estar bien. Debe equilibrar la distribución para su clasificador, no para un lector de datos de texto. Por lo tanto, aplique SMOTE como tradicional (sin embargo, generalmente uso la solución 2 a continuación para no garantizar el resultado) con algún paso de Reducción de dimensionalidad.
1) Supongamos que desea hacer que sus muestras de datos de clase menor doble utilizando 3-NN. Ignore las clases principales y conserve solo las muestras de clases menores.
2) Para cada punto de muestra en el espacio de características, elija 5 vecinos más cercanos. Luego elija 3 de ellos al azar (¿no es innecesariamente complicado? Si no quisiera explicar el algoritmo original, ¡diría que solo elija 3 vecinos!)
3) Para cada dimensión, calcule la distancia entre la muestra y los vecinos y multiplíquela en un número aleatorio entre 0-1 y agréguela al valor original de la muestra en esa dimensión. (¡Este párrafo complicado simplemente significa que para cada dimensión elija un valor aleatorio entre la muestra original y ese vecino!)
Pero generalmente hago otro sobremuestreo que está en el texto (de manera más intuitiva) y es como SMOTE.
Gracias por la respuesta, pero ¿se puede aplicar SMOTE a las muestras si están representadas usando una codificación de hot-one? ¿o deberían estar representados de otra manera?
adnanmuttaleb
Hola Kasra, ¿puedes compartir alguna implementación relacionada con los pasos que mencionaste?
Payal Bhatia
2
Si desea agregar más datos de rastreo de texto / oraciones, puede usar incrustaciones de palabras previamente capacitadas. Modelos pre-entrenados como proporcionan representación vectorial de palabras de todas y cada una de las palabras del diccionario. También proporciona palabras 'most_smiliar'.
Simplemente puede usar oraciones de muestra y generar nuevas muestras haciendo permutaciones de cada palabra con sus palabras TOP_N más similares.
por ejemplo, si su oración tiene 3 palabras, y si elige 3 más similares para cada palabra, puede aumentar la muestra 27 veces.
Si desea agregar más datos de rastreo de texto / oraciones, puede usar incrustaciones de palabras previamente capacitadas. Modelos pre-entrenados como proporcionan representación vectorial de palabras de todas y cada una de las palabras del diccionario. También proporciona palabras 'most_smiliar'.
Simplemente puede usar oraciones de muestra y generar nuevas muestras haciendo permutaciones de cada palabra con sus palabras TOP_N más similares.
por ejemplo, si su oración tiene 3 palabras, y si elige 3 más similares para cada palabra, puede aumentar la muestra 27 veces.
fuente