Ich möchte meine Textdaten klassifizieren. Ich habe 300 classes
200 Schulungsunterlagen pro Klasse (so 60000 documents in total
) und dies wird wahrscheinlich zu sehr hohen Maßangaben führen (wir suchen möglicherweise nach mehr als 1 Million Dimensionen ).
Ich möchte die folgenden Schritte in der Pipeline ausführen (um Ihnen einen Eindruck von meinen Anforderungen zu vermitteln):
- Konvertieren jedes Dokuments in einen Merkmalsvektor (
tf-idf
odervector space model
) Feature selection
(Mutual Information
basiert vorzugsweise oder auf einem anderen Standard)- Die Ausbildung der Klassifikator (
SVM
,Naive Bayes
,Logistic Regression
oderRandom Forest
) - Vorhersage unsichtbarer Daten basierend auf dem trainierten Klassifikatormodell.
Die Frage ist also, welche Tools / Frameworks ich für den Umgang mit derart hochdimensionalen Daten verwende. Mir sind die üblichen Verdächtigen bekannt (R, WEKA ...), aber meines Wissens nach (ich kann mich irren) kann möglicherweise keiner von ihnen mit so großen Daten umgehen. Gibt es ein anderes Werkzeug von der Stange, das ich mir ansehen könnte?
Wenn ich es parallelisieren muss, sollte ich Apache Mahout anschauen ? Sieht so aus, als ob es möglicherweise noch nicht die Funktionalität bietet, die ich benötige.
Vielen Dank an alle im Voraus.
Update: Ich habe mich auf dieser Website , in der R-Mailingliste und im Internet allgemein umgesehen. Es scheint mir, dass die folgenden Probleme in meiner Situation auftauchen könnten:
(1) Die Vorverarbeitung meiner Daten unter Verwendung von R (insbesondere TM- Paket) kann unpraktisch sein , da tm
dies unerschwinglich langsam sein wird.
(2) Da ich ein Ensemble von R-Paketen (Vorverarbeitung, Sparse-Matrizen, Klassifikatoren usw.) verwenden muss, kann die Interoperabilität zwischen den Paketen zu einem Problem werden, und es kann ein zusätzlicher Aufwand bei der Konvertierung von Daten von einem Format in ein anderes entstehen . Wenn ich zum Beispiel meine Vorverarbeitung mit tm
(oder einem externen Tool wie WEKA) durchführe, muss ich eine Möglichkeit finden, diese Daten in eine Form zu konvertieren, die die HPC-Bibliotheken in R lesen können. Auch hier ist mir nicht klar, ob die Classifier-Pakete die von den HPC-Bibliotheken bereitgestellten Daten direkt aufnehmen würden.
Bin ich auf dem richtigen Weg? Und was noch wichtiger ist, mache ich Sinn?
foreach
Bibliothek verwenden, um parallelen Code in R zu schreiben. Dies funktioniert besonders gut in Verbindung mit zufälligen Gesamtstrukturen, die von Natur aus einfach zu parallelisieren sind.