• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Herramientas
    • Método D’Hondt – Atribución de escaños
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • Python
  • Pandas
  • NumPy
  • Matlab
  • Julia
  • Excel
  • IA Generativa

Guardar los modelos de Scikit-learn en disco e importarlo en otra sesión

noviembre 22, 2021 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 3 minutos

Una vez entrenado un modelo de aprendizaje automático con Scikit-learn puede surgir la necesidad de guardar este para usar en otra sesión. Posiblemente durante el proceso ha sido necesario cargar los datos, seleccionar las carteristas más relevantes, ajustar los hiperparámetros y comparar varios algoritmos de aprendizaje. Algo que no querremos repetir cada vez que necesitemos obtener una predicción de este modelo. Siendo la opción ideal poder guardar los modelos de Scikit-learn en archivos para su posterior recuperación, esto es, crear una versión persistente del modelo. Lo que se puede obtener fácilmente gracias a la librería joblib.

Creación de un modelo de ejemplo

Antes de poder guardar un modelo en un archivo es necesario crear uno. Para ello se puede crear un conjunto de datos aleatorio con la función make_regression() y entrenado con un modelo de regresión cómo puede ser Lasso. Lo que se puede obtener con el siguiente código.

from sklearn.datasets import make_regression
from sklearn.linear_model import Lasso

X, y = make_regression(n_features=3, random_state=0)

model = Lasso().fit(X, y)

model.predict([[1,1,1]])
array([106.07180807])

Un ejemplo básico en el que se usan los datos directamente, sin ningún procesado, para la creación del modelo. Obteniendo una predicción de 106,07 para el vector [1, 1, 1].

Publicidad


Guardar el modelo de Scikit-learn en disco

Ahora que tenemos un modelo en nuestra sesión de Python es posible guardar este en un archivo con la función dump() de joblib. Una función que únicamente necesita dos parámetros, en primer lugar, el propio modelo y en segundo el nombre del archivo donde se guardará. Así, para guardar el modelo solamente se tendrá que escribir y lanzar el siguiente código.

Consistencia en nombres y orden en TypeScript: la base de un código mantenible aplicado a tslane
En Analytics Lane
Consistencia en nombres y orden en TypeScript: la base de un código mantenible aplicado a tslane

from joblib import dump

dump(model, 'regression.joblib') 

Una vez lanzado este, aparecerá en la carpeta de trabajo un nuevo archivo llamado regression.joblib con el modelo.

Importar el modelo desde disco

Para importar el modelo se puede recurrir a la función load() de joblib. Función que requiere como parámetro el nombre del archivo y devuelve el objeto guardado, en nuestro caso el modelo. Para lo que se puede ejecutar el siguiente código.

from joblib import load

regression_model = load('regression.joblib')

regression_model.predict([[1,1,1]]) 
array([106.07180807])

Ejemplo en el que, además de importar el modelo, también se ha obtenido la predicción del modelo para el vector [1, 1, 1], obteniendo el mismo resultado que en la sesión original.

Publicidad


Compresión del modelo

En el ejemplo que hemos visto el modelo no es complejo, por lo que el archivo resultante solamente ocupa unos 711 bytes, pero en casos más complejos puede ser interesante comprimir el archivo para ahorrar espacio. Algo que se puede conseguir mediante el uso del parámetro compress de la función dump(). Un parámetro que por defecto tiene el valor 0, sin compresión, y puede tener cualquier valor hasta 9, máxima compresión. Así el siguiente código genera un archivo de 490 bytes con el mismo modelo, esto es, se ha reducido el tamaño en un 31%.

dump(model, 'compress.joblib', compress=9) 

Mediante el parámetro compress también se puede indicar el tipo de compresor utilizado (‘zlib’, ‘gzip’, ‘bz2’, …). Para lo que habrá que pasar una tupla dónde el primer elemento sea un texto con el tipo de compresión y el segundo un valor entre 0 y 9 con el nivel de compresión.

Conclusiones

En esta entrada se ha visto cómo se puede guardar los modelos de Scikit-learn en disco con joblib para posteriormente importarlos en otra sesión. Algo que puede ser útil cuando necesitamos usar estos modelos en otras máquinas para obtener predicciones.

Imagen de Alexas from Pixabay

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicidad


Publicaciones relacionadas

  • Consistencia en nombres y orden en TypeScript: la base de un código mantenible aplicado a tslane
  • Análisis de Redes con Python
  • Nuevo calendario de publicaciones: más calidad, mejor ritmo
  • Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Cómo eliminar las noticias en Windows 11 y recuperar tu concentración
  • Publicaciones de verano 2025: los trucos más populares, ahora en vídeo
  • Cómo enviar correos desde PowerShell utilizando Brevo: Guía paso a paso para automatizar tus notificaciones
  • Nueva herramienta disponible: Calculadora del Método D’Hondt para la atribución de escaños
  • Cómo enviar correos desde Python utilizando Brevo: Automatiza tus notificaciones con scripts eficientes

Publicado en: Python Etiquetado como: Scikit-Learn

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

¡Nuevo video! Gráficos de barras en Matplotlib sin complicarte

julio 17, 2025 Por Daniel Rodríguez

¡Nuevo video! Iterar filas en Pandas sin romperte la cabeza

julio 15, 2025 Por Daniel Rodríguez

¡Nuevo video! Encuentra la posición en listas como un PRO

julio 10, 2025 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Obtención de valores únicos de una columna con Pandas publicado el mayo 8, 2019 | en Python
  • Cómo encontrar la posición de elementos en una lista de Python publicado el abril 12, 2021 | en Python
  • Solución al error Failed to download metadata for repo ‘AppStream’ en CentOS 8 publicado el septiembre 13, 2023 | en Herramientas
  • Combinar varios archivos Jupyter Notebook en uno publicado el noviembre 21, 2022 | en Python
  • Sistema de ecuaciones Sistemas de ecuaciones lineales con numpy publicado el octubre 29, 2018 | en Python

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • Piera en Ecuaciones multilínea en Markdown
  • Daniel Rodríguez en Tutorial de Mypy para Principiantes
  • Javier en Tutorial de Mypy para Principiantes
  • javier en Problemas con listas mutables en Python: Cómo evitar efectos inesperados
  • soldado en Numpy básico: encontrar la posición de un elemento en un Array de Numpy

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2025 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto