Traditionnellement, nous utilisons un modèle mixte pour modéliser des données longitudinales, c'est-à-dire des données comme:
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
nous pouvons supposer une interception ou une pente aléatoire pour différentes personnes. Cependant, la question que j'essaie de résoudre impliquera d'énormes ensembles de données (des millions de personnes, 1 mois d'observation quotidienne, c'est-à-dire que chaque personne aura 30 observations), actuellement je ne sais pas si des packages peuvent faire ce niveau de données.
J'ai accès à spark / mahout, mais ils n'offrent pas de modèles mixtes, ma question est, est-il de toute façon que je peux modifier mes données afin que je puisse utiliser RandomForest ou SVM pour modéliser cet ensemble de données?
Y a-t-il une technique d'ingénierie de fonctionnalités que je peux utiliser pour aider RF / SVM à prendre en compte l'auto-corrélation?
Merci beaucoup!
Quelques méthodes potentielles mais je ne pouvais pas me permettre de les écrire
Comment puis-je inclure des effets aléatoires dans une forêt aléatoire
Réponses:
Si vous n'avez que quelques variables, comme dans l'exemple, vous ne devriez avoir aucun problème avec une variante de
lme4
.Là où les techniques d'apprentissage automatique brillent vraiment, c'est lorsque vous avez beaucoup de variables et que vous souhaitez modéliser les non-linéarités et les interactions entre vos variables. Peu d'approches ML ont été développées qui peuvent le faire avec des données longitudinales. Les RNN sont une option, bien qu'ils soient généralement optimisés pour les problèmes de séries chronologiques, plutôt que pour les données de panneau.
En principe, un réseau neuronal à action directe est un modèle linéaire (généralisé), avec des régresseurs qui sont des fonctions non linéaires des données d'entrée. Si les régresseurs dérivés - la couche supérieure du modèle avant la sortie - sont considérés comme la partie non paramétrique, rien ne vous empêche d'ajouter une structure paramétrique avec elle - peut-être sous la forme d'effets aléatoires.
Cependant, cela n'a pas été implémenté pour les problèmes de classification, ce que je suppose que vous faites parce que vous êtes intéressé par SVM en tant que candidat.
la source
Répétition de techniques d'apprentissage automatique pour les données longitudinales : la documentation de Sklearn de validation croisée a des itérateurs de validation croisée pour les données groupées! Voir GroupKFold , LeaveOneGroupOut et LeavePGroupsOut .
Si vous êtes intéressé par la prédiction pure, la meilleure option est probablement d'utiliser les réseaux de neurones récurrents . Une autre option est les modèles de Markov cachés .
la source
Avez-vous vraiment besoin de forêts aléatoires, de NN, etc. pour vos données longitudinales?
lme4
est capable de gérer des millions de personnes:https://cran.r-project.org/web/packages/lme4/vignettes/Theory.pdf
Il peut facilement gérer des modèles mixtes linéaires, et comme vous pouvez le voir sur le lien, il prend également en charge les modèles mixtes non linéaires (bien que je ne m'attendrais pas à ce qu'il soit rapide comme l'éclair pour les modèles non linéaires).
la source