J'ai récemment rencontré un problème similaire: comment gérer l'extraction d'une variété de fonctionnalités d'un grand ensemble de données, sans savoir à l'avance ce que toutes seraient. (Même le calcul répétitif de valeurs moyennes coûterait cher en calcul.) De plus, comment gérer les prédictions en fonction de différents ensembles de fonctionnalités? Autrement dit, si j'ajoutais une nouvelle fonctionnalité, comment saurais-je quels modèles s'entraîner sur de nouvelles fonctionnalités? Cela pourrait rapidement faire boule de neige dans un énorme gâchis.
Ma solution actuelle consiste à tout suivre dans une base de données NoSQL locale (MongoDB). Par exemple, je pourrais avoir une collection features
, dont chaque entrée a un nom, une description de la façon dont la fonctionnalité a été calculée, le fichier python qui a exécuté l'extraction, etc.
De même, une collection models
comprend des modèles exécutés sur les données. Chaque entrée peut avoir un nom, une liste de fonctionnalités qui ont été utilisées pour former le modèle, ses paramètres éventuels, les valeurs prédites sur un ensemble de tests retenu, des métriques pour la performance du modèle, etc.
De mon point de vue, cela présente un certain nombre d'avantages:
- En sauvegardant les prédictions, je peux les utiliser plus tard dans les prédictions d'ensemble.
- Parce que je garde une trace des fonctionnalités qui ont été utilisées, je sais lesquelles doivent être recyclées lorsque j'extrais plus de fonctionnalités.
- En enregistrant les descriptions des modèles, je m'assure de toujours savoir ce que j'ai essayé. Je n'ai jamais à me demander: "Ai-je essayé LASSO avec des paramètres de régularisation définis par un CV de recherche de grille?" Je peux toujours le rechercher et voir à quel point il a réussi.
D'après votre question, il semble que vous puissiez adapter cette approche au flux de travail de votre problème. Installez Mongo ou une autre base de données de votre choix, puis enregistrez chaque exécution expérimentale, ses entrées, ses résultats et tout ce que vous pourriez souhaiter suivre au cours du projet. Cela devrait être beaucoup plus facile à interroger qu'une feuille de calcul, au moins.