python - onehotencoder - Guardar el clasificador scikit-learn provoca un error de memoria
onehotencoder pandas (1)
Mi máquina tiene 16G de RAM y el programa de entrenamiento usa memoria hasta 2.6G. Pero cuando quiero guardar el clasificador (entrenado usando sklearn.svm.SVC desde un conjunto de datos grande) como archivo de sklearn.svm.SVC , consume demasiada memoria que mi máquina no puede proporcionar. Deseoso de conocer cualquier enfoque alternativo para guardar un clasificador.
He intentado:
-
pickleycPickle -
wbcomowowb - Establecer
fast = True
Ninguno de ellos funciona, siempre levanta un MemoryError. Ocasionalmente, el archivo se guardó, pero al cargarlo se produce ValueError: insecure string pickle .
¡Gracias de antemano!
Actualizar
Gracias a todos. No probé joblib, funciona después de establecer el protocol=2 .
Sugeriría usar clasificadores fuera del núcleo de sci-kit learn. Estos son algoritmos de aprendizaje por lotes, almacenan el resultado del modelo como matriz dispersa dispersa y son muy eficientes en el tiempo.
Para empezar, el siguiente enlace realmente me ayudó.
http://scikit-learn.org/stable/auto_examples/applications/plot_out_of_core_classification.html