5 votos

Modelos sofisticados para la clasificación de piezas breves de textos

Tengo unos 30000 libro de los nombres asignados a 6 categorías, y quiero construir escalable y precisa de los clasificadores. Hasta ahora sólo he sido capaz de utilizar el Ingenuo Baye y LibLINEAR clasificadores y ambos me dan una (casi) idénticos de precisión y recuperación de los valores de 0,8 y 0,7 después de 10 veces el CV.

Me pregunto si yo sería capaz de hacerlo mejor si yo fuera a utilizar modelos más complejos . El problema es que el tiempo de la complejidad de los modelos sofisticados parece aumentar super-linealmente con el número de instancias de formación. SVM (SMO implementación de WEKA), por ejemplo, ha estado funcionando durante los últimos 3 horas ya en este tipo de datos, mientras que el Ingenuo Baye y LibLINEAR terminado en aproximadamente 15 minutos y 40 min, respectivamente.

Estoy tratando de construir un marco general para textos cortos de clasificación (twitter, mensajes de texto, etc.), y así será la ejecución de muchos experimentos sobre distintos conjuntos de datos. Voy a requerir de técnicas de escala y funcionan bien (no todos :-)). Alguna sugerencia?

Otra pregunta es con respecto a la reducción de dimensiones. Cuando me pre-proceso de mi texto, me aplique la lematización, la eliminación de palabras vacías y convertir el texto a la tf-idf representación vectorial. Dimensión de las técnicas de reducción (Info ganancia, en particular) de nuevo parece ser excesivamente larga. De cualquier manera escalable para hacer la selección de características? Sería la poda tf-idf de las puntuaciones de un enfoque aceptable?

Edit 1: Por la "Info Ganancia", me refería a la obtención de Información . Y actualmente no estoy haciendo ninguna de selección de características.

6voto

Jörgen Lundberg Puntos 753

Lo primero que tienes que hacer es averiguar la fuente de su error de generalización. ¿Es "diagonal" o "variación"? (o quizás algo más?) Si se trata de la varianza, su sistema del entrenamiento puede ser pequeño para lo que está tratando de lograr, y puede que necesite más datos de entrenamiento. Si es sesgo, luego cambiar a un modelo diferente o cambiar los parámetros de su SVM pueden ayudarle a obtener un mejor resultado.

3voto

Boris Tsirelson Puntos 191

¿Es la implementación de SVM paralelo? Una idea simple sería dividir su 10 veces CV en 10 máquinas (o núcleos). Esto debería reducir tiempo de ejecución del algoritmo a casi 1/10 de su duración actual.

¿Qué significa "aumento de la información?" ¿Ha intentado aplicar LibLINEAR en un conjunto de datos sin características quitado?

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