Quiero clasificar mis datos de texto. Dispongo de 300 classes
200 documentos de formación por clase (es decir 60000 documents in total
) y es probable que esto dé lugar a muy datos de alta dimensionalidad (podemos estar buscando en más de 1millón de dimensiones ).
Me gustaría realizar los siguientes pasos en la tubería (sólo para que se hagan una idea de cuáles son mis requisitos):
- Conversión de cada documento en vector de características (
tf-idf
ovector space model
) Feature selection
(Mutual Information
o cualquier otro estándar)- Entrenamiento del clasificador (
SVM
,Naive Bayes
,Logistic Regression
oRandom Forest
) - Predicción de datos no vistos basada en el modelo clasificador entrenado.
Así que la pregunta es ¿qué herramientas/marco utilizo para manejar datos de tan alta dimensión? Conozco los sospechosos habituales (R, WEKA...) pero hasta donde llegan mis conocimientos (puedo estar equivocado) posiblemente ninguno de ellos pueda manejar datos tan grandes. ¿Hay alguna otra herramienta disponible que pueda utilizar?
Si tengo que paralelizarlo, ¿debería considerar Apache Mahout ? Parece que todavía no ofrece la funcionalidad que necesito.
Gracias a todos de antemano.
Actualización: He echado un vistazo este sitio web R y de Internet en general. Me parece que los siguientes problemas podrían surgir en mi situación:
(1) Preprocesamiento de mis datos con R ( tm en particular) podría ser poco práctico ya que tm
será prohibitivamente lento.
(2) Dado que tendré que utilizar un conjunto de paquetes de R (preprocesamiento, matrices dispersas, clasificadores, etc.), la interoperabilidad entre los paquetes podría convertirse en un problema, y podría incurrir en una sobrecarga adicional al convertir los datos de un formato a otro. Por ejemplo, si realizo el preprocesamiento con tm
(o una herramienta externa como WEKA) Tendré que encontrar una manera de convertir estos datos en una forma que las bibliotecas HPC en R puedan leer. Y, de nuevo, no tengo claro si los paquetes clasificadores podrían tomar directamente los datos proporcionados por las bibliotecas HPC.
¿Voy por buen camino? Y lo que es más importante, ¿me explico?