Logo Zéphyrnet

Construire des tableaux de bord explicatifs en Python

Date :

Cet article a été publié dans le cadre du Blogathon sur la science des données.

 

Tableaux de bord en Python
Source : Conçu par Freepik

Introduction

Nous vivons dans un monde où les données sont collectées à chaque transaction, qu'il s'agisse de prendre un taxi, d'acheter en ligne des détails sur ce qui a été acheté et combien a été acheté, il y a des rappels pour faire entretenir nos véhicules et la prime d'assurance à payer, des e-mails sont inondés de marketing ciblé où les entreprises vendent un produit particulier à un prix spécifique basé sur la segmentation de la clientèle d'un modèle. Avec les smartphones/applications mobiles, la collecte et le traitement des données au niveau individuel sont devenus beaucoup plus faciles. Fini le temps où les entreprises disaient seulement si elles disposaient de suffisamment de données pour prendre une décision commerciale.

Ces avancées technologiques associées à la facilité d'obtention et de traitement des données entraînent toute une série de défis. Ce sont les mêmes données qui consomment près de 65 à 75 % du temps dans les projets de science des données et donner un sens à ces données n'est possible que si elles sont visualisées. Cela a donné lieu à une pléthore d'outils et de packages pour nous aider à surmonter cet obstacle. L'autre chose intéressante à noter est que la visualisation des données pour extraire des informations utiles n'est pas seulement une compétence technique, mais dépend aussi beaucoup des compétences créatives de l'individu. Maintenant, les trucs créatifs sont généralement très subjectifs et il est possible qu'ils apportent beaucoup de notions préconçues, biaisées, etc. Cela est évident lorsque nous voyons des rapports de différentes sources donnant des perspectives et des conclusions différentes à partir des mêmes données. Sans oublier les multiples séries d'examens et de révisions pour générer un rapport.

Le besoin de tableaux de bord en Python

Il existe également des scénarios dans lesquels l'entreprise n'est pas d'accord avec certains rapports/recommandations uniquement parce qu'elle comprend mieux l'entreprise que le modèle et les données sur lesquels il a été construit. Alors, comment une entreprise devrait-elle prendre sa décision lorsqu'elle a des recommandations contradictoires ?. Un moyen simple serait de donner le pouvoir des données et de la visualisation aux entreprises où elles peuvent visualiser les données d'un point de vue commercial avec un minimum de dépendances vis-à-vis des équipes techniques. Cela a donné naissance à des tableaux de bord et à des outils comme Power BI / Tableau a permis à l'entreprise de prendre des décisions commerciales à la volée. Mais, ces outils ne sont pas gratuits, une prime leur est associée et elle est parfois basée sur l'utilisateur.

Dans ce blog, nous nous pencherons sur tableau de bord explicatif paquet de python qui nous aidera à construire non seulement des tableaux de bord mais aussi des modèles prédictifs avec un minimum de lignes de code. Inutile de dire que tout est gratuit et open source.

Avant d'aller plus loin avec le blog, prenons un peu de recul pour comprendre jusqu'où et à quelle vitesse la technologie évolue.

L'année dernière, j'avais créé une application de tableau de bord/données avec un package plotly dash en python. C'était pour un programme de fidélisation de la clientèle. Chaque tracé, point de données, couleur, mise en page et interactivité devait être défini et codé pour que l'application fonctionne. Il contient des fichiers, à savoir app.py qui définit la fonctionnalité, dataProcess.py pour préparer les données du tableau de bord et layout.py pour définir la mise en page. L'application s'est finalement bien déroulée, mais elle impliquait plus qu'une quantité décente de code python. En savoir plus sur le blogue.

Code GitHub : Programas De Fidelización De Clientes

De plus, j'avais construit une application brillante R qui construirait automatiquement un modèle basé sur la sélection de l'utilisateur sur l'interface utilisateur. L'application était très basique, elle avait des fichiers d'interface utilisateur et de serveur avec une interactivité définie et effectuait les tâches suivantes lors de la sélection de l'utilisateur. Encore une fois, inutile de dire que tout dans l'application a été codé de bout en bout. En savoir plus sur le blogue.

  • Vitrine de données
  • Résumé des données et statistiques de base
  • Laissez l'utilisateur jouer avec la division train/test et visualisez des tracés comme la corrélation, etc.
  • Construisez le modèle et affichez l'importance des variables suivie d'une prédiction finale sur les données de test.

Code GitHub : Modélisation interactive avec Shiny

Le besoin de tableau de bord

