Fazer o trabalho uma vez e poder prová-lo
A pesquisa se repete: a mesma grade de ajustes nas mesmas dobras, a mesma tabela de variáveis reconstruída a cada experimento. O joblib elimina esse desperdício. Parallel(n_jobs=k)(delayed(f)(x) for x in items) executa as chamadas independentes f(x) em k trabalhadores e devolve os resultados na ordem dos itens; n_jobs=-1 usa todos os núcleos e n_jobs=1 as executa uma após a outra, que é o que um navegador faz. O custo de uma tarefa deve superar o de enviar seus dados a um trabalhador, então agrupe tarefas minúsculas. Uma busca em grade se encaixa perfeitamente: 5 alphas vezes 5 dobras móveis são 25 ajustes independentes, e a resposta não depende de quantos trabalhadores os executaram.
Memory(location).cache(f) envolve f em um cache em disco. A primeira chamada com certos argumentos executa f e guarda o resultado sob um hash dos argumentos; a chamada seguinte com os mesmos argumentos lê o arquivo. O cache sobrevive ao fim do programa e percebe quando f ou um argumento muda. Faça hash de arrays NumPy em vez de DataFrames: o hash de um DataFrame pode depender de seu layout interno na memória, então duas tabelas de conteúdo igual podem ter hashes diferentes e o cache falha. joblib.hash(array) é uma impressão digital do conteúdo: igual para uma cópia, diferente após qualquer mudança, o que prova que dois experimentos usaram os mesmos dados. Por fim joblib.dump(model, path, compress=3) grava um modelo ajustado em arquivo comprimido e joblib.load(path) devolve um objeto que prevê exatamente igual. No laboratório, 25 tarefas dão correlações de posto móveis a menos de 0,06 de zero em cada alpha, slow_features roda uma vez para duas chamadas em cache e o Ridge recarregado prevê de forma idêntica.
- Tarefas independentes passam por
Paralleledelayed; a resposta não deve depender den_jobs. Memory.cacheguarda resultados em disco com chave igual ao hash dos argumentos; passe arrays, não tabelas.joblib.hashprova que duas execuções usaram os mesmos dados;dumpeloadsalvam um modelo que prevê de forma idêntica.
Lab: o que é avaliado
- Uma tarefa de dobra15 pts
- A grade de tarefas25 pts
- O cache em disco15 pts
- A impressão digital10 pts
- Salvar um modelo15 pts
- O estudo20 pts