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 1 · Mesurer

La validité : formats, bornes et unités

La validité demande : « les valeurs respectent-elles le format attendu ? » Exemples du cours : code postal, GPS, puissance. On l'évalue en confrontant chaque colonne à une règle : motif (regex), intervalle, liste de valeurs autorisées.

Sur l'IRVE, le TP relève 6 257 puissances aberrantes (≤ 0 ou > 1000 kW). Attention : certaines ne sont pas de simples erreurs, mais une erreur d'unité : on mélange des W et des kW (11 contre 11000). Un simple filtre supprimerait des données réparables.

Vérifie que tu as compris

Une puissance de 11000 dans une colonne en kW, alors que d'autres valent 11, évoque surtout :

À toi de coder

Compter les puissances aberrantes

Le TP compte 6 257 puissances aberrantes : celles qui sont ≤ 0 ou > 1000 kW. Écris nb_aberrantes(puissances) qui renvoie combien de valeurs sont dans ce cas. Une valeur None n'est pas comptée ici (c'est un problème de complétude).

Ctrl/⌘+Entrée

Pour les formats textuels, le module re de Python est l'outil. Pour qu'un motif décrive toute la chaîne, utilise re.fullmatch (et non re.search, qui accepte un motif trouvé n'importe où).

MotifSensExemple valide
\d{5}exactement 5 chiffres75001
[A-Z]{2}\d{3}2 majuscules puis 3 chiffresFR123
\d{4}-\d{2}-\d{2}date ISO2024-03-02

Les motifs du tableau sont des exemples ajoutés pour s'entraîner. Le TP demande, dans la suite de validations, une regex sur le code postal.

À toi de coder

Valider un code postal avec une regex

La validité vérifie le format attendu. Un code postal français s'écrit avec exactement 5 chiffres. Écris cp_valide(s) qui renvoie True si la chaîne s est composée de 5 chiffres, rien d'autre (utilise re.fullmatch).

Ctrl/⌘+Entrée

Vérifie que tu as compris

Pourquoi préférer re.fullmatch(r'\d{5}', s) à re.search(r'\d{5}', s) pour valider un code postal ?

La validité est aussi une affaire d'unités et de coordonnées. Une latitude doit être entre -90 et 90, mais pour la France métropolitaine il faut une boîte beaucoup plus serrée. Une coordonnée peut être formellement valide (un nombre entre -90 et 90) tout en étant fausse (0, 0) : c'est le passage de la validité à l'exactitude.

Retiens : une donnée valide n'est pas forcément exacte. Le code postal 12345 respecte le format sans désigner forcément une commune réelle.

À toi de coder

Un GPS plausible pour la France métropolitaine

Les coordonnées doivent être valides et plausibles (le TP signale des points à (0,0), dans le golfe de Guinée, ou en mer). Écris gps_plausible(lon, lat) : True si -5.5 <= lon <= 10 et 41 <= lat <= 51.5. Ces bornes sont une boîte approximative de la France métropolitaine (exemple ajouté, non fournie par le cours).

Ctrl/⌘+Entrée

À toi de coder

Corriger une erreur d'unité W / kW

Piège du TP : les puissances aberrantes mélangent des W et des kW (11 vs 11000). C'est une erreur d'unité à détecter, pas juste un filtre. Écris corriger_unite(puissances) : toute valeur strictement supérieure à 1000 est supposée en W et divisée par 1000 ; les autres restent telles quelles. (Le seuil 1000 vient de la définition d'aberrant du TP ; la règle de conversion est un exemple ajouté.)

Ctrl/⌘+Entrée