Angenommen, Sie analysieren einen riesigen Datensatz mit Milliarden von Beobachtungen pro Tag, wobei jede Beobachtung einige Tausend spärliche und möglicherweise redundante numerische und kategoriale Variablen enthält. Angenommen, es gibt ein Regressionsproblem, ein Problem der unausgeglichenen binären Klassifizierung und die Aufgabe, herauszufinden, welche Prädiktoren am wichtigsten sind. Mein Gedanke, wie ich das Problem angehen soll, ist:
Passen Sie ein Vorhersagemodell an immer größere (zufällige) Teilstichproben der Daten an, bis:
Die Anpassung und Kreuzvalidierung des Modells wird rechnerisch schwierig (z. B. unangemessen langsam auf meinem Laptop, R verfügt nicht über genügend Arbeitsspeicher usw.), ODER
Die Trainings- und Test-RMSE- oder Präzisions- / Rückrufwerte stabilisieren sich.
Wenn sich die Trainings- und Testfehler nicht stabilisiert haben (1.), verwenden Sie ein einfacheres Modell und / oder implementieren Sie Multicore- oder Multinode-Versionen des Modells und starten Sie von Anfang an neu.
Wenn sich die Trainings- und Testfehler stabilisiert haben (2.):
Wenn (dh ich kann immer noch Algorithmen auf ausführen, da es noch nicht zu groß ist), versuchen Sie, die Leistung zu verbessern, indem Sie den Funktionsbereich erweitern oder ein komplexeres Modell verwenden und von Anfang an neu starten.
Wenn 'groß' ist und das Ausführen weiterer Analysen kostspielig ist, analysieren Sie die variable Wichtigkeit und das Ende.
Ich plane Pakete zu benutzen und wie biglm
, speedglm
, multicore
und ff
in R zunächst und später verwendet mehr komplizierte Algorithmen und / oder Mehrfachknoten (auf EC2) nach Bedarf.
Klingt dies nach einem vernünftigen Ansatz, und wenn ja, haben Sie spezielle Ratschläge oder Vorschläge? Wenn nicht, was würden Sie stattdessen für einen Datensatz dieser Größe versuchen?