Hacer el trabajo una vez y poder demostrarlo
La investigación se repite: la misma rejilla de ajustes sobre los mismos pliegues, la misma tabla de variables reconstruida en cada experimento. joblib elimina ese desperdicio. Parallel(n_jobs=k)(delayed(f)(x) for x in items) ejecuta las llamadas independientes f(x) en k trabajadores y devuelve los resultados en el orden de los elementos; n_jobs=-1 usa todos los núcleos y n_jobs=1 las ejecuta una tras otra, que es lo que hace un navegador. El coste de una tarea debe superar el de enviar sus datos a un trabajador, así que agrupe las tareas diminutas. Una búsqueda en rejilla encaja perfectamente: 5 alphas por 5 pliegues móviles son 25 ajustes independientes, y la respuesta no depende de cuántos trabajadores los ejecutaron.
Memory(location).cache(f) envuelve f en una caché en disco. La primera llamada con unos argumentos ejecuta f y guarda el resultado bajo un hash de los argumentos; la siguiente llamada con los mismos argumentos lee el archivo. La caché sobrevive al final del programa y nota cuándo cambia f o un argumento. Haga hash de arreglos NumPy en vez de DataFrames: el hash de un DataFrame puede depender de su disposición interna en memoria, así que dos tablas de igual contenido pueden tener hashes distintos y la caché falla. joblib.hash(array) es una huella del contenido: igual para una copia, distinta tras cualquier cambio, lo que prueba que dos experimentos usaron los mismos datos. Por último joblib.dump(model, path, compress=3) escribe un modelo ajustado en un archivo comprimido y joblib.load(path) devuelve un objeto que predice exactamente igual. En el laboratorio, 25 tareas dan correlaciones de rango móviles a menos de 0,06 de cero en cada alpha, slow_features se ejecuta una vez para dos llamadas en caché y el Ridge recargado predice idéntico.
- Las tareas independientes pasan por
Parallelydelayed; la respuesta no debe depender den_jobs. Memory.cacheguarda resultados en disco con una clave que es el hash de los argumentos; pase arreglos, no tablas.joblib.hashprueba que dos ejecuciones usaron los mismos datos;dumpyloadguardan un modelo que predice idéntico.
Lab: qué se califica
- Una tarea de pliegue15 pts
- La rejilla de tareas25 pts
- La caché en disco15 pts
- La huella10 pts
- Guardar un modelo15 pts
- El estudio20 pts