flowchart LR
A[Données avec Outliers ?] -->|Oui| B(Utiliser la Médiane)
A -->|Non| C(Utiliser la Moyenne)
B --> D{Coût en RAM/CPU}
D -.->|ĂlevĂ©| E[NĂ©cessite un Tri complet]
C --> F{Coût en RAM/CPU}
F -.->|Faible| G[Opération SIMD directe]
style A fill:#cb4b16,stroke:#073642,color:#fdf6e3
style B fill:#859900,stroke:#073642,color:#fdf6e3
style C fill:#859900,stroke:#073642,color:#fdf6e3
3 đ Analyse Exploratoire des DonnĂ©es (EDA)
3.1 đ Statistiques Descriptives
LâEDA nâest pas quâun graphique
Dans lâĂ©cosystĂšme analytique de 2026, lâAnalyse Exploratoire des DonnĂ©es (EDA) nâest plus une simple Ă©tape visuelle : câest une discipline dâingĂ©nierie rigoureuse. Câest la phase critique de validation de lâintĂ©gritĂ© structurelle de vos donnĂ©es avant de dĂ©ployer le moindre algorithme IA. La premiĂšre Ă©tape consiste Ă prendre le âpoulsâ de vos variables grĂące aux statistiques descriptives.
Lâanalyse univariĂ©e (lâĂ©tude dâune seule variable Ă la fois) constitue le premier rempart contre les donnĂ©es chaotiques.
3.1.1 đŻ Tendance Centrale
Lâobjectif est de trouver la valeur qui rĂ©sume le mieux lâensemble des donnĂ©es. Lâarbitrage classique se fait entre la moyenne et la mĂ©diane.
- La Moyenne (Mean) : Câest la somme de toutes les valeurs divisĂ©e par leur nombre total. Si elle est mathĂ©matiquement Ă©lĂ©gante, elle est structurellement trĂšs vulnĂ©rable aux valeurs aberrantes (Outliers) en raison de sa dĂ©pendance Ă chaque point de donnĂ©es.
- La MĂ©diane (Median) : Câest la valeur centrale une fois les donnĂ©es triĂ©es (elle coupe le jeu en deux moitiĂ©s de 50%). Elle offre une robustesse statistique bien supĂ©rieure face aux valeurs extrĂȘmes.
- Attention Architecturale : Le calcul de la mĂ©diane est beaucoup plus coĂ»teux en ressources CPU, car il nĂ©cessite dâeffectuer une opĂ©ration de tri (Sort) sur des millions de lignes.
- Le Mode : Représente la valeur la plus fréquente, trÚs utile pour les variables textuelles/catégorielles.
3.1.2 đ Dispersion
Savoir oĂč est le centre ne suffit pas ; il faut savoir si les donnĂ©es sont trĂšs resserrĂ©es autour de ce centre ou au contraire trĂšs Ă©talĂ©es.
- La Variance et lâĂcart-type (Standard Deviation) : Ces mesures Ă©valuent la fluctuation des donnĂ©es autour de la moyenne (\mu). Un Ă©cart-type (\sigma) Ă©levĂ© indique une forte volatilitĂ© des donnĂ©es.
- Quartiles et Percentiles : Ils divisent lâensemble de donnĂ©es en sections de taille Ă©gale (les quartiles divisent en 4 blocs de 25%). Ils sont Ă la base des graphiques âBoĂźtes Ă moustachesâ (Boxplots) pour dĂ©tecter visuellement les valeurs aberrantes.
3.1.3 âïž PrĂ©cision NumĂ©rique
En tant quâingĂ©nieur, vous devez savoir que les statistiques sur ordinateur sont soumises aux limites du matĂ©riel.
LâarithmĂ©tique en virgule flottante standard (IEEE 754) est notoirement non-associative : lâordre des opĂ©rations modifie les dĂ©cimales du rĂ©sultat. Pour lâIA financiĂšre, on utilise dĂ©sormais des types spĂ©cifiques comme Decimal (Ă©chelle fixe Ă©vitant les dĂ©bordements) ou Int128. LĂ oĂč le type classique Int64 est limitĂ© Ă 9 quintillions, le Int128 capture une plage 18 quintillions de fois plus large, Ă©vitant la saturation de la RAM lors de calculs dâagrĂ©gation massive.
3.1.4 đșïž Moyenne vs MĂ©diane
Pour choisir la mesure de tendance centrale la plus adaptée, vous devez évaluer la sensibilité aux valeurs aberrantes (outliers) et la complexité de calcul induite.
Ce schéma résume la stratégie de choix et son impact sur les ressources matérielles :
3.2 đ Relations et CorrĂ©lations
Le terrain de jeu des interprétations fallacieuses
Lâanalyse bivariĂ©e permet de dĂ©celer les structures cachĂ©es et les dĂ©pendances entre vos colonnes. Cependant, câest aussi le domaine oĂč les Data Scientists dĂ©butants commettent le plus dâerreurs dâinterprĂ©tation. Distinguer une simple co-occurrence statistique dâune vĂ©ritable relation causale est tout lâenjeu de cette Ă©tape.
Pour Ă©valuer la force des liens entre vos variables, la communautĂ© sâest longtemps reposĂ©e sur des matrices mathĂ©matiques classiques. Mais face Ă la complexitĂ© des donnĂ©es modernes (non-linĂ©aires, catĂ©gorielles), de nouveaux outils sont apparus.
3.2.1 đ LinĂ©aritĂ© et Rangs
- Corrélation de Pearson : Le test statistique le plus célÚbre. Il évalue le degré de dépendance linéaire exacte entre deux variables numériques continues.
- Indicateur : Il renvoie un score entre -1 (corrĂ©lation nĂ©gative parfaite) et 1 (corrĂ©lation positive parfaite). Un score de 0 indique lâabsence de corrĂ©lation linĂ©aire.
- Le PiĂšge : Il suppose une relation proportionnelle constante. Si la relation dessine une courbe (ex: une parabole en forme de U), Pearson renverra 0, vous faisant croire Ă tort quâil nây a aucun lien.
- CorrĂ©lation de Spearman : Contrairement Ă Pearson, Spearman sâappuie sur les rangs des valeurs plutĂŽt que sur les valeurs brutes.
- LâAvantage : Il est capable de capturer des relations monotones non-linĂ©aires (si X augmente, Y augmente, peu importe la vitesse) et se montre totalement insensible aux valeurs extrĂȘmes qui pollueraient une matrice de Pearson.
3.2.2 đ Coefficients AvancĂ©s
LâĂ©chec des corrĂ©lations linĂ©aires a poussĂ© lâindustrie Ă adopter des mĂ©triques agnostiques, capables de gĂ©rer le mĂ©lange de textes et de nombres.
- Predictive Power Score (PPS) : Score asymétrique de 0 à 1. Au lieu de faire des mathématiques pures, il entraßne un mini-Arbre de Décision en arriÚre-plan pour voir si la variable A permet de deviner la variable B.
- Avantage : Il détecte les relations non-linéaires.
- AsymĂ©trie : Le fait que âCode Postalâ prĂ©dise le âPrix du loyerâ ne signifie pas que le âPrix du loyerâ permet de prĂ©dire exactement un âCode Postalâ. Pearson, lui, est toujours symĂ©trique.
- Coefficient Phik (\phi_k) : Coefficient de corrĂ©lation extrĂȘmement robuste qui fonctionne de maniĂšre cohĂ©rente pour des types de variables mixtes (catĂ©gorielles, ordinales, intervalles).
3.2.3 Simulation : Les limites de Pearson
Pour bien comprendre la différence entre Pearson (linéaire) et une véritable force prédictive (non-linéaire), observez comment les scores réagissent face à différentes distributions de données.
{"component":"LlmGeneratedComponent","props":{"height":"650px","prompt":"Create an interactive scatter plot simulator to teach the limitations of Pearson Correlation. \n\nObjective: Show that a Pearson score of ~0 does not mean there is no relationship, just no LINEAR relationship.\n\nStructure:\n1. A central 2D Scatter Plot canvas showing data points.\n2. A dropdown or button group to select 'Data Patterns': \n - 'Linear Positive'\n - 'Linear Negative'\n - 'Quadratic (U-shape)'\n - 'Sine Wave'\n - 'Random Cloud'\n3. A prominent 'Scoreboard' panel displaying two metrics calculated in real-time based on the pattern:\n - 'Pearson Correlation (r)': Should be near 1 for Linear Positive, -1 for Linear Negative, and near 0 for Quadratic, Sine, and Random.\n - 'Predictive Power (Non-linear)': Should be high (>0.8) for Linear, Quadratic, and Sine, but near 0 for Random.\n\nBehavior: When the user selects 'Quadratic', explicitly highlight the fact that Pearson drops to 0 despite the clear visual relationship.","id":"im_1110e01afce77639"}}
3.2.4 âïž CorrĂ©lation nâest pas CausalitĂ©
Câest le mantra de la Data Science. Si lâEDA permet dâobserver que deux variables Ă©voluent de pair, ce lien mathĂ©matique nâimplique jamais de facto quâune variable est la cause de lâĂ©volution de lâautre.
- La variable de confusion : Par exemple, il existe une forte corrĂ©lation positive entre les ventes de crĂšmes glacĂ©es et les noyades. Est-ce que manger une glace provoque la noyade ? Non. La variable de confusion cachĂ©e est la chaleur estivale, qui provoque simultanĂ©ment lâaugmentation des deux phĂ©nomĂšnes.
- LâEDA sert de gĂ©nĂ©rateur dâhypothĂšses, qui doivent ensuite ĂȘtre validĂ©es par le mĂ©tier ou par des tests A/B.
3.3 đ§© Regroupement et Segmentation
Méfiez-vous de la moyenne globale
Calculer le salaire moyen de lâensemble dâune entreprise donne une information, mais elle masque les rĂ©alitĂ©s locales. Câest en segmentant ces donnĂ©es (ex: Salaire moyen par dĂ©partement et par niveau dâanciennetĂ©) que lâon extrait la vĂ©ritable valeur mĂ©tier. La transformation de donnĂ©es brutes en segments actionnables repose sur une mĂ©canique que tout ingĂ©nieur Data doit maĂźtriser : le Split-Apply-Combine.
3.3.1 đ§© Split-Apply-Combine
DerriĂšre la cĂ©lĂšbre fonction .groupby(), le moteur de calcul (quâil sâagisse de Pandas ou de Polars) effectue toujours trois opĂ©rations distinctes :
- Split (Diviser) : Le jeu de données original est scindé en sous-groupes selon des clés définies (ex: le genre, la ville). Cette étape repose sur des algorithmes de hachage (hashing) en mémoire.
- Apply (Appliquer) : Une fonction dâagrĂ©gation (moyenne, somme, comptage, ou mĂȘme un modĂšle IA) est exĂ©cutĂ©e indĂ©pendamment sur chaque sous-groupe.
- Combine (Recombiner) : Les résultats isolés sont réassemblés dans une nouvelle structure de données propre et unifiée.
flowchart TD
A[Données Brutes\n A:10, B:20, A:5, B:5] -->|1. Split| B(Groupe A\n 10, 5)
A -->|1. Split| C(Groupe B\n 20, 5)
B -->|2. Apply \n Somme| D[15]
C -->|2. Apply \n Somme| E[25]
D -->|3. Combine| F[Résultat Final\n A:15, B:25]
E -->|3. Combine| F
style A fill:#268bd2,stroke:#073642,color:#fdf6e3
style F fill:#859900,stroke:#073642,color:#fdf6e3
3.3.2 đïž GroupBy vs Pivot Table
Un point de friction classique pour le Data Scientist est de choisir entre .groupby().agg() et .pivot_table(). Bien quâelles produisent des rĂ©sultats similaires, leur mĂ©canique interne est fondamentalement diffĂ©rente.
- **LâimplĂ©mentation de
pivot_table**utilise souvent des boucles Python pures sous le capot pour appliquer vos fonctions, ce qui est extrĂȘmement lent. - LâimplĂ©mentation de
groupby().agg()**vĂ©rifie dâabord si une fonction optimisĂ©e en C/Cython** est disponible pour ce que vous demandez (commesumoumean). Si oui, le moteur court-circuite Python et utilise le code C compilĂ©. Sur des millions de lignes,groupbypeut ĂȘtre jusquâĂ 60 fois plus rapide.
3.3.3 âïž Ăvolutions Modernes
Face Ă lâexplosion volumĂ©trique, les bibliothĂšques ont dĂ» repenser leur comportement par dĂ©faut.
- Pandas 3.0 : Le paramĂštre
observed=Trueest devenu le standard par dĂ©faut. Si vous groupez par une catĂ©gorie existante mais absente des donnĂ©es (un âgroupe non-observĂ©â), Pandas nâinsĂšre plus de ligne vide remplie deNaN. Cela Ă©vite la saturation inutile de la RAM. - Polars : Pousse lâoptimisation encore plus loin grĂące au âMorsel-Driven Parallelismâ. Au lieu de traiter un groupe entier sur un seul cĆur, Polars dĂ©coupe les donnĂ©es en petits fragments (morsels) distribuĂ©s et calculĂ©s en parallĂšle sur tous les cĆurs CPU disponibles simultanĂ©ment.
3.4 đ”ïžââïž Mission 3
Vous arrivez en trombe sur le quai n°7. La âMouetteâ est amarrĂ©e. Sur le pont supĂ©rieur, vous repĂ©rez une caisse massive marquĂ©e dâun âCâ. Elle est verrouillĂ©e par un cadenas numĂ©rique Ă 4 chiffres.
Le capitaine du port vous transmet le manifeste des marchandises chargĂ©es aujourdâhui. ExĂ©cutez la cellule pour examiner le manifeste :
import pandas as pd
# Manifeste des marchandises du port
data_manifeste = {
'proprietaire': ['Alice', 'Bob', 'Charlie', 'Alice', 'Charlie', 'Diana', 'Charlie'],
'type_marchandise': ['Textiles', 'Electronique', 'Poissons', 'Meubles', 'Glace', 'Livres', 'Produits Chimiques'],
'poids_kg': [150, 420, 1042, 300, 2105, 50, 1000]
}
df_manifeste = pd.DataFrame(data_manifeste)
print("Manifeste récupéré avec succÚs !")
display(df_manifeste)Un docker vous glisse une information : âLe code du cadenas est toujours le poids total cumulĂ© des marchandises du propriĂ©taire.â
Votre objectif : Utiliser le regroupement de données (groupby) pour calculer le poids total des marchandises de chaque propriétaire, et déduire le code de Charlie.
3.5 đ Conclusion et Transition
Lâanalyse exploratoire nous a permis de comprendre les tendances et les corrĂ©lations au sein de nos donnĂ©es. Pour rendre ces dĂ©couvertes plus percutantes et accessibles, nous allons maintenant apprendre Ă les visualiser efficacement.
Câest ce que nous allons explorer dans le Chapitre 4 : Visualisation des DonnĂ©es.