[PYTHON] [EDA] Introduction de Sweetviz (comparaison avec + pandas-profiling)

Jusqu'à présent, EDA utilisait pandas-profiling, mais Sweetviz Je vois parfois quelque chose comme ça, alors je l'ai essayé.

Les données utilisées étaient données Titanic.

table des matières

  1. [Qu'est-ce que EDA](Qu'est-ce que # 1-eda)
  2. [Exemple d'exécution Sweetviz](exemple d'exécution # 2-sweetviz)
  3. [exemple d'exécution de pandas-profiling](exemple d'exécution # 3-pandas-profiling)
  4. [Exemple de mise en œuvre](# 4-Exemple de mise en œuvre)
  5. [Télécharger le code et les données](# 4-1-Télécharger le code et les données)
  6. [Préparation environnementale](# 4-2-Préparation environnementale)
  7. [Exécution de code](# 4-3-Execution de code)
  8. [Enfin](# 5-Enfin)

1. Qu'est-ce que l'EDA?

EDA signifie ** Analyse des données explicatives **. Lors de l'exécution de travaux d'analyse de données tels que l'apprentissage automatique, les travaux suivants sont effectués dans le but de comprendre les données. --Visualisation de données --Comprendre les caractéristiques des données --Comprendre la relation entre les données

Si vous regardez dans les détails de l'EDA, vous en trouverez beaucoup, je vais donc l'omettre dans cet article. Veuillez vous référer aux articles suivants. ・ [Introduction to Data Scientists] Essayons les opérations de base de l'analyse exploratoire des données (EDA) en utilisant PythonQu'est-ce que l'EDA (Exploratory Data Analysis)? Analyse exploratoire des données (EDA)

2. Exemple d'exécution de Sweetviz

Sweetviz est une bibliothèque qui peut effectuer diverses tâches lors de l'exécution semi-automatique de l'EDA. Je présenterai immédiatement un exemple d'exécution avec Titanic data. all_number.png

Après l'exécution, le html ci-dessus sera créé. Regardons le contenu en trois parties.

① Vue d'ensemble et coefficient de corrélation

Dans la partie (1), vous pouvez vérifier les ** caractéristiques de l'ensemble des données ** et le ** coefficient de corrélation **. Dans l'ensemble, le gros avantage de Sweetviz est que vous pouvez voir ** les données d'entraînement et les données d'inférence séparément **. ①-1.png Dans la partie de la figure ** pour chacune des données d'apprentissage et des données d'inférence ** Vous pouvez vérifier le contenu suivant.

Vous pouvez également vérifier le coefficient de corrélation en appuyant sur le bouton ** Associations **. associations.png

Ce qui précède est un exemple avec des données d'entraînement, mais comme il peut également être confirmé avec des données d'inférence, Il peut être possible de deviner s'il y a une différence dans la distribution en regardant la différence du coefficient de corrélation entre les données d'apprentissage et les données d'inférence.

② Aperçu de chaque fonctionnalité

Dans la partie de ②, vous pouvez confirmer les choses suivantes.

②.png

Il est naturel que la distribution puisse être vue, Il est très pratique de voir ** «Taux positif» ** et ** «Comparaison des données d'entraînement et des données d'inférence» **. En regardant ces

Il est possible de prédire beaucoup à l'avance avant de mettre en œuvre des algorithmes d'IA pour calculer la précision et la descriptivité des prédictions telles que LIME / SHAP. Si vous pouvez prédire à l'avance, vous ne croirez pas aveuglément les résultats de l'IA et il sera plus facile de considérer les résultats.

③ Détails de chaque fonctionnalité

Dans la partie (3), vous pouvez consulter des informations un peu plus détaillées sur chaque montant de fonctionnalité. ③.png

Par exemple, en plus des informations de ②, le contenu suivant s'affiche.

C'est normal ici. ** La liste par ordre décroissant de valeur ** ne peut être vue que dans le top 5 du profilage pandas, donc si vous voulez en voir un peu plus ou s'il y a 5 valeurs aberrantes ou plus, Sweetviz est efficace. Cependant, après tout, il était également affiché dans ②

On dirait les ** avantages de l'utilisation de Sweetviz **.

Exemple d'implémentation

Le code et la sortie html de Sweetviz sont placés dans le git suivant. Vous pouvez simplement regarder le html, et il est assez facile de déplacer le code. https://github.com/yuomori0127/sweetviz_titanic

La formule est ci-dessous. Sweetviz

3. Exemple d'exécution du profilage pandas

Nous examinerons également ** pandas-profiling **, une bibliothèque pour le même EDA. L'exemple d'implémentation Titanic de ** pandas-profiling ** est publié sur colab.

https://colab.research.google.com/github/pandas-profiling/pandas-profiling/blob/master/examples/titanic/titanic.ipynb

pandas.png

Je pense que c'est plus que suffisant, car cela vous donnera simplement en entrant les données. Ou plutôt, je l'ai beaucoup utilisé.

Les avantages du profilage des pandas que Sweetviz n'a pas ** Il suggère des variables explicatives à supprimer lors du prétraitement des données **. recommend.png Comme le montre la figure

--Beaucoup de cardinalité (nombre de types de valeurs) --Beaucoup de valeurs manquantes --Beaucoup de zéros

Etc. ** Suggérer des variables explicatives à supprimer lors du prétraitement des données **. C'est une fonction très pratique que Sweetviz n'ait pas à suggérer sans avoir à regarder le diagramme et la distribution et à dessiner le seuil par vous-même.

La formule est la suivante. pandas-profiling

4. Comparaison de Sweetviz et du profilage des pandas

J'ai fait un tableau de comparaison de Sweetviz et de pandas-profiling.

Il a à la fois les fonctions de base de l'EDA, Les détails sont un peu différents. De plus, je ne peux pas lister toutes les fonctionnalités, donc j'en ai extrait pas mal.

# Éléments de comparaison Sweetviz pandas-profiling
1 Affichage de la distribution
2 Affichage des statistiques de base
3 Affichage du taux de perte
4 Affichage du coefficient de corrélation
5 Affichage des données par ordre de fréquence
6 Affichage des données par ordre de valeur △(Seulement 5)
7 Affichage du taux positif ×
8 Comparaison des données d'entraînement et des données d'inférence ×
9 Suggérer des variables explicatives à supprimer ×

5. Lequel dois-je utiliser?

Personnellement, je recommande ** Sweetviz **.

Après tout, ** «Afficher le taux positif» ** et ** «Comparaison des données d'entraînement et des données d'inférence» ** sont très pratiques. L'avantage du profilage pandas est ** "Suggestion de variables explicatives à supprimer" **, Bien sûr, c'est une fonctionnalité intéressante, mais ** il est impossible de ne pas voir les données après tout, et de ne pas y penser **, et je ne sais pas si la proposition est valide, donc je n'y fais pas référence après tout. Cependant, je suis reconnaissant du ** potentiel de prévention des oublis **.

Il est difficile de décider de la supériorité ou de l'infériorité, mais les deux sont faciles à déplacer, alors essayez les deux et utilisez celui qui vous convient!

Recommended Posts

[EDA] Introduction de Sweetviz (comparaison avec + pandas-profiling)
Introduction facile de la reconnaissance vocale avec Python
Complétez tout avec Jupyter ~ Introduction de nbdev ~
Comparaison de la vitesse de transposition de la matrice par Python
Introduction de scikit-Optimize
Comparaison des performances du détecteur de visage avec Python + OpenCV
Introduction de PyGMT
Introduction de Python
Jouez avec l'implémentation de l'interface utilisateur de Pythonista 3 [Super Super Primer]
[Chapitre 6] Introduction à scicit-learn avec 100 coups de traitement du langage
[Chapitre 3] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 2] Introduction à Python avec 100 coups de traitement du langage
Comparaison de CoffeeScript avec la grammaire JavaScript, Python et Ruby
[Chapitre 4] Introduction à Python avec 100 coups de traitement du langage
Introduction de trac (Windows + trac 1.0.10)
Introduction de ferenOS 1 (installation)
Comparaison des implémentations LDA
Comparaison des classificateurs en ligne
Introduction du wrapper Virtualenv
Comparaison des programmes d'adaptation
[Raspi4; Introduction au son] Enregistrement stable de l'entrée sonore avec python ♪