Traditionell verwenden wir ein gemischtes Modell, um longitudinale Daten zu modellieren, dh Daten wie:
id obs age treatment_lvl yield
1 0 11 M 0.2
1 1 11.5 M 0.5
1 2 12 L 0.6
2 0 17 H 1.2
2 1 18 M 0.9
Wir können für verschiedene Personen zufällige Abschnitte oder Steigungen annehmen. Die Frage, die ich zu lösen versuche, wird jedoch riesige Datenmengen umfassen (Millionen von Personen, 1 Monat tägliche Beobachtung, dh jede Person wird 30 Beobachtungen haben). Derzeit ist mir nicht bekannt, ob Pakete diese Datenmenge liefern können.
Ich habe Zugriff auf Spark / Mahout, aber sie bieten keine gemischten Modelle an. Meine Frage ist jedoch, ob ich meine Daten so ändern kann, dass ich RandomForest oder SVM zum Modellieren dieses Datensatzes verwenden kann.
Gibt es eine Feature-Engineering-Technik, auf die ich zurückgreifen kann, um RF / SVM bei der Berücksichtigung der Autokorrelation zu unterstützen?
Danke vielmals!
Einige mögliche Methoden, aber ich konnte es mir nicht leisten, sie in spark zu schreiben
Wie kann ich zufällige Effekte in einen randomForest einbinden?
Antworten:
Wenn Sie nur ein paar Variablen haben, wie im Beispiel, dann sollten Sie mit irgendeiner Variante von kein Problem haben
lme4
.Wenn Sie viele Variablen haben und Nichtlinearitäten und Interaktionen zwischen Ihren Variablen modellieren möchten, sind Techniken des maschinellen Lernens besonders interessant. Es wurden nur wenige ML-Ansätze entwickelt, die dies mit Längsschnittdaten tun können. RNNs sind eine Option, obwohl diese im Allgemeinen eher für Zeitreihenprobleme als für Paneldaten optimiert sind.
Grundsätzlich ist ein Feed-Forward-neuronales Netzwerk ein (verallgemeinertes) lineares Modell mit Regressoren, die nichtlineare Funktionen der Eingabedaten sind. Wenn die abgeleiteten Regressoren - die oberste Ebene des Modells vor der Ausgabe - als nichtparametrischer Teil betrachtet werden, hindert nichts Sie daran, eine parametrische Struktur hinzuzufügen - möglicherweise in Form von Zufallseffekten.
Dies wurde jedoch nicht für Klassifizierungsprobleme implementiert. Ich gehe davon aus, dass Sie dies tun, weil Sie an SVM als Kandidat interessiert sind.
quelle
Wiederholung von maschinellen Lerntechniken für longitudinale Daten : Die sklearn-Dokumentation für Cross-Validation enthält Cross-Validation-Iteratoren für gruppierte Daten! Siehe GroupKFold , LeaveOneGroupOut und LeavePGroupsOut .
Wenn Sie an reiner Vorhersage interessiert sind, ist die beste Option wahrscheinlich die Verwendung von rekurrenten neuronalen Netzen . Eine weitere Option ist Hidden Markov Models .
quelle
Benötigen Sie wirklich Random Forests, NNs usw. für Ihre Längsschnittdaten?
lme4
ist in der Lage, Millionen von Menschen zu behandeln:https://cran.r-project.org/web/packages/lme4/vignettes/Theory.pdf
Es kann leicht mit linearen gemischten Modellen umgehen, und wie Sie dem Link entnehmen können, unterstützt es auch nichtlineare gemischte Modelle (obwohl ich nicht erwarten würde, dass es auch für nichtlineare Modelle blitzschnell ist).
quelle