Estoy buscando hacer una clasificación en mis datos de texto. Tengo 300 classes
200 documentos de capacitación por clase (más o menos 60000 documents in total
) y es probable que esto genere datos dimensionales muy altos (es posible que estemos buscando más de 1 millón de dimensiones ).
Me gustaría realizar los siguientes pasos en la tubería (solo para darle una idea de cuáles son mis requisitos):
- Convertir cada documento en un vector de características (
tf-idf
ovector space model
) Feature selection
(Mutual Information
basado preferiblemente, o cualquier otro estándar)- El entrenamiento del clasificador (
SVM
,Naive Bayes
,Logistic Regression
oRandom Forest
) - Predicción de datos no vistos basados en el modelo de clasificador entrenado.
Entonces, la pregunta es ¿qué herramientas / marco utilizo para manejar datos tan dimensionales? Soy consciente de los sospechosos habituales (R, WEKA ...) pero hasta donde yo sé (puedo estar equivocado) posiblemente ninguno de ellos pueda manejar datos tan grandes. ¿Hay alguna otra herramienta lista para usar que pueda mirar?
Si tengo que paralelizarlo, ¿debería estar mirando Apache Mahout ? Parece que aún no puede proporcionar la funcionalidad que necesito.
Gracias a todos de antemano.
Actualización: busqué en este sitio web , en la lista de correo de R y en Internet en general. Me parece que los siguientes problemas podrían surgir en mi situación:
(1) El preprocesamiento de mis datos utilizando R ( paquete tm en particular) podría no ser práctico , ya tm
que será prohibitivamente lento.
(2) Dado que necesitaré usar un conjunto de paquetes 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 datos de un formato a otro . Por ejemplo, si realizo mi preprocesamiento utilizando tm
(o una herramienta externa como WEKA), tendré que encontrar una manera de convertir estos datos en un formulario que las bibliotecas de HPC en R puedan leer. Y de nuevo, no me queda claro si los paquetes de clasificadores tomarían directamente los datos proporcionados por las bibliotecas de HPC.
¿Estoy en el camino correcto? Y lo más importante, ¿tengo sentido?
foreach
código paralelo de escritura de la biblioteca en R. Esto funciona especialmente bien en combinación con bosques aleatorios, que son inherentemente fáciles de paralelizar.