Construye tu web app de Machine Learning al instante con Streamlit

Crear una aplicación web puede parecer una tarea desafiante, sobre todo cuando se trata de integrar componentes complejos como los de machine learning.
Sin embargo, gracias a herramientas como Streamlit, este proceso se ha simplificado enormemente.
Streamlit es una solución poderosa que está revolucionando la manera en que los científicos de datos y desarrolladores llevan sus modelos de Machine Learning a la web.
En este artículo, exploraremos cómo construir una web app de manera instantánea para Machine Learning utilizando Streamlit. Desde la configuración del entorno hasta el despliegue en la nube, te guiaré paso a paso para que puedas compartir tus proyectos de Machine Learning con el mundo de la forma más rápida y eficiente posible.
- ¿Qué es Streamlit y por qué usarlo?
- Primeros pasos con Streamlit
- Creación de un entorno virtual en Anaconda
- Instalación de dependencias necesarias
- Implementación de Streamlit en una aplicación web
- Cómo desplegar tu aplicación en la nube
- Preguntas relacionadas sobre el desarrollo y despliegue con Streamlit
- ¿Cómo hacer aplicaciones Streamlit sean más rápidas?
- ¿Cómo hacer una aplicación web usando Streamlit?
- ¿Cómo utilizar Streamlit para implementar el modelo ML?
¿Qué es Streamlit y por qué usarlo?
Streamlit es un framework de código abierto diseñado especialmente para la creación de aplicaciones web destinadas a la Ciencia de Datos. Su facilidad de uso y flexibilidad permiten a los usuarios transformar análisis de datos en Python en aplicaciones web interactivas sin necesidad de tener experiencia previa en frameworks web.
La razón principal para usar Streamlit radica en su capacidad de acelerar el tiempo de desarrollo. Con unas pocas líneas de código, puedes crear interfaces de usuario elegantes y funcionales. Además, Streamlit maneja automáticamente todo el ciclo de vida de la aplicación, desde el frontend hasta el backend, lo que permite que los desarrolladores se concentren únicamente en la funcionalidad.
Streamlit está diseñado para trabajar perfectamente con otras librerías de Python como NumPy, pandas y Matplotlib, facilitando la integración de análisis de datos complejos y visualizaciones en la web app.
Primeros pasos con Streamlit
Para comenzar a crear una web app con Streamlit, primero debes instalar el paquete. Esto se puede hacer fácilmente con pip, el gestor de paquetes de Python. Una vez instalado, puedes iniciar una aplicación Streamlit simplemente escribiendo streamlit run tu_script.py
en tu terminal.
El corazón de una aplicación Streamlit es el script de Python que escribes. En él, definirás la lógica de tu aplicación, cómo se procesan los datos y cómo se presentan al usuario.
Streamlit utiliza un modelo de scripting puro, lo que significa que no necesitas definir rutas o manejar solicitudes HTTP. Tu script se ejecuta de arriba hacia abajo, y cada vez que el usuario realiza una interacción, el script se vuelve a ejecutar, actualizando la aplicación.
Cuando se trata de agregar elementos a tu aplicación, Streamlit ofrece una amplia variedad de widgets que puedes utilizar, como sliders, botones y campos de texto, todos con un simple llamado a una función.
Creación de un entorno virtual en Anaconda
Para mantener tu proyecto de Streamlit organizado y evitar conflictos entre dependencias, es recomendable crear un entorno virtual.
Anaconda es una excelente herramienta para la gestión de entornos, especialmente en proyectos de Ciencia de Datos.
Con Anaconda, puedes crear un entorno virtual con un comando simple y activarlo cuando necesites trabajar en tu proyecto. Esto se hace desde la terminal con conda create --name mi_entorno
y conda activate mi_entorno
, respectivamente.
Una vez dentro de tu entorno, puedes instalar Streamlit y otras dependencias que tu aplicación pueda necesitar. Esto asegura que todas las librerías estén en la versión correcta y que tu aplicación se ejecute sin problemas.
Instalación de dependencias necesarias
Además de Streamlit, tu aplicación puede requerir otras librerías de Python. Estas dependencias se instalan dentro de tu entorno virtual para no afectar otros proyectos. Librerías como Pandas para la manipulación de datos, Scikit-learn para algoritmos de Machine Learning, o Matplotlib para visualizaciones, pueden ser esenciales para tu aplicación.
Una buena práctica es listar todas tus dependencias en un archivo requirements.txt
, lo que facilita la instalación de todas ellas con un único comando: pip install -r requirements.txt
.
Implementación de Streamlit en una aplicación web
Implementar Streamlit en tu web app es sorprendentemente sencillo. Puedes empezar con algo tan básico como mostrar un texto en pantalla con st.write('Hola Mundo')
. Desde ahí, puedes agregar más funcionalidad incrementando la complejidad de tu script gradualmente.
Streamlit cuenta con una serie de componentes interactivos que puedes incorporar, como gráficos, mapas y tablas. Además, los inputs del usuario pueden ser capturados y utilizados para actualizar los resultados en tiempo real.
La interactividad de una aplicación Streamlit la convierte en una herramienta muy poderosa para visualizar y explorar datos, proporcionando a los usuarios finales la capacidad de manipular los datos y ver los resultados de manera instantánea.
Cómo desplegar tu aplicación en la nube
Una vez que tu aplicación está lista, querrás compartir tu trabajo con otras personas.

