ANALYSE EXPLORATOIRE DE DONNÉES (EDA) AVEC PYTHON : DÉCOUVRIR DES APERÇUS À PARTIR DES DONNÉES.
INTRODUCTION
L'analyse exploratoire des données (EDA) est cruciale dans l'analyse des données, car elle permet aux analystes de découvrir des informations et de préparer les données pour une modélisation ultérieure. Dans cet article, nous aborderons diverses techniques et outils EDA disponibles en Python, pour améliorer votre compréhension des données. Du nettoyage/traitement de votre ensemble de données à la visualisation de vos résultats et à l'utilisation de Python pour raconter des histoires avec des données.
Qu'est-ce que l'analyse exploratoire des données ?
L'analyse exploratoire des données (EDA) est une méthode d'analyse d'ensembles de données pour comprendre leurs principales caractéristiques. Cela implique de résumer les caractéristiques des données, de détecter des modèles et de découvrir des relations grâce à des techniques visuelles et statistiques. EDA aide à obtenir des informations et à formuler des hypothèses pour une analyse plus approfondie.
L'analyse exploratoire des données (EDA) en Python utilise diverses techniques essentielles pour découvrir des informations à partir des données. L'une des techniques fondamentales implique la visualisation de données à l'aide de bibliothèques telles que Matplotlib et Seaborn. Ces outils permettent aux data scientists de créer différents types de tracés, notamment des nuages de points, des histogrammes et des diagrammes en boîte, qui sont essentiels pour comprendre la distribution et les relations au sein des ensembles de données.
En visualisant les données, les analystes peuvent identifier les tendances, les valeurs aberrantes et les modèles qui peuvent ne pas être évidents par la seule analyse numérique.
Une autre technique cruciale dans l'EDA est le nettoyage et la manipulation des données, principalement facilitées par la bibliothèque Pandas. Cela implique de traiter des ensembles de données en gérant les valeurs manquantes, en filtrant les données et en utilisant des fonctions d'agrégation pour résumer les informations. L'application de fonctions telles que « groupby » permet aux utilisateurs de segmenter les données en catégories significatives, facilitant ainsi une analyse plus claire. De plus, l'intégration de méthodes statistiques telles que l'analyse de corrélation permet de mieux comprendre les relations entre les variables, aidant ainsi à formuler des hypothèses qui peuvent être testées dans une analyse plus structurée.
COMMENT RÉALISER UNE EDA À L'AIDE DE PYTHON
Étape 1 : Importer des bibliothèques Python
La première étape du ML utilisant Python consiste à comprendre et à jouer avec nos données à l'aide de bibliothèques. Vous pouvez utiliser ce lien pour obtenir un ensemble de données sur le site Kaggle : https://www.kaggle.com/datasets/sukhmanibedi/cars4u
Importez toutes les bibliothèques requises pour notre analyse, telles que celles pour le chargement des données, l'analyse statistique, les visualisations, les transformations de données, ainsi que la fusion et la jointure.
Pandas et Numpy ont été utilisés pour la manipulation de données et les calculs numériques
Matplotlib et Seaborn ont été utilisés pour les visualisations de données.
CODE :
importer des pandas en tant que pd
importer numpy en tant que np
importer matplotlib.pyplot en tant que plt
importer Seaborn en tant que Sns
Pour ignorer les avertissements
importer des avertissements
warns.filterwarnings('ignore')
ÉTAPE 2 : LECTURE DE L'ENSEMBLE DE DONNÉES
La bibliothèque python Pandas offre un large éventail de possibilités pour charger des données dans le DataFrame pandas à partir de fichiers tels que des images, .csv, .xlsx, .sql, .pickle, .html, .txt, etc.
La plupart des données sont disponibles sous forme de tableau de fichiers CSV. C'est tendance et facile d'accès. À l'aide de la fonction read_csv(), les données peuvent être converties en un DataFrame pandas.
Dans cet article, les données permettant de prédire le prix des voitures d'occasion sont utilisées à titre d'exemple. Dans cet ensemble de données, nous essayons d’analyser le prix de la voiture d’occasion et la manière dont l’EDA se concentre sur l’identification des facteurs influençant le prix de la voiture. Nous avons stocké les données dans les données DataFrame.
data = pd.read_csv("used_cars.csv")
ANALYSE DES DONNÉES
Avant de faire des déductions, nous écoutons nos données en examinant toutes les variables des données.
L'objectif principal de la compréhension des données est d'obtenir des informations générales sur les données, qui couvrent le nombre de lignes et de colonnes, les valeurs dans les données, les types de données et les valeurs manquantes dans l'ensemble de données.
forme – la forme affichera le nombre d'observations (lignes) et d'entités (colonnes) dans l'ensemble de données
Il y a 7253 observations et 14 variables dans notre ensemble de données
head() affichera les 5 principales observations de l'ensemble de données
data.head()
tail() affichera les 5 dernières observations de l'ensemble de données
data.tail()
info() aide à comprendre le type de données et les informations sur les données, y compris le nombre d'enregistrements dans chaque colonne, les données nulles ou non nulles, le type de données, l'utilisation de la mémoire de l'ensemble de données
data.info()
data.info() montre que les variables Kilométrage, Moteur, Puissance, Sièges, Nouveau prix et Prix ont des valeurs manquantes. Les variables numériques comme le kilométrage, la puissance sont du type de données ; float64 et int64. Les variables catégorielles telles que Location, Fuel_Type, Transmission et Owner Type sont de type de données objet.
VÉRIFIER LA DUPLICATION
nunique() sur la base de plusieurs valeurs uniques dans chaque colonne et de la description des données, nous pouvons identifier les colonnes continues et catégorielles dans les données. Les données dupliquées peuvent être traitées ou supprimées sur la base d'une analyse plus approfondie.
data.nunique()
https://www.analyticsvidhya.com/blog/2022/07/step-by-step-exploratory-data-analysis-eda-using-python/
Calcul des valeurs manquantes
isnull() est largement présent dans toutes les étapes de prétraitement pour identifier les valeurs nulles dans les données
Dans notre exemple, data.isnull().sum() est utilisé pour obtenir le nombre d'enregistrements manquants dans chaque colonne
data.isnull().sum()
Le code ci-dessous permet de calculer le pourcentage de valeurs manquantes dans chaque colonne
(data.isnull().sum()/(len(data)))*100
Le pourcentage de valeurs manquantes pour les colonnes New_Price et Price est respectivement d'environ 86 % et ~17 %.
ÉTAPE 3 : RÉDUCTION DES DONNÉES
Certaines colonnes ou variables peuvent être supprimées si elles n'ajoutent pas de valeur à notre analyse.
Dans notre ensemble de données, la colonne S.No n'a que des valeurs d'ID, en supposant qu'elles n'ont aucun pouvoir prédictif pour prédire la variable dépendante.
data = data.drop(['S.No.'], axis = 1)
data.info()
Nous commençons notre ingénierie des fonctionnalités car nous devons ajouter quelques colonnes requises pour l'analyse.
Étape 4 : Ingénierie des fonctionnalités
L'ingénierie des fonctionnalités fait référence au processus d'utilisation des connaissances du domaine pour sélectionner et transformer les variables les plus pertinentes à partir de données brutes lors de la création d'un modèle prédictif à l'aide de l'apprentissage automatique ou de la modélisation statistique. L'objectif principal de l'ingénierie des fonctionnalités est de créer des données significatives à partir de données brutes.
Étape 5 : Création de fonctionnalités
Nous allons jouer avec les variables Année et Nom dans notre ensemble de données. Si nous voyons les exemples de données, la colonne « Année » indique l'année de fabrication de la voiture.
Il serait difficile de trouver l’âge de la voiture s’il est au format annuel, car l’âge de la voiture est un facteur contribuant au prix de la voiture.
Présentation d'une nouvelle colonne, « Car_Age » pour connaître l'âge de la voiture
à partir de la date d'importation datetime
date.aujourd'hui().année
data['Car_Age']=date.today().year-data['Year']
data.head()
Étant donné que les noms de voitures ne seront pas de bons indicateurs du prix dans nos données actuelles. Mais nous pouvons traiter cette colonne pour extraire des informations importantes en utilisant les noms de marque et de modèle. Divisons le nom et introduisons de nouvelles variables « Marque » et « Modèle »
data['Marque'] = data.Name.str.split().str.get(0)
data['Modèle'] = data.Name.str.split().str.get(1) data.Name.str.split().str.get(2)
data[['Nom','Marque','Modèle']]
ÉTAPE 6 : NETTOYAGE/CONFÉRENCE DES DONNÉES
Certains noms de variables ne sont pas pertinents et difficiles à comprendre. Certaines données peuvent comporter des erreurs de saisie et certaines variables peuvent nécessiter une conversion de type de données. Nous devons résoudre ce problème dans les données.
Dans l'exemple, le nom de marque « Isuzu », « ISUZU », « Mini » et « Land » semble incorrect.
Cela doit être corrigé
imprimer(data.Brand.unique())
print(data.Brand.nunique())
recherche = ['Isuzu','ISUZU','Mini','Land']
data[data.Brand.str.contains('|'.join(searchfor))].head(5)
data["Marque"].replace({"ISUZU": "Isuzu", "Mini": "Mini Cooper","Land":"Land Rover"}, inplace=True)
Nous avons effectué l'analyse fondamentale des données, la mise en vedette et le nettoyage des données.
Passons au processus EDA
En savoir plus sur les principes fondamentaux de l'analyse exploratoire des données : https://www.analyticsvidhya.com/blog/2021/11/fundamentals-of-exploratory-data-analysis/
ÉTAPE 7 : ANALYSE EXPLORATOIRE DES DONNÉES EDA
L'analyse exploratoire des données fait référence au processus crucial consistant à effectuer des investigations initiales sur les données pour découvrir des modèles permettant de vérifier les hypothèses à l'aide de statistiques récapitulatives et de représentations graphiques.
• L'EDA peut être exploitée pour vérifier les valeurs aberrantes, les modèles et les tendances dans les données fournies.
• EDA aide à trouver des modèles significatifs dans les données.
• EDA fournit des informations approfondies sur les ensembles de données pour résoudre nos problèmes commerciaux.
• EDA donne un indice pour imputer les valeurs manquantes dans l'ensemble de données
ÉTAPE 8 : RÉSUMÉ DES STATISTIQUES
Les informations donnent une description rapide et simple des données.
Peut inclure le nombre, la moyenne, l'écart type, la médiane, le mode, la valeur minimale, la valeur maximale, la plage, l'écart type, etc.
Le résumé des statistiques donne une idée générale pour identifier si les données présentent des valeurs aberrantes, une erreur de saisie de données, une distribution des données telle que les données sont normalement distribuées ou asymétriques gauche/droite
En python, cela peut être réalisé en utilisant décrire()
La fonction décrire() donne un résumé de toutes les statistiques des données
décrire() ; Fournir un résumé statistique des données appartenant à un type de données numérique tel que int, float
data.describe().T
À partir du résumé des statistiques, nous pouvons déduire les résultats ci-dessous :
• Les années vont de 1996 à 2019 et ont une fourchette élevée qui montre que les voitures d'occasion contiennent à la fois les derniers modèles et les anciens modèles de voitures.
• En moyenne, les kilomètres parcourus par les voitures d'occasion représentent environ 58 000 km. La plage montre une énorme différence entre min et max, car les valeurs maximales montrent que 650 000 KM montrent la preuve d'une valeur aberrante. Cet enregistrement peut être supprimé.
• La valeur minimale du kilométrage indique que 0 voiture ne sera pas vendue avec 0 kilométrage. Cela ressemble à un problème de saisie de données.
• Il semble que Engine et Power présentent des valeurs aberrantes, et les données sont asymétriques à droite.
• Le nombre moyen de sièges dans une voiture est de 5. Le siège auto est un élément important dans la contribution au prix.
• Le prix maximum d'une voiture d'occasion est de 160 000, ce qui est assez bizarre, un prix si élevé pour une voiture d'occasion. Il peut y avoir une valeur aberrante ou un problème de saisie de données.
describe(include='all') fournit un résumé statistique de toutes les données, inclut l'objet, la catégorie, etc.
data.describe(include='all')
Avant de faire EDA, séparons les variables numériques et catégorielles pour une analyse facile
cat_cols=data.select_dtypes(include=['object']).columns
num_cols = data.select_dtypes(include=np.number).columns.tolist()
print("Variables catégorielles :")
imprimer(cat_cols)
print("Variables numériques :")
imprimer(num_cols)
Lisez également l'article Écart type dans Excel et Sheets https://www.analyticsvidhya.com/blog/2024/06/standard-deviation-in-excel/
ÉTAPE 9 : ANALYSE UNIVARIÉE EDA
Analyser/visualiser l'ensemble de données en prenant une variable à la fois :
La visualisation des données est essentielle ; nous devons décider quels graphiques tracer pour mieux comprendre les données. Dans cet article, nous visualisons nos données à l'aide des bibliothèques Matplotlib et Seaborn.
Matplotlib est une bibliothèque de traçage Python 2D utilisée pour dessiner des graphiques de base..
Seaborn est également une bibliothèque Python construite sur Matplotlib qui utilise de courtes lignes de code pour créer et styliser des tracés statistiques à partir de Pandas et Numpy
L'analyse univariée peut être effectuée pour les variables catégorielles et numériques.
Les variables catégorielles peuvent être visualisées à l'aide d'un graphique de comptage, d'un graphique à barres, d'un graphique à secteurs, etc.
Les variables numériques peuvent être visualisées à l'aide d'un histogramme, d'un diagramme en boîte, d'un diagramme de densité, etc.
Dans notre exemple, nous avons effectué une analyse univariée en utilisant un histogramme et un box Plot pour les variables continues.
Dans la figure ci-dessous, un histogramme et un diagramme en boîte sont utilisés pour montrer le modèle des variables, car certaines variables présentent une asymétrie et des valeurs aberrantes.
pour col dans num_cols :
imprimer(col)
print('Skew :', round(data[col].skew(), 2))
plt.figure(figsize = (15, 4))
plt.subplot(1, 2, 1)
data[col].hist(grid=False)
plt.ylabel('count')
plt.subplot(1, 2, 2)
sns.boxplot(x=data[col])
plt.show()
Le prix et les kilomètres parcourus sont correctement asymétriques pour que ces données soient transformées, et toutes les valeurs aberrantes seront traitées lors de l'imputation, les variables catégorielles sont visualisées à l'aide d'un tracé de comptage. Les variables catégorielles fournissent un schéma de facteurs influençant le prix de la voiture.
fig, axes = plt.subplots(3, 2, figsize = (18, 18))
fig.suptitle('Tracé à barres pour toutes les variables catégorielles de l'ensemble de données')
sns.countplot(ax = axes[0, 0], x = 'Fuel_Type', data = data, color = 'blue',
order = data['Fuel_Type'].value_counts().index);
sns.countplot(ax = axes[0, 1], x = 'Transmission', data = data, color = 'blue',
order = data['Transmission'].value_counts().index);
sns.countplot(ax = axes[1, 0], x = 'Owner_Type', data = data, color = 'blue',
order = data['Owner_Type'].value_counts().index);
sns.countplot(ax = axes[1, 1], x = 'Emplacement', data = data, color = 'blue',
order = data['Location'].value_counts().index);
sns.countplot(ax = axes[2, 0], x = 'Marque', data = data, color = 'blue',
order = data['Marque'].head(20).value_counts().index);
sns.countplot(ax = axes[2, 1], x = 'Modèle', data = data, color = 'blue',
order = data['Model'].head(20).value_counts().index);
axes[1][1].tick_params(labelrotation=45);
axes[2][0].tick_params(labelrotation=90);
axes[2][1].tick_params(labelrotation=90);
À partir du graphique de comptage, nous pouvons avoir les observations ci-dessous
• Mumbai compte le plus grand nombre de voitures disponibles à l'achat, suivie par Hyderabad et Coimbatore
• ~ 53 % des voitures ont un type de carburant diesel, ce qui montre que les voitures diesel offrent des performances plus élevées
• ~72 % des voitures sont équipées d'une transmission manuelle
• ~82 % des voitures sont des voitures appartenant en premier. Cela montre que la plupart des acheteurs préfèrent acheter des voitures de premier propriétaire
• ~20% des voitures appartiennent à la marque Maruti suivi de 19% des voitures appartenant à Hyundai
• WagonR se classe au premier rang parmi tous les modèles disponibles à l'achat.
CONCLUSION :
L'analyse exploratoire des données (EDA) révèle des informations et des connaissances à partir d'ensembles de données en détectant les valeurs aberrantes, les modèles clés et les relations entre les variables. Il s’agit de collecter, nettoyer et transformer les données pour dévoiler leurs attributs.
Bonne lecture et explorons ensemble l’avenir de la science des données…
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!