Recentemente, deparei com um problema semelhante: como gerenciar a extração de uma variedade de recursos de um grande conjunto de dados, sem saber de antemão quais seriam todos eles. (Mesmo o cálculo de valores médios repetidamente seria computacionalmente caro.) Além disso, como gerenciaria previsões com base em diferentes conjuntos de recursos? Ou seja, se eu adicionasse um novo recurso, como saberia quais modelos treinar em novos recursos? Poderia rapidamente cair em uma bagunça enorme.
Minha solução atual é rastrear tudo em um banco de dados NoSQL local (MongoDB). Por exemplo, eu posso ter uma coleção features
, cada entrada com um nome, uma descrição de como o recurso foi calculado, o arquivo python que executou a extração etc.
Da mesma forma, uma coleção models
inclui modelos executados nos dados. Cada entrada pode ter um nome, uma lista de recursos que foram usados para treinar o modelo, seus possíveis parâmetros, valores previstos em um conjunto de testes retido, métricas de desempenho do modelo etc.
Do meu ponto de vista, isso tem vários benefícios:
- Ao salvar previsões, posso usá-las posteriormente em previsões de conjuntos.
- Como eu mantenho o controle de quais recursos foram usados, sei quais precisam de reciclagem à medida que extrao mais recursos.
- Ao salvar as descrições do modelo, garanto que sempre sei o que tentei. Nunca me pergunto: "Tentei o LASSO com parâmetros de regularização definidos pelo currículo de pesquisa em grade?" Sempre posso procurar e ver como foi bem-sucedido.
Da sua pergunta, parece que você pode adaptar essa abordagem ao fluxo de trabalho do seu problema. Instale o Mongo ou outro banco de dados de escolha e salve cada execução experimental, suas entradas, resultados e qualquer outra coisa que você queira acompanhar ao longo do projeto. Isso deve ser muito mais fácil de consultar do que uma planilha, pelo menos.