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:
-
pickle
ycPickle
-
wb
comow
owb
- 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