|

Du défi des données aux idées produites avec Dash Plotly

Partager

« Serais-tu intéressé à écrire un petit billet de blogue que nous pourrions publier, pour aider d’autres étudiants à essayer de nouvelles choses? »

« Oui, absolument »

Quelques jours se sont écoulés depuis la fin du premier Ocean of Data Challenge. Pour un bref rappel, le défi consistait à utiliser des données océaniques ouvertes pour explorer les possibilités du traversier proposé pour Bedford. En choisissant le volet « Autour de l’eau », mon équipe et moi avons utilisé des données de la municipalité régionale d’Halifax. Nous avons créé un prototype intégrant un modèle ARIMA pour la prévision de l’achalandage du traversier avec une analyse de tendances, et avons remporté le prix du meilleur design. Pendant le défi, mon équipe n’a pas déployé le projet sur un serveur, mais l’a présenté dans un Jupyter Notebook. Bien que la compétition soit terminée, le processus d’apprentissage se poursuit. Pour le compléter et mettre l’idée en production après le défi, j’ai tenté de déployer le prototype sur un site web en utilisant Dash Plotly.

Qu’est-ce que Dash? Pourquoi l’utiliser?

Même s’il existe des tonnes de descriptions sur la puissance de Dash, je vais essayer de le rendre le plus simple possible. Imaginez que vous avez développé un bon algorithme ML dans une compétition, un projet de cours ou même dans un environnement de travail réel. La question suivante qui vous vient à l’esprit est forcément : comment puis-je permettre à d’autres personnes/mon patron de reconnaître mon travail et de voir que mon modèle ML sophistiqué fonctionne vraiment? Parce que vous savez que vous ne pouvez pas simplement montrer des centaines ou milliers de lignes de code à votre public, ça ne voudra rien dire pour eux.

Traditionnellement, pour répondre à ce problème, il faut écrire tout le front-end/back-end et intégrer votre modèle, puis trouver un moyen de rendre tout cela compatible et de le déployer sur un serveur. Vous imaginez déjà la galère que ça représente. Cependant, avec Dash Plotly, vous pouvez facilement concevoir et déployer votre modèle en utilisant uniquement Python, et Dash s’occupe de la partie développement full-stack. C’est cool, non? Sans parler du fait que Dash fournit une foule de fonctions front-end pour s’assurer que votre site ait fière allure, même si vous avez peu d’expérience en design web.

De cette façon, vous pouvez facilement donner vie à votre modèle sur un site web en écrivant quelques lignes de code et le montrer au monde!

Comment apprendre Dash? Y a-t-il des raccourcis?

Toujours apprendre avec un objectif.

Commencez toujours avec un objectif clair de ce que vous voulez accomplir au final, que ce soit un projet ML en classe ou une idée brillante que vous voulez développer en produit. Pour moi, c’était de déployer mon prototype conçu pendant le défi. L’objectif agit comme un scénario qui donne un sens à vos compétences. En cours de route, un objectif clair vous pousse à apprendre beaucoup de nouvelles choses et vous procure un grand sentiment d’accomplissement à la fin. Si vous apprenez Dash sans savoir clairement où vous voulez aller, vous risquez de vous perdre dans les détails et de ne rien accomplir.

Apprendre en pratiquant.

Le processus de base pour lancer une application Dash est de d’abord faire des expériences et du réglage de modèle dans Jupyter Notebook, de regrouper les pipelines de données, les visualisations et la modélisation en fonctions bien structurées, puis de concevoir la mise en page du site web et de le déployer en utilisant des serveurs gratuits comme Heroku. Pour moi, le plus de temps a été consacré à la conception de la mise en page et des fonctions de rappel (callbacks).

Comme j’avais peu d’expérience en développement web, j’ai d’abord choisi quelques exemples de la galerie Dash App à reproduire. Pendant ce processus, je me souviens avoir tout cherché sur Google, ouvert plus de 50 onglets, travaillé jour et nuit sans jamais me sentir fatigué. Ce processus m’a permis de rapidement saisir les connaissances nécessaires pour concevoir mon application et revoir les bases de CSS et HTML. En plus, j’ai appris à bien utiliser Git pour le contrôle de version et la gestion du code en raison des besoins liés au déploiement de l’application Dash.

Apprendre en pratiquant est toujours une excellente façon de « toucher à de nouvelles choses », surtout dans le domaine des TI. Tout le monde apprend quelque chose de nouveau et se débrouille en cours de route. Vous ne pouvez pas attendre que chaque morceau de savoir vous soit donné avant de vous lancer. Commencez de zéro et ajoutez graduellement. Faites-moi confiance, vous allez vous surprendre vous-mêmes!

Forte recommandation de participer à des « défis de données pratiques »

En fait, ce n’était pas ma première participation à des défis liés aux données. Toutefois, la grande différence entre cet Ocean of Data Challenge et les célèbres compétitions Kaggle, c’est la praticité, ce qui le rend plus fascinant que les compétitions Kaggle traditionnelles, qui se limitent à la course aux meilleurs scores. Sur Kaggle, les concurrents gagnent en atteignant les scores les plus élevés, peu importe si les solutions peuvent réellement être utilisées en industrie.

Cependant, les défis de données pratiques ou les hackathons mettent l’accent sur des solutions bien structurées, soutenues par la science des données, pour mieux répondre à des problèmes d’affaires de manière réalisable. Dans ce cas, nous pouvons vraiment réfléchir au côté affaires en posant des questions comme : « Mon modèle fonctionne-t-il vraiment? Est-il adapté au contexte donné? Répond-il aux problèmes actuels? » Avec de plus en plus de participants à ces défis, des idées brillantes verront le jour et pourront réellement changer les choses!

Commencer avec Plotly :

Bien qu’il existe de nombreuses ressources, cette documentation officielle est la plus simple pour commencer, de l’installation à l’utilisation avancée et au déploiement. Suivez-la pas à pas, elle est très détaillée : https://dash.plotly.com/

Dash Bootstrap Components : https://dash-bootstrap-components.opensource.faculty.ai/

Déploiement Dash sur Heroku : https://dash.plotly.com/deployment

Git : https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners

À propos de l’auteur

Chu Wang est actuellement étudiant diplômé à l’Université Dalhousie dans le programme de maîtrise en innovation numérique – science des données. Auparavant, il a travaillé comme analyste de données chez Tencent et Jobster.io. Il s’est classé parmi les premiers dans plusieurs compétitions Kaggle, a remporté le premier prix à la China National AI Competition, et plus récemment, avec son équipe, le prix du meilleur design à l’Ocean of Data Challenge: The Bedford Ferry, organisé par DeepSense et COVE.