Comment comparer 2 ensembles de données avec le profilage Pandas
La visualisation est la pierre angulaire de l'EDA. Face à un nouvel ensemble de données inconnu, l'inspection visuelle nous permet d'avoir une idée des informations disponibles, de dessiner des modèles concernant les données et de diagnostiquer plusieurs problèmes que nous pourrions avoir besoin de résoudre. À cet égard, Pandas Profiling a été le couteau suisse indispensable dans la ceinture à outils de tout data scientist. Dans mes articles précédents, j'ai mentionné comment le profilage des pandas peut être utile lors de l'exécution d'EDA de séries chronologiques , mais que se passerait-il si nous pouvions comparer deux ensembles de données ?
Combien d'entre nous ont commencé le développement d'un projet de science des données et ont du mal à comprendre ce que nous tirons de nos transformations de données et de notre ingénierie ?
Et c'est exactement ce que je vais couvrir dans l'article de blog d'aujourd'hui - comment tirer parti de la plus célèbre ligne de code EDA pour dynamiser le processus de développement de la science des données et l'amélioration de la qualité des données. Je vais vous expliquer comment tirer parti de la fonctionnalité de rapport de comparaison Pandas-Profiling pour dynamiser votre processus EDA et illustrer son potentiel à produire des transformations plus rapides et plus intelligentes sur nos données.
L'ensemble de données utilisé dans cet article se trouve dans Kaggle, l'ensemble de données HCC de Miriam Santos (Licence : CC0 : domaine public ). Pour ce cas d'utilisation particulier, j'ai artificiellement introduit quelques problèmes supplémentaires de qualité des données pour vous montrer comment la visualisation peut nous aider à les détecter et nous guider vers leur atténuation efficace. Tout le code et les exemples sont disponibles sur GitHub et au cas où vous auriez besoin d'un petit rappel, assurez-vous de consulter ce blog pour dépoussiérer vos compétences en matière de profilage de pandas. Alors, poursuivons avec notre cas d'utilisation !
Profilage Pandas : EDA à portée de main
Nous commencerons par dresser le profil de l'ensemble de données HCC et étudier les problèmes de qualité des données suggérés dans le rapport :
pip install pandas-profiling==3.5.0
Alerts shown in Pandas Profiling Report (scheenshot by author)
- Doublons : 4 lignes en double dans les données ;
- Constante : Valeur constante « 999 » dans 'O2' ;
- Corrélation élevée : plusieurs caractéristiques marquées comme fortement corrélées ;
- Manquant : Valeurs manquantes dans 'Ferritine'.
Suppression des lignes en double : Selon la nature du domaine, il peut y avoir des enregistrements qui ont les mêmes valeurs sans que cela ne soit une erreur. Cependant, étant donné que certaines des caractéristiques de cet ensemble de données sont assez spécifiques et se réfèrent aux mesures biologiques d'un individu (par exemple, "Hémoglobine", "MCV", "Albumine"), il est peu probable que plusieurs patients rapportent les mêmes valeurs exactes pour toutes les caractéristiques. . Commençons par supprimer ces doublons des données :
Suppression des éléments non pertinents : les valeurs constantes d'O2 reflètent également une véritable incohérence dans les données et ne semblent pas contenir d'informations précieuses pour le développement du modèle. Dans des scénarios de cas d'utilisation réels, ce serait une bonne norme d'itérer avec un domaine ou un expert métier, mais pour les besoins de cet exemple de cas d'utilisation, nous allons continuer et les supprimer de l'analyse :
Imputation des données manquantes : l'ensemble de données HCC semble également extrêmement sensible aux données manquantes. Un moyen simple de résoudre ce problème (en évitant de supprimer des enregistrements incomplets ou des entités entières) consiste à recourir à l'imputation des données. Nous utiliserons l'imputation moyenne pour remplir les observations absentes, car il s'agit de la technique d'imputation statistique la plus courante et la plus simple et sert souvent de méthode de référence :
Comparaison côte à côte : des itérations plus rapides et plus intelligentes sur vos données
Maintenant pour la partie amusante ! Après avoir mis en œuvre le premier lot de transformations de notre ensemble de données, nous sommes prêts à évaluer leur impact sur la qualité globale de nos données. C'est là que la fonctionnalité de rapport de comparaison de profilage pandas est utile. Le code ci-dessous explique comment démarrer :
Voici comment les deux rapports sont affichés dans la comparaison :
Que pouvons-nous comprendre tout de suite à partir de notre aperçu de l'ensemble de données ? L'ensemble de données transformé contient une caractéristique catégorique de moins ("O2" a été supprimé), 165 observations (par rapport aux 171 d'origine contenant des doublons) et aucune valeur manquante (contrairement aux 79 observations manquantes dans l'ensemble de données d'origine).
Mais comment ces transformations ont-elles impacté la qualité de nos données ? Et à quel point ces décisions étaient-elles bonnes?
Plongeons profondément dans cela. En ce qui concerne les enregistrements en double, il n'y a eu aucun impact particulier en ce qui concerne les distributions de variables et les modèles d'ensembles de données après la suppression. L'imputation des valeurs manquantes qui a été effectuée est une autre histoire.
Comme prévu, il n'y a pas d'observations manquantes après l'imputation des données. Notez comment le nombre de nullités et la matrice montrent les différences entre les deux versions des données : dans les données transformées, "Ferritin" a maintenant 165 valeurs complètes, et aucun blanc ne peut être trouvé dans la matrice de nullité.
Cependant, nous pouvons déduire autre chose du rapport de comparaison. Si nous devions inspecter l'histogramme "Ferritine", nous verrions comment l'imputation des valeurs avec la moyenne a déformé la distribution des données d'origine, ce qui n'est pas souhaitable.
Ceci est également observé à travers la visualisation des interactions et des corrélations, où des modèles d'interaction stupides et des valeurs de corrélation plus élevées émergent dans la relation entre la "ferritine" et les caractéristiques restantes.
Cela montre que le rapport de comparaison n'est pas seulement utile pour mettre en évidence les différences introduites après les transformations de données, mais qu'il fournit plusieurs repères visuels qui nous conduisent vers des informations importantes concernant ces transformations : dans ce cas, une stratégie d'imputation de données plus spécialisée doit être envisagée. .
Dernières pensées
Tout au long de ce petit cas d'utilisation, nous avons couvert l'utilité de comparer deux ensembles de données dans le même rapport de profilage pour mettre en évidence les transformations de données effectuées lors de l'EDA et évaluer leur impact sur la qualité des données.
Néanmoins, les applications de cette fonctionnalité sont infinies, car la nécessité de (ré)itérer sur l'évaluation des fonctionnalités et l'inspection visuelle est vitale pour les solutions centrées sur les données . De la comparaison des distributions d' entraînement , de validation et d'ensembles de test ou du contrôle de la qualité des données à des cas d'utilisation plus avancés tels que le processus de génération de données synthétiques .
Fabiana Clemente , CDO chez YData
Accélérer l'IA avec des données améliorées.