Source: auteur

Les deux exemples d'applications que nous avons vus ci-dessus ont été construits respectivement sur python et R Shiny. Un rapide retour en arrière des applications ci-dessus était nécessaire pour que nous comprenions les compétences requises pour construire un tel tableau de bord et aussi pour apprécier le tableau de bord explicatif que nous explorerons dans la section suivante. Nous atteindrons plus avec un minimum de lignes de code - tout intégré.

Commençons!

Installez la bibliothèque : Ouvrez votre terminal et installez la bibliothèque avec le code ci-dessous

explication de l'installation de piptableau de bord

Nous allons construire un modèle de classificateur de forêt aléatoire à l'aide d'un ensemble de données intégré. Par conséquent, nous allons installer d'autres dépendances comme suit

à partir de sklearn.ensemble importer RandomForestClassifier à partir d'explicerdashboard importer ClassifierExplainer, ExplainerDashboard à partir d'explicerdashboard.datasets importer titanic_survive, feature_descriptions

Créez notre ensemble de données d'entraînement/test comme ci-dessous

X_train, y_train, X_test, y_test = titanic_survive()

Nous allons créer un objet par explicateur qui nous aidera à créer un tableau de bord.

explicateur = ClassifierExplainer(model, X_test, y_test, cats=['Sex', 'Deck', 'Embarqué'], descriptions=feature_descriptions, labels=['Pas survécu', 'Survived'])

Enfin, nous exécuterons l'objet explicatif pour afficher le tableau de bord.

Tableau de bord explicatif(explicateur).run()
* Servant l'application Flask "explainerdashboard.dashboards" (chargement différé) * Environnement : production AVERTISSEMENT : il s'agit d'un serveur de développement. Utilisez plutôt un serveur WSGI de production. * Mode débogage : désactivé * Fonctionne sur http://0.0.0.0:8050/ (Appuyez sur CTRL+C pour quitter)

Maintenant, nous pouvons cliquer sur  http://0.0.0.1:8050/ pour afficher le tableau de bord.

Explicateur de modèle | Tableaux de bord en Python

Source: auteur

Mesures de performance du modèle et matrice de confusion

Source: auteur

Précision et classification Tracé | Tableaux de bord en Python
Source: auteur
Tracés ROC AUC et PR AUC | Tableaux de bord en Python
Source: auteur
Courbe de levage et précision cumulée | Tableaux de bord en Python
Source: auteur

Tous les tracés et métriques que nous avons vus ci-dessus sont générés automatiquement par le tableau de bord explicatif et sont également soigneusement séparés en différents onglets. Il permet aux utilisateurs de jeter un coup d'œil dans les domaines qui les intéressent, d'apporter des modifications à la configuration et de tirer des conclusions.

Désactiver les onglets: Nous pouvons également masquer les onglets dont nous n'avons pas besoin avec le paramètre ci-dessous.

Tableau de bord explicatif(explainer, importances=True, model_summary=False, contributions=True, whatif=True, shap_dependence=True, shap_interaction=False decision_trees=True ).run()

Une des sections intéressantes est "Et qu'est-ce qui se passerait si…" où les utilisateurs peuvent effectuer diverses sélections et voir instantanément les résultats. Ceci est très similaire à l'implémentation que nous avons essayée dans l'application R shiny et ici nous avons réalisé plus que cela avec seulement quelques lignes de code.

Note de clôture sur les tableaux de bord en Python

La visualisation des données est nécessaire car notre cerveau n'est pas équipé de la capacité d'analyser et de traiter d'énormes volumes de données structurées/non structurées, d'identifier les tendances et d'en tirer un sens significatif. La représentation graphique des données nous permet d'interagir avec les données et d'interpréter le résultat d'une manière qui a du sens pour nous. Le tableau de bord en lui-même ne répond pas à toutes nos questions, mais nous aide certainement à trouver des réponses à notre manière.

J'espère que vous avez aimé le blog sur les tableaux de bord en Python. Bon apprentissage!

Vous pouvez vous connecter avec moi - LinkedIn &  Github

Bibliographie

https://explainerdashboard.readthedocs.io/en/latest/

https://www.freepik.com/free-vector/site-stats-concept-illustration_7140739.htm#query=dashboard&position=3&from_view=search

Les médias présentés dans cet article n'appartiennent pas à Analytics Vidhya et sont utilisés à la discrétion de l'auteur. 

spot_img

Dernières informations

spot_img

Discutez avec nous

Salut! Comment puis-je t'aider?