Top 7 Exemples et Tutoriels Streamlit pour débuter
Published on
Bienvenue dans le monde de Streamlit !
Si vous êtes un scientifique des données ou un passionné d'apprentissage automatique à la recherche d'un moyen de partager votre travail, vous êtes au bon endroit. Nous allons explorer certains des exemples les plus passionnants construits avec Streamlit, un outil puissant qui fait sensation dans la communauté de la science des données. De l'analyse de sentiment à la visualisation de données boursières en passant par la création de modèles d'apprentissage automatique, nous verrons comment Streamlit facilite plus que jamais la transformation de scripts de données en applications web partageables.
Qu'est-ce que Streamlit ?
Mais avant de plonger dans les projets, prenons un moment pour comprendre ce qu'est Streamlit. Streamlit est un framework Python open-source qui vous permet de créer des applications web personnalisées pour l'apprentissage automatique et la science des données.
En seulement quelques lignes de code, vous pouvez construire des fonctionnalités interactives permettant aux utilisateurs de manipuler des données, d'ajuster des paramètres et de voir les résultats en temps réel. Il est conçu pour aider les scientifiques des données et les ingénieurs à rationaliser leurs processus, de l'exploration des données au déploiement de modèles. Ainsi, que vous soyez un expert chevronné ou un débutant qui débute tout juste, Streamlit a quelque chose à offrir. Plongeons-y et voyons ce qui est possible !
Pourquoi utiliser Streamlit ? Comparaison de Streamlit avec Django et Flask
Streamlit a été comparé à d'autres frameworks web populaires tels que Django et Flask, notamment dans le contexte de la science des données et des applications d'apprentissage automatique. Voyons comment il se compare.
Voici un tableau comparatif qui résume les différences entre Streamlit, Django et Flask :
Fonctionnalité | Streamlit | Django | Flask |
---|---|---|---|
Conçu pour la science des données et l'apprentissage automatique | Oui | Non | Non |
Facilité d'utilisation | Élevée (nécessite peu de code) | Moyenne (courbe d'apprentissage abrupte) | Moyenne (nécessite une compréhension du développement web) |
Connaissance requise en développement web | Non | Oui | Oui |
Batteries incluses | Non (axé sur les applications de science des données et d'apprentissage automatique) | Oui (comprend ORM, panneau d'administration, prise en charge de l'authentification, etc.) | Non (conception minimaliste, mais peut être étendu avec des bibliothèques) |
Flexibilité | Moyenne (ne convient pas aux applications web complexes) | Élevée (convient aux applications web complexes) | Élevée (vous permet de choisir vos propres outils et bibliothèques) |
Convient aux applications web simples | Oui | Peut-être (pourrait être excessif) | Oui |
Ce tableau fournit une comparaison de haut niveau des trois frameworks. Le meilleur choix dépend de vos besoins spécifiques et de la complexité de votre projet.
Streamlit vs. Django
Django (opens in a new tab) est un framework web Python de haut niveau qui encourage le développement rapide et un design pragmatique et propre. Il suit le modèle de conception architectural Modèle-Vue-Modèle et est connu pour sa philosophie "batteries incluses", ce qui signifie qu'il est livré avec de nombreuses fonctionnalités prêtes à l'emploi, telles qu'un ORM, un panneau d'administration et un support d'authentification.
Bien que Django soit un framework robuste et polyvalent, il peut être excessif pour des applications simples de science des données et d'apprentissage automatique. Il a une courbe d'apprentissage abrupte et nécessite une bonne compréhension des concepts de développement web.
En revanche, Streamlit est conçu spécifiquement pour des applications de science des données et d'apprentissage automatique. Il vous permet de créer des applications web interactives en quelques lignes de code, sans avoir besoin de connaissances en développement web. Cependant, il n'est pas aussi riche en fonctionnalités que Django et peut ne pas convenir aux applications web complexes.
Streamlit vs. Flask
Flask (opens in a new tab) est un framework web Python léger qui fournit le strict minimum pour démarrer une application web. Il est plus flexible que Django et vous permet de choisir vos propres outils et bibliothèques.
Flask est un bon choix pour les applications web simples, mais comme Django, il nécessite une bonne compréhension des concepts de développement web. Créer des applications de science des données et d'apprentissage automatique interactives avec Flask peut être difficile et prendre du temps.
Streamlit, avec son orientation vers la science des données et l'apprentissage automatique, facilite la création d'applications web interactives. Il gère une grande partie du travail de développement web pour vous, vous permettant de vous concentrer sur la science des données.
Les meilleurs exemples Streamlit pour débuter
TensorFlow Serving avec Streamlit
TensorFlow Serving avec Streamlit (opens in a new tab) est un projet qui montre comment servir un modèle TensorFlow à l'aide de TensorFlow Serving et visualiser les prédictions dans une application web utilisant Streamlit. Le projet inclut un notebook Jupyter qui explique le processus de formation d'un modèle, son exportation dans un format adapté pour le serveur et le service du modèle en utilisant TensorFlow Serving. L'application Streamlit fournit une interface conviviale pour interagir avec le modèle servi et visualiser les prédictions.
Voici un bref aperçu du fonctionnement du projet :
-
Former un modèle TensorFlow : Le projet inclut un notebook Jupyter qui montre comment former un modèle TensorFlow simple sur l'ensemble de données MNIST.
-
Exporter le modèle pour le service : Le modèle entraîné est exporté dans un format pouvant être servi à l'aide de TensorFlow Serving.
-
Servir le modèle : Le modèle exporté est servi à l'aide de TensorFlow Serving, qui fournit un système de service flexible et performant pour les modèles d'apprentissage automatique.
-
Visualisez les prédictions avec Streamlit: Une application Streamlit est créée pour interagir avec le modèle serveur. L'application permet aux utilisateurs de dessiner un chiffre sur un canevas, envoie l'image dessinée au modèle serveur et affiche le chiffre prédit.
Rhyme with AI
Rhyme with AI (opens in a new tab) est un projet amusant qui utilise l'apprentissage automatique pour générer des rimes. Le projet utilise un modèle linguistique entraîné sur un corpus de paroles de chansons. L'application Streamlit permet aux utilisateurs de saisir un mot, et le modèle génère une liste de mots qui riment avec le mot saisi.
Voici comment fonctionne le projet :
-
Entraîner un modèle linguistique : Le projet entraîne un modèle linguistique sur un corpus de paroles de chansons. Le modèle apprend les motifs dans les données et est capable de générer du texte qui imite le style des données d'entraînement.
-
Générer des rimes : À partir d'un mot saisi, le modèle génère une liste de mots qui riment avec le mot saisi. Les rimes sont générées en fonction des motifs appris par le modèle lors de l'entraînement.
-
Visualiser les rimes avec Streamlit : Une application Streamlit est créée pour interagir avec le modèle. L'application permet aux utilisateurs de saisir un mot et affiche les rimes générées.
Outil d'analyse de sentiment
Outil d'analyse de sentiment (opens in a new tab) est un projet qui utilise l'apprentissage automatique pour analyser le sentiment d'un texte. Le projet inclut un notebook Jupyter qui montre comment entraîner un modèle d'analyse de sentiment sur le jeu de données des avis de films IMDB. L'application Streamlit offre une interface conviviale pour interagir avec le modèle et analyser le sentiment d'un texte saisi par l'utilisateur.
Voici un bref aperçu du fonctionnement du projet :
-
Entraîner un modèle d'analyse de sentiment : Le projet inclut un notebook Jupyter qui montre comment entraîner un modèle d'analyse de sentiment sur le jeu de données des avis de films IMDB. Le modèle est un modèle de classification binaire qui prédit si un avis est positif ou négatif.
-
Analyser le sentiment avec Streamlit : Une application Streamlit est créée pour interagir avec le modèle. L'application permet aux utilisateurs de saisir un texte et affiche le sentiment prédit pour ce texte.
Squote : Visualiseur de cotations boursières
Squote (opens in a new tab) est un projet qui utilise Streamlit pour créer un visualiseur interactif de cotations boursières. L'application permet aux utilisateurs de sélectionner une action et de visualiser ses données de prix historiques.
Voici comment fonctionne le projet :
-
Récupérer les données de la bourse : L'application récupère les données de prix historiques de l'action sélectionnée en utilisant la bibliothèque yfinance, qui permet d'accéder aux données financières de Yahoo Finance.
-
Visualiser les données de la bourse avec Streamlit : Une application Streamlit est créée pour interagir avec les données récupérées. L'application permet aux utilisateurs de sélectionner une action et une plage de dates, et affiche un graphique du prix de l'action sur la plage de dates sélectionnée.
Analyse exploratoire des données financières avec Streamlit
Analyse EDA financière avec Streamlit (opens in a new tab) est un projet qui montre comment effectuer une analyse exploratoire des données financières en utilisant Streamlit. L'application permet aux utilisateurs de sélectionner une action et de visualiser différents aspects des données de l'action, tels que son prix, son volume et son rendement.
Voici un bref aperçu du fonctionnement du projet :
-
Récupérer les données de la bourse : L'application récupère les données historiques de prix et de volume de l'action sélectionnée en utilisant la bibliothèque yfinance.
-
Effectuer une analyse exploratoire des données avec Streamlit : Une application Streamlit est créée pour interagir avec les données récupérées. L'application permet aux utilisateurs de sélectionner une action et affiche différentes visualisations des données de l'action, telles qu'un graphique linéaire du prix, un graphique à barres du volume et un histogramme du rendement.
Analyseur de discussions WhatsApp
Analyseur de discussions WhatsApp (opens in a new tab) est un projet qui utilise Streamlit pour créer un analyseur interactif de discussions WhatsApp. L'application permet aux utilisateurs de télécharger un fichier de discussion et de visualiser différents aspects de la discussion, tels que le nombre de messages par utilisateur, les utilisateurs les plus actifs et les mots les plus utilisés.
Voici un bref aperçu du fonctionnement du projet :
-
Télécharger un fichier de discussion : L'application permet aux utilisateurs de télécharger un fichier de discussion WhatsApp. Le fichier de discussion peut être obtenu en utilisant la fonctionnalité "Export chat" de WhatsApp.
-
Analyser la discussion avec Streamlit : Une application Streamlit est créée pour interagir avec le fichier de discussion téléchargé. L'application analyse le fichier de discussion et affiche différentes visualisations des données de la discussion.
Les courses Uber à New York City
Les courses Uber à New York City (opens in a new tab) est une démonstration de Streamlit qui visualise de manière interactive les courses Uber à New York City. L'application permet aux utilisateurs de sélectionner une date et une heure et affiche une carte des courses Uber dans la ville pendant la période sélectionnée.
Voici un bref aperçu du fonctionnement du projet :
-
Charger les données Uber : L'application charge un ensemble de données des courses Uber à New York City. L'ensemble de données comprend la date, l'heure et l'emplacement de chaque course.
-
Visualiser les courses Uber avec Streamlit : Une application Streamlit est créée pour interagir avec les données Uber. L'application permet aux utilisateurs de sélectionner une date et une heure, et affiche une carte des courses Uber dans la ville pendant la période sélectionnée. Ces projets mettent en valeur la puissance et la polyvalence de Streamlit dans la création d'applications web interactives pour la science des données et l'apprentissage automatique. Que vous visualisiez des données boursières, analysiez des données de messagerie ou serviez des modèles d'apprentissage automatique, Streamlit facilite la transformation de vos scripts de données en applications web partageables.
Tutoriels Streamlit
Streamlit est devenu populaire parmi les développeurs et les scientifiques des données en raison de son intégration transparente avec Python et son interface simple et conviviale. Comprendre la plateforme de fond en comble peut être beaucoup plus facile avec l'aide des tutoriels Streamlit. Veuillez consulter les ressources suivantes :
- Guide de démarrage avec Streamlit à partir de zéro (opens in a new tab)
- Comment créer votre environnement Streamlit dans VSCode (opens in a new tab)
- Créez un tableau de bord de base avec Streamlit (opens in a new tab)
- Comprendre l'état de session Streamlit (opens in a new tab)
- Intégrez Streamlit avec Snowflake (opens in a new tab)
- Comment visualiser facilement les données de Streamlit (opens in a new tab)
- Créez un chatbot avec Streamlit (opens in a new tab)
- Comment déployer votre application Streamlit (opens in a new tab)
Mais la puissance de Streamlit ne s'arrête pas là. Pour les scientifiques des données qui souhaitent créer rapidement une application de visualisation de données avec Streamlit, il existe une bibliothèque Python incroyable qui peut vous aider à accomplir le travail lourd !
PyGWalker (opens in a new tab) est une bibliothèque Python qui vous aide à incorporer facilement une interface utilisateur semblable à Tableau dans votre propre application Streamlit sans effort.
Regardez cette vidéo étonnante produite par Sven de Coding is Fun (opens in a new tab) qui montre les étapes détaillées pour renforcer votre application Streamlit avec cette puissante bibliothèque Python de visualisation de données !
Un grand merci à Sven et sa précieuse contribution (opens in a new tab) à la communauté PyGWalker !
De plus, vous pouvez également consulter la page GitHub de PyGWalker (opens in a new tab) pour plus d'exemples PyGWalker.
Conclusion
Streamlit est un outil puissant pour créer des applications web interactives pour la science des données et l'apprentissage automatique. Il est facile à utiliser, nécessite peu de codage et est spécifiquement conçu pour les scientifiques des données et les praticiens de l'apprentissage automatique. Les projets que nous avons explorés dans cet article mettent en évidence la puissance et la polyvalence de Streamlit, de la visualisation des données boursières à la mise à disposition de modèles d'apprentissage automatique.
Que vous soyez un scientifique des données chevronné cherchant à partager votre travail ou un débutant qui commence tout juste, Streamlit offre un moyen rapide et facile de transformer vos scripts de données en applications web partageables.
Foire aux questions
Streamlit est-il meilleur que Django ?
Cela dépend du cas d'utilisation. Django est un framework robuste et riche en fonctionnalités adapté aux applications web complexes, tandis que Streamlit est spécialement conçu pour créer des applications web interactives pour la science des données et l'apprentissage automatique. Si vous êtes un scientifique des données ou un praticien de l'apprentissage automatique souhaitant partager votre travail, Streamlit est probablement le meilleur choix.
Streamlit est-il un bon framework ?
Oui, Streamlit est un excellent framework pour créer des applications web interactives pour la science des données et l'apprentissage automatique. Il est facile à utiliser, nécessite peu de codage et vous permet de vous concentrer sur la partie science des données de votre projet.
Streamlit est-il meilleur que Flask ?
Pour les applications de science des données et d'apprentissage automatique, Streamlit est généralement un meilleur choix que Flask. Bien que Flask soit un framework web flexible et léger, la création d'applications interactives de science des données et d'apprentissage automatique avec Flask peut être difficile et chronophage. Streamlit, en revanche, est spécialement conçu pour ce type d'applications et facilite la création d'applications web interactives.