Ich habe eine CSV-Datei von [66k, 56k] Größe (Zeilen, Spalten). Es ist eine spärliche Matrix. Ich weiß, dass numpy mit dieser Größe einer Matrix umgehen kann. Ich würde gerne aufgrund der Erfahrung von jedem wissen, wie viele Features scikit-learn Algorithmen bequem handhaben können?Wie viele Funktionen können scikit-lernen?
Antwort
Hängt vom Schätzer ab. Bei dieser Größe funktionieren lineare Modelle immer noch gut, während SVMs wahrscheinlich ewig dauern werden, um zu trainieren (und zufällige Gesamtstrukturen zu vergessen, da sie nicht mit dünn besetzten Matrizen umgehen).
Ich habe persönlich LinearSVC
, LogisticRegression
und SGDClassifier
mit spärlichen Matrizen der Größe ca. 300k × 3,3 Millionen ohne Probleme verwendet. In @ amuellers scikit-learn cheat sheet finden Sie den richtigen Schätzer für die jeweilige Aufgabe.
Volle Offenbarung: Ich bin ein Core-Entwickler scikit-learn.
Einige lineare Modelle (Regression, SGD, Bayes) sind wahrscheinlich die beste Wahl, wenn Sie Ihr Modell häufig trainieren müssen.
Obwohl, bevor Sie Modelle laufen gehen Sie folgende
1) Feature Reduktion versuchen könnte. Gibt es Merkmale in Ihren Daten, die leicht entfernt werden könnten? Zum Beispiel, wenn Ihre Daten Text oder Bewertungen basieren, gibt es viele bekannte Optionen zur Verfügung.
2) Lernkurvenanalyse. Vielleicht brauchen Sie nur eine kleine Teilmenge Ihrer Daten, um ein Modell zu trainieren, und danach passen Sie nur noch zu Ihren Daten oder gewinnen winzige Genauigkeitssteigerungen.
Mit beiden Methoden können Sie die erforderlichen Trainingsdaten erheblich reduzieren.
Die Aufgabe, an der ich arbeite, ist die Regression. Aber es wäre nützlich zu wissen, wie sklearn im Allgemeinen hochdimensionale Daten behandelt. – viper