Aller au contenu
Apprendre.
  • M1 · toutes les matières15 matières : Préparation de données, API & sécurité, CI/CD, Docker, Merise, Dataviz, KNIME, ML appliqué : projet LoL, SQL & UML, SQL avancé, Machine Learning, Git, IA frugale & responsable, Qualité des données, MathématiquesAnnée
  • M2 · toutes les matières4 matières : Deep Learning, AI Act, Comex & Fundraising, Gouvernance & DataMeshAnnée
  • Deep LearningM2 · 4 modules · Réseaux de neurones, CNN, texte, modèles génératifs.Matière
  • Préparation de donnéesM1 · 3 modules · Nettoyer, transformer et fusionner des données avec Python.Matière
  • API & sécuritéM1 · 2 modules · Consommer, concevoir et sécuriser des API.Matière
  • CI/CDM1 · 1 module · Intégration et livraison continues.Matière
  • DockerM1 · 3 modules · Conteneurs, images, volumes, réseaux, Compose.Matière
  • MeriseM1 · 2 modules · Modéliser une base : MCD, MLD, MPD.Matière
  • DatavizM1 · 2 modules · Visualiser pour comprendre et décider.Matière
  • KNIMEM1 · 1 module · Explorer et nettoyer des données en workflow.Matière
  • ML appliqué : projet LoLM1 · 2 modules · Du besoin métier au POC de vision par ordinateur.Matière
  • SQL & UMLM1 · 3 modules · Modèles UML et requêtes SQL.Matière
  • SQL avancéM1 · 3 modules · Jointures, fenêtres, CTE, optimisation.Matière
  • Machine LearningM1 · 3 modules · Régression, classification, segmentation, projet.Matière

↑↓ naviguer↵ ouvre le résultat en surbrillanceesc fermer

Partie 2 · Imputation

Remplacer les valeurs manquantes (imputation)

L'imputation remplace les manquants avec .fillna(). Quatre familles :

MéthodeQuand ?
Constante (0, 'Inconnu')valeur de repli explicite
Moyenne .mean()distribution numérique équilibrée (sensible aux extrêmes)
Médiane .median()distribution avec valeurs extrêmes
Mode .mode()[0]variables catégorielles ou discrètes
Séquentielle (ffill, bfill)séries temporelles : valeur précédente / suivante

Attention au type : remplir une colonne numérique avec la chaîne 'Valeur manquante' la transforme en colonne de type object (mélange de nombres et de texte) (question du TP).

Vérifie que tu as compris

Une colonne numérique contient quelques valeurs très extrêmes. Quelle imputation est plus robuste ?

Vérifie que tu as compris

Quelle imputation convient à une colonne catégorielle comme la ville ?

À toi de coder

Médiane et mode

Remplace les manquants de la colonne C par la médiane des valeurs présentes, et ceux de la colonne B par le mode (valeur la plus fréquente). Calcule d'abord sur les valeurs présentes : un None ne doit pas entrer dans la statistique.

Ctrl/⌘+Entrée

Propager : ffill et bfill

Pour des mesures dans le temps, on peut reporter la dernière valeur connue (ffill, forward fill) ou la suivante (bfill). Le ffill ne peut rien faire pour un manquant en tout début de série (aucune valeur précédente).

def ffill(valeurs):
    sortie, derniere = [], None
    for v in valeurs:
        derniere = v if v is not None else derniere
        sortie.append(derniere)
    return sortie
ffill([None, 4, None, None, 7])   # [None, 4, 4, 4, 7]

Choisir

  • Colonne presque entièrement vide : la supprimer.
  • Peu de manquants : les remplacer.
  • Toujours se demander ce que la valeur choisie fait à la distribution.

Vérifie que tu as compris

Que donne ffill sur [None, 4, None, 7] ?

À toi de coder

Propager la dernière valeur connue

Un capteur envoie des relevés avec des trous (None). Écris ffill (reporter la dernière valeur connue) puis applique-la. Le premier trou, avant toute mesure, doit rester None : on n'invente pas de valeur.

Ctrl/⌘+Entrée