Manutenção contábil das execuções e resultados da experiência

11

Eu sou um pesquisador prático e gosto de testar soluções viáveis, por isso tenho muitas experiências. Por exemplo, se estiver calculando uma pontuação de similaridade entre documentos, convém tentar várias medidas. De fato, para cada medida, talvez seja necessário fazer várias execuções para testar o efeito de alguns parâmetros.

Até o momento, acompanhei as entradas de execuções e seus resultados gravando os resultados em arquivos com o máximo de informações sobre as entradas. O problema é que recuperar um resultado específico às vezes se torna um desafio, mesmo que eu tente adicionar as informações de entrada ao nome do arquivo. Tentei usar uma planilha com links para resultados, mas isso não está fazendo muita diferença.

Quais ferramentas / processos você usa para a contabilidade de seus experimentos?

sabedoria da máquina
fonte
11
Eu queria adicionar as práticas recomendadas da tag, mas não posso, pois não tenho 150 pontos de reputação. Para ser sincero, não entendo como um recém-chegado pode efetivamente contribuir com o site com todas essas regras. Vejo muitas perguntas para as quais conheço as respostas, mas não posso responder ou até votar a resposta se ela já estiver lá.
machine-sabedoria
Eu acho que essa é mais uma questão de programação genérica, então o StackOverflow pode ser melhor. Você pode incluir um trecho do que está tentando fazer, por que é lento e solicitar otimizações sugeridas.
Sean Owen
Na verdade, acho que o opendata.stackexchange.com seria melhor.
Emre
11
Recentemente, dei uma olhada rápida no mercado em busca de produtos que ajudassem nisso, e quero compartilhar minhas descobertas. Existem dois produtos SAAS que podem ajudar uma equipe de Ciência de Dados a compartilhar análises feitas em Python e R. Ambos possuem um notebook IPython como o IDE, e constroem em torno dele muitos recursos para executar e compartilhar tarefas. Acho os dois quase idênticos: [Domino Data Lab] [1] e [Sense.io] [2] [1]: dominodatalab.com [2]: sense.io
machine-sabedoria
Há também um ambiente de Machine Learning para o Hadoop, que monitora as execuções de tarefas; [h2o.ai] [3]. Não se destina a ser uma ferramenta para otimizar o trabalho da equipe de dados, mas com algumas convenções de nomenclatura cuidadosas, isso pode ajudar muito. Este se encaixa melhor com [3]: h2o.ai
machine-sabedoria

Respostas:

5

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 modelsinclui 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.

Sean Easter
fonte
gostaria de votar, mas não sou permitido.
machine-sabedoria