Supposons que vous analysez un énorme ensemble de données à hauteur de milliards d'observations par jour, où chaque observation comporte quelques milliers de variables numériques et catégorielles éparses et peut-être redondantes. Disons qu'il y a un problème de régression, un problème de classification binaire déséquilibré et une tâche de «découvrir quels prédicteurs sont les plus importants». Ma réflexion sur la façon d'aborder le problème est:
Ajuster un modèle prédictif sur des sous-échantillons de plus en plus grands (aléatoires) des données jusqu'à ce que:
L'ajustement et la validation croisée du modèle deviennent difficiles sur le plan du calcul (par exemple, trop déraisonnablement lent sur mon ordinateur portable, R manque de mémoire, etc.), OU
Les valeurs RMSE d'entraînement et de test ou de précision / rappel se stabilisent.
Si les erreurs d'apprentissage et de test ne se sont pas stabilisées (1.), utilisez un modèle plus simple et / ou implémentez des versions multicœurs ou multinœuds du modèle et redémarrez depuis le début.
Si les erreurs de formation et de test se sont stabilisées (2.):
Si (c'est-à-dire que je peux toujours exécuter des algorithmes sur X s u b s e t car il n'est pas encore trop grand), essayez d'améliorer les performances en étendant l'espace des fonctionnalités ou en utilisant un modèle plus complexe et redémarrage depuis le début.
Si est «grand» et que la poursuite des analyses est coûteuse, analysez l'importance variable et terminez.
Je prévois d'utiliser des paquets comme biglm
, speedglm
, multicore
et ff
dans un premier temps R, et utiliser plus tard des algorithmes plus complexes et / ou multi - noeuds (sur EC2) si nécessaire.
Cela vous semble-t-il une approche raisonnable et, dans l'affirmative, avez-vous des conseils ou des suggestions spécifiques? Sinon, qu'essaieriez-vous à la place pour un ensemble de données de cette taille?