Me encuentro ante un problema de clasificación de textos. Donde necesito asignar etiquetas a un documento. La cantidad de etiquetas que necesito asignar varía de 1 a 5. Estoy luchando un poco sobre cómo debo abordar este problema. Lo que intenté fue codificar cada combinación de etiquetas con LabelEncoder() de scikit-learn, lo enmarqué como un problema de regresión, porque esta codificación de etiquetas me dio demasiadas clases. Sin embargo, como no me cabe todo el conjunto de trenes en la memoria, sólo puedo entrenar con una pequeña parte del conjunto de trenes. La prueba es mucho más grande que la parte del conjunto de entrenamiento con la que entreno mi regresor. Como resultado, mi estimador tiene un rendimiento muy pobre en el conjunto de pruebas. En la validación cruzada, el regresor dio resultados razonables, lo que me indica que el problema de la regresión no es el principal. No estoy seguro de cómo debo proceder. ¿Debo enmarcar esto como un problema de clasificación? ¿Debo utilizar una codificación diferente de mis etiquetas? ¿O debería simplemente encontrar una manera de entrenar mi clasificador en más muestras?
Respuesta
¿Demasiados anuncios?Está claro que es mejor enmarcarlo como un gran problema de aprendizaje supervisado con una gran cantidad de supuestos prácticos. ¿Es posible generar un diccionario de etiquetas relevantes, como con una base de datos de manuscritos médicos y sus correspondientes términos MeSH? Calculando la frecuencia de dichos términos dentro de cada documento, uno puede ordenar esos resultados en una gran matriz. Una vez construida la matriz de frecuencias, se puede calcular su descomposición espectral e identificar los términos más destacados de cada documento por aquellos que tienen el mayor peso ortonormal en el primer componente principal. Si la matriz tiene un rango deficiente, los métodos de matriz dispersa serían una mejor opción, como es el caso de SparCl.