Desplegar tu aplicación en la nube es una excelente manera de hacerla accesible a cualquier persona con un navegador web.
Hay varias opciones para el despliegue, incluyendo Streamlit Sharing, que es un servicio gratuito para alojar apps de Streamlit, y otras plataformas como Heroku, AWS o Google Cloud.
Estos servicios permiten que tu aplicación esté disponible en internet y pueda ser utilizada por un público más amplio.
Para desplegar en Streamlit Sharing, por ejemplo, simplemente tienes que subir tu repositorio de GitHub y configurar las variables de entorno necesarias.
El proceso es similar en otras plataformas, aunque puede requerir pasos adicionales como la configuración de contenedores o la gestión de servicios de base de datos.
Preguntas relacionadas sobre el desarrollo y despliegue con Streamlit
¿Cómo hacer aplicaciones Streamlit sean más rápidas?
Para mejorar el rendimiento de las aplicaciones Streamlit, es esencial optimizar el uso de recursos y la carga de datos.
Usar caching para almacenar los resultados de operaciones costosas y evitar la recarga de datos innecesariamente puede hacer una gran diferencia. Streamlit proporciona un decorador de caché fácil de usar para este propósito.
Además, mantener el código limpio y bien estructurado, así como reducir la complejidad de las operaciones, son prácticas que contribuyen a acelerar la aplicación.
¿Cómo hacer una aplicación web usando Streamlit?
Crear una aplicación web con Streamlit es tan sencillo como escribir un script de Python y usar las funciones que Streamlit proporciona para mostrar datos y widgets.
Tu código se convierte en una aplicación que puedes compartir y desplegar en minutos.
Streamlit es intuitivo: comienzas con la lógica de tu aplicación, organizas tus datos y agregas elementos interactivos. Con la documentación de Streamlit y la comunidad que hay detrás, siempre encontrarás apoyo para desarrollar tu aplicación.
¿Streamlit es bueno para el desarrollo web?
Streamlit es una excelente opción para el desarrollo web, especialmente para prototipos rápidos y herramientas de visualización de datos. Ofrece una manera rápida y eficiente de llevar modelos de Machine Learning a la web, lo que beneficia a científicos de datos y desarrolladores por igual.
Si bien Streamlit puede no tener la flexibilidad de frameworks como Django o Flask para ciertos aspectos del desarrollo web, brilla en lo que se propone: convertir análisis de datos y modelos de Machine Learning en aplicaciones web accesibles y fáciles de usar.
¿Cómo utilizar Streamlit para implementar el modelo ML?
Desplegar un modelo de Machine Learning con Streamlit requiere que primero prepares tu modelo para la inferencia.
Luego, escribirás un script de Streamlit que utilize tu modelo para hacer predicciones basadas en los inputs de los usuarios.
Integrar funcionalidades como el upload de archivos o la entrada de datos a través de formularios te permitirá crear experiencias interactivas y útiles para los usuarios finales.
Finalmente, escogerás una plataforma de despliegue y seguirás los pasos para hacer que tu aplicación esté en línea.
Servicios como Streamlit Sharing y Heroku facilitan este proceso y ofrecen guías detalladas para ayudarte en cada paso del camino.
Por ejemplo, aquí tienes un video que muestra cómo llevar a cabo la instalación y la ejecución de una simple aplicación con Streamlit:
En resumen, Streamlit ha simplificado el proceso de convertir scripts de Machine Learning en aplicaciones web interactivas y atractivas.
Ya sea que estés buscando compartir tus análisis de datos, visualizar resultados complejos o simplemente poner a prueba tus habilidades de desarrollo, Streamlit te ofrece una plataforma robusta y fácil de usar para llevar tus proyectos al siguiente nivel.

Ahora que conoces los conceptos básicos, ¿estás listo para construir tu propia web app de Machine Learning al instante usando Streamlit?