Múltiples etiquetas en algoritmo de aprendizaje supervisado

10

Tengo un corpus de texto con los temas correspondientes. Por ejemplo, "A rapper Tupac was shot in LA"y fue etiquetado como ["celebrity", "murder"]. Entonces, básicamente, cada vector de entidades puede tener muchas etiquetas (no la misma cantidad. El primer vector de entidades puede tener 3 etiquetas, la segunda 1, la tercera 5).

Si tuviera una sola etiqueta correspondiente a cada texto, probaría un clasificador Naive Bayes , pero no sé realmente cómo proceder si puedo tener muchas etiquetas.

¿Hay alguna forma de transformar Naive Bayes en un problema de clasificación de múltiples etiquetas (si hay un mejor enfoque, por favor hágamelo saber)?

PD: pocas cosas sobre los datos que tengo.

  • aproximadamente 10.000 elementos en el conjunto de datos
  • el texto tiene aproximadamente 2-3 oraciones
  • máximo 7 etiquetas por texto
Salvador Dalí
fuente
@fordprefect Multinomial Naive Bayes utiliza una distribución multinomial para las probabilidades de alguna característica dada una clase: . El OP quiere un clasificador para administrar múltiples salidas como lo describió TheGrimmScientist. p(fi|c)
Robert Smith

Respuestas:

6

Para empezar, Naive Bayes probablemente no sea apropiado aquí. Asume independencia entre las entradas (de ahí el "ingenuo") y las palabras en una oración son muy dependientes.

Pero, suponiendo que realmente quiera ejecutar con NB como algoritmo para comenzar su experimentación, hay dos opciones que consideraría:

Sin gracia: muchos clasificadores NB

Este sería un enfoque alternativo. Haz un corupus de todas las palabras observadas como tu vector de entradas. Haga un corpus de todas las etiquetas que se observan como su vector de salidas. Un clasificador NB con múltiples salidas es el equivalente a tener múltiples clasificadores NB con una salida cada uno (así que haga lo que sea más fácil de implementar en cualquier marco de software que esté usando). Trate cada elemento como una muestra de entrenamiento donde una entrada dada (una palabra) es 1si esa palabra está presente y 0si esa palabra no lo está. Use el mismo esquema binario para la salida.

Este bruto fuerza la aplicación del clasificador NB a sus datos, y le permite encontrar el significado al seguir explotando el enorme conjunto de clasificadores que le quedarán.

Más elegante: procese sus datos

Este es el enfoque que recomendaría si desea ejecutar con un clasificador NB de múltiples clases.

Su objetivo aquí es descubrir cómo asignar cada conjunto de etiquetas a una sola clase. Estoy seguro de que hay algún tipo de esquema de agrupamiento o análisis de red (quizás ["celebridad"] vinculada a ["asesinato"] podría convertirse en un segmento ["libertinaje"]) que mapeará sensiblemente sus etiquetas en un solo grupo. Si trata las etiquetas como nodos y dos etiquetas dadas juntas como enlaces, entonces querrá examinar los algoritmos de detección de la comunidad (que es donde comenzaría). Pero, si solo quiere que algo funcione, entonces sería suficiente algún tipo de pirateo de las etiquetas que convierte una lista de etiquetas solo en la etiqueta que se ve más comúnmente en su conjunto de datos.

Este método carga el trabajo de limpieza de sus datos y facilitaría la comprensión de la salida del clasificador NB.

TheGrimmCientífico
fuente
gracias por su aporte, si tiene una idea de lo que sería mejor que NB, hágamelo saber.
Salvador Dali
1
La sección de "soluciones existentes" de esta plataforma de diapositivas contiene todo lo que sabría para responder, además de más (suponiendo que no necesite específicamente un clasificador y solo desee una forma de usar etiquetas). Espero que te sea útil.
TheGrimmScientist
@TheGrimmScientist ¿No sería razonable utilizar el primer enfoque? Si tiene un vector de características f1, f2, f3 y digamos 3 etiquetas para este vector, podemos dividirlo en 3 vectores (todos con las mismas características f1, f2, f3) con diferentes etiquetas como salidas. Entonces es posible usar Naive Bayes como de costumbre. No estoy seguro de si eso es lo que tenía en mente.
Robert Smith