4 votos

Clasificación multiclase desequilibrada con muchas clases

Estoy trabajando en un proyecto de clasificación de textos en el que tenemos cientos de clases (desequilibradas). Algunas características de los datos:

  • Tenemos ejemplos de documentos "malos". Básicamente, documentos que no llenan ninguna otra clase. Podemos eliminarlos.
  • Los documentos son pequeños (< 100 caracteres).
  • Los documentos son muy similares dentro de la misma clase, pero muy diferentes entre las distintas clases. La única excepción es la clase "mala", que contiene documentos aleatorios con un vocabulario muy diverso.
  • La clase más frecuente tiene alrededor de 30k observaciones (es la clase "mala") y otras podrían tener menos de un centenar. La mayoría de ellas en los miles
  • Las frecuencias de las clases son para todos los datos (330k observaciones), pero no están etiquetadas. Hemos estimado estas frecuencias con la agrupación.

El modo de proceder fue tomar una muestra de observaciones de cada grupo y etiquetarlas. Las muestras son proporcionales al tamaño del cluster. Así, obtuvimos 133 clases, donde la clase más frecuente tiene 3k observaciones y la clase minoritaria tiene 10 observaciones.

Esto supuso un rendimiento muy reducido para las clases minoritarias, incluso teniendo en cuenta que tienen un vocabulario propio muy específico (f1-micro 0,79, f1-macro 0,23).

He visto en otros hilos algunos consejos que no parecen aplicables a mi caso. A saber:

  • Sobremuestreo, submuestreo, smote : No estoy utilizando OvA ni OvO, sino una regresión logística multinomial. La razón más importante es que tengo demasiadas clases para esos métodos. Pero incluso si pudiera utilizar estos enfoques, eso significaría cambiar la distribución de las etiquetas en el conjunto de entrenamiento. Veo que en el caso de la clasificación binaria podemos ajustar el umbral de predicción, pero no veo cómo funcionaría eso para las clases múltiples.
  • Cambio de la métrica de rendimiento : Ya lo estoy haciendo, pero no cambia el hecho de que las clases minoritarias tienen un mal rendimiento. Esto es menos malo cuando eliminamos los documentos "malos". Pero cuando están ahí, el rendimiento de estas clases pequeñas empeora, ya que el gran grupo "malo" comparte un poco de vocabulario por casualidad.
  • Ponderación : El mismo problema que antes.
  • Refuerzo, árboles de decisión no es bueno para este tipo de datos. Estoy utilizando la representación tf-idf. No uso incrustaciones preentrenadas porque el vocabulario es muy específico.

7voto

AriehGlazer Puntos 101

No hay una respuesta real a tu pregunta, porque realmente depende de lo que intentes archivar, es decir, ¿tu objetivo es conseguir una precisión de clasificación muy alta o es más bien la exploración de datos?

Si sólo le interesa la clasificación, debería hacerse las siguientes preguntas:

  1. ¿Espero que las nuevas muestras tengan la misma clase de priores? En caso afirmativo, cualquier sobremuestreo o submuestreo conducirá a un mal modelo por definición, ya que esencialmente se entrena el modelo en un diferente distribución .

  2. ¿Cuáles son las consecuencias de clasificar mal una muestra? En muchos casos, el coste de clasificar erróneamente una muestra no es el mismo para todas las clases, por ejemplo, asignar falsamente un modelo a la clase "documento malo" puede tener consecuencias menos graves que asignarlo a otras clases.

En general, un modelo siempre tratará de minimizar la pérdida y no le importa cómo se archiva. En un contexto equilibrado, esto se hace únicamente aprendiendo la correlación entre los predictores y la respuesta, sin embargo, en casos de desequilibrio de clases, el modelo también aprenderá la distribución previa, que es independiente de los predictores. ¡Esto no es un mal comportamiento del modelo en caso de que la distribución real tenga estos priores! (En este contexto quiero enlazar una muy buena respuesta de Stephan Kolassa sobre las cuestiones generales a la hora de evaluar los modelos en función de la precisión).

Si está menos interesado en la clasificación real y más en cuestiones como "¿cuáles son los principales predictores de la respuesta?", "¿interactúan los predictores?" o "¿cómo de grande es el componente determinista/la capacidad de aprendizaje de este problema?", puede tener sentido equilibrar las clases de forma que el modelo no aprenda los predictores sino las asociaciones entre los predictores y la respuesta, ya que éstas podrían estar enmascaradas por el desequilibrio de clases, especialmente si se trata de datos dispersos. Sin embargo, hay que tener en cuenta que el modelo resultante no es apto para clasificar los datos que siguen la distribución original.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X