Analyser des données avec Python, c’est simple ! L’objectif de ce tutoriel est d’examiner à partir d’un jeu de données open source d’une assurance médicale les différentes caractéristiques (âge, sexe, bmi, …) pour observer leur relation et prédire les dépenses médicales futures de chaque personne.
Nous allons travailler sur Jupyter Notebook, un bloc-notes qui vous permettra de créer et de partager des documents contenant du code Python.
Vous pouvez aussi visionner la vidéo disponible sur notre chaîne Youtube.
Premier pas avec Python
Voici un échantillon des données que nous souhaitons analyser sous Python :
Tout d’abord, nous allons commencer à présenter les différentes bibliothèques qui permettent de manipuler notre DataFrame.
Puis, nous allons importer le jeu de données dans Python et afficher les différentes informations concernant ce dernier.
Enfin, nous allons appliquer les bibliothèques importées pour visualiser les variables significatives sur les différents axes.
L’étape de visualisation est importante car elle garantit compréhension des tendances ou des valeurs inhabituelles dans les données. Le but est d’en tirer de conclusions et de prendre des décisions en s’appuyant sur les résultats des différentes visualisations.
Les bibliothèques à utiliser
Il ne s’agit pas ici de présenter toutes les API de python pour récupérer des données.
Nous allons pour cela présenter uniquement les bibliothèques très complètes :
- Numpy : est un package Python qui fournit des fonctions qui permettent de faire des calculs sur les tableaux à plusieurs dimensions.
- Pandas : Ce package fournit des fonctions qui permettent de manipuler les dataFrame.
- Matplotlib : est une librairie pour faire des graphes en 2D en utilisant les données Python. Cette librairie peut être utilisée en shells Python, IPython , en Jupyter …etc.
- Seaborn : cette bibliothèque fournit des outils qui permettent de visualiser les données Python. Cette bibliothèque est basée sur Maplotlib.
- Sklearn : est une bibliothèque open source en machine learning. Cette bibliothèque nous fournit des fonctions comme le RandomForest, Régression linéaire …etc.
Importation de bibliothèques
La première étape consiste en l’importation des bibliothèques :
Lecture du fichier CSV
Vous pouvez récupérer les données CSV et les stocker dans un DataFrame afin de les transformer.
Informations utiles sur le jeu de données
- df.shape: renvoie les dimensions du DataFrame
- df.columns: renvoie les attributs du DataFrame
- df.info(): renvoie le résumé et le type de variables du DataFrame
L’affichage des cinq premières lignes nous donne un aperçu du DataFrame
Vous pouvez ainsi rajouter une autre fonction qui nous permet d’afficher les différentes statistiques (total, moyenne, min, max …etc) de chaque variable.
Puis, il faut s’assurer que les informations de nos variables sont bien renseignées, qu’il n’existe pas de variables à valeurs manquantes.
Les fonctions isna().sum() , permettent de calculer le nombre de valeurs vides.
Le résultat indique les informations de nos variables sont bien renseignées et que nous ne nous disposons d’aucune valeur nul.
Analyses graphiques du DataFrame avec Python ?
Nous allons commencer à visualiser la variable dépendante dans une boite à moustache. C’est-à-dire, visualiser la variable qu’on veut expliquer(dépenses) dans le but d’avoir un résumé de l’indicateur (médiane, quartiles, minimum, maximum)
Comme nous le pouvons le constater, la boite nous illustre que les données sur les dépenses sont faussées à droite. C’est-à-dire qu’il existe des valeurs aberrantes.
Ci – dessous, un histogramme des dépenses totales :
Nous pouvons en déduire que les valeurs des dépenses aberrantes à droite représentent une proportion très faible. Leur retrait n’engendre donc pas une perte d’information.
Ensuite, vous pouvez afficher les variables dans une matrice de corrélation afin d’illustrer les dépendances entre le croisement de variables du DataFrame.
Les résultats de corrélation indiquent qu’il existe une forte corrélation entre (âge, dépenses) et entre(bmi,expenses).
Nous allons intéresser par la suite aux détails de chaque variable. D’abord, commencer par afficher quelques graphiques concernant la variable âge pour avoir un aperçu de la distribution d’âge de chaque sexe.
Ci – dessous, un histogramme de distribution des différents âges
Le graphique nous montre que la distribution d’âge est plus au moins équilibrée avec la forte présentation d’âges (entre 18 et 19 ans).
Ci – dessous, un histogramme qui permet d’afficher le total des personnes fumeur et non-fumeur
Ci – dessous la boite à moustache qui montre que la médiane de l’indice de masse corporelle chez les femmes est à 30 et chez les hommes est à 32. Cela veut dire que la majorité des personnes de notre jeu de données sont plus modérées.
Nuage de points grâce à Python
Par la suite, nous allons voir deux exemples de représentation graphique sous forme de nuage de point. Le but est de créer des sous – ensembles avec des différentes dimensions pour en tirer des conclusions quant aux dépendances des variables significatives pour expliquer les dépenses.
Ci – dessous, un nuage de points qui permet d’expliquer le groupe (bmi, expenses) à partir de (région et age)
Le graphique suggère que les clients habitant dans la région (southeast) ont plus tendance à dépenser davantage.
Ci – dessous, un nuage de points qui permet d’expliquer le groupe (expenses, bmi) à partir de (smoker, age)
Ce graphique suggère que les clients fumeurs ont tendance à dépenser davantage. Ce résultat est logique, car un fumeur est généralement associé à un risque plus élevé de maladie d’asthme, par exemple.
Vous pouvez également représenter d’autres nuages de points avec les différents regroupements pour mieux expliquer chaque variable présente.
Vous pouvez également visionner ce tutoriel sur notre chaîne YouTube.
Depuis plus de 15 ans maintenant, je travaille sur des sujets liés à la BI et à l’amélioration des processus. J’ai participé à un grand nombre de projets en tant que leader technique sur de nombreuses technologies. De nature pédagogue, je donne également des cours de langage de programmation.
N’hésitez pas à me faire un retour sur cet article ou à me contacter sur LinkedIn pour échanger sur ces sujets!
Alexis
Laisser un commentaire