2 votos

Los clasificadores de texto multiclase siempre eligen una clase aunque la muestra no pertenezca a ninguna

He probado muchos modelos diferentes de clasificación de texto de scikit learn. Entrené el modelo usando algunos posts de personal finance stack exchange. Los mensajes se clasifican en las cuatro clases siguientes "hipoteca", "inversión", "tarjeta de crédito" e "impuestos". En general, el modelo funciona muy bien cuando se prueba utilizando el conjunto de datos de prueba (he tallado el 20% de los datos para fines de prueba). Pero si pruebo algo que no tiene nada que ver con las finanzas personales ("¿dónde está el baño?", por ejemplo), el modelo lo clasifica como "inversión". El problema es que el modelo siempre elige una de las cuatro clases, por irrelevante que sea el texto. Las probabilidades que el modelo asigna a las cuatro clases siempre suman 1,0. Siempre hay una que gana. ¿Hay alguna forma de ajustar el clasificador/modelo para que en el caso de que la entrada sea irrelevante para cualquiera de las clases, las cuatro probabilidades sean bajas (no sumen 1,0)?

Gracias, Ryan

3voto

eldering Puntos 3814

Tu modelo sólo aprende sobre el mundo a partir de los datos de entrenamiento, así que, en cierto sentido, las cuatro clases de tus datos de entrenamiento representan la visión que tu modelo tiene de todo el universo. Cree que esas cuatro clases son todo lo que existe en el mundo.

Para solucionarlo, tienes que enseñar a tu modelo que en el universo hay algo más que "hipoteca", "inversión", "tarjeta de crédito" e "impuestos" (lo cual, al menos a mí, me parece un universo miserable en el que vivir). Incluye algunos ejemplos de otros textos en tus datos de entrenamiento, etiquétalos como "otros" y vuelve a entrenar tu modelo.

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