Wiki IA
Machine Learning

Machine Learning

L'apprentissage automatique, fondement de l'IA moderne

Le Machine Learning (ML), ou apprentissage automatique, est une branche de l'IA qui permet aux machines d'apprendre à partir de données sans être explicitement programmées.

Qu'est-ce que le Machine Learning ?

Au lieu d'écrire des règles manuellement, on fournit des exemples à un algorithme qui découvre lui-même les patterns.

Programmation classique vs Machine Learning

PROGRAMMATION CLASSIQUE
Données + Règles → Programme → Résultat

MACHINE LEARNING
Données + Résultats → Algorithme → Règles apprises

Le ML inverse le paradigme : on ne dit plus à la machine comment faire, on lui montre quoi faire.

Les trois familles d'apprentissage

Apprentissage supervisé

On fournit des exemples étiquetés (entrée + réponse attendue).

Photo de chat → "chat"
Photo de chien → "chien"

Le modèle apprend à associer les entrées aux sorties.

Applications :

  • Classification d'emails (spam/non-spam)
  • Prédiction de prix
  • Diagnostic médical
  • Reconnaissance d'images

Apprentissage non supervisé

On fournit des données sans étiquettes. Le modèle découvre des structures cachées.

[Données clients] → Algorithme → [Groupes similaires]

Applications :

  • Segmentation de clientèle
  • Détection d'anomalies
  • Compression de données
  • Systèmes de recommandation

Apprentissage par renforcement

Un agent apprend par essai-erreur en interagissant avec un environnement.

Agent → Action → Environnement → Récompense/Punition

              Nouvel état

Applications :

  • Jeux vidéo (AlphaGo, OpenAI Five)
  • Robotique
  • Trading algorithmique
  • Conduite autonome

Le workflow Machine Learning

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│  1. COLLECTE    2. PRÉPARATION    3. MODÉLISATION          │
│  ─────────────  ──────────────    ─────────────            │
│  Sources        Nettoyage         Choix algorithme         │
│  APIs           Normalisation     Entraînement             │
│  Scraping       Feature eng.      Validation               │
│                                                             │
│  4. ÉVALUATION  5. DÉPLOIEMENT   6. MONITORING            │
│  ─────────────  ──────────────   ───────────              │
│  Métriques      API/Service      Performance              │
│  Tests          Intégration      Drift                    │
│  Validation     Scaling          Réentraînement           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Algorithmes courants

Supervisé

AlgorithmeTypeUsage
Régression linéaireRégressionPrédiction de valeurs continues
Régression logistiqueClassificationClassification binaire
Arbres de décisionLes deuxDécisions interprétables
Random ForestLes deuxEnsemble d'arbres, robuste
SVMClassificationSéparation optimale
k-NNLes deuxBasé sur les voisins
Gradient BoostingLes deuxXGBoost, LightGBM, très performant

Non supervisé

AlgorithmeUsage
K-MeansClustering en K groupes
DBSCANClustering basé sur la densité
PCARéduction de dimensionnalité
t-SNEVisualisation de données
AutoencodersCompression, détection d'anomalies

Feature Engineering

Le feature engineering est l'art de créer et sélectionner les bonnes variables pour le modèle.

Techniques courantes

  • Normalisation : mettre les valeurs sur la même échelle
  • Encodage : convertir les catégories en nombres
  • Création : combiner des variables existantes
  • Sélection : garder les plus pertinentes
# Exemple : créer une feature "âge" à partir de la date de naissance
df['age'] = 2024 - df['birth_year']

# Encodage one-hot
df = pd.get_dummies(df, columns=['country'])

# Normalisation
df['salary_normalized'] = (df['salary'] - df['salary'].mean()) / df['salary'].std()

Un bon feature engineering peut avoir plus d'impact que le choix de l'algorithme. "Garbage features in, garbage predictions out."

Validation et évaluation

Validation croisée (Cross-validation)

Diviser les données en K parties et entraîner K fois en utilisant chaque partie comme test :

Fold 1: [TEST] [Train] [Train] [Train] [Train]
Fold 2: [Train] [TEST] [Train] [Train] [Train]
Fold 3: [Train] [Train] [TEST] [Train] [Train]
Fold 4: [Train] [Train] [Train] [TEST] [Train]
Fold 5: [Train] [Train] [Train] [Train] [TEST]

→ Moyenne des 5 scores = score final

Métriques principales

Classification :

  • Accuracy : % de bonnes prédictions
  • Precision : parmi les positifs prédits, combien sont vrais ?
  • Recall : parmi les vrais positifs, combien sont trouvés ?
  • F1-Score : équilibre precision/recall
  • AUC-ROC : performance globale du classifieur

Régression :

  • MAE : erreur absolue moyenne
  • RMSE : racine de l'erreur quadratique moyenne
  • : variance expliquée par le modèle

Pièges courants

Fuite de données (Data Leakage)

Quand des informations du futur "fuient" dans l'entraînement :

# ❌ MAUVAIS : normaliser avant le split
df_normalized = normalize(df)
train, test = split(df_normalized)

# ✓ BON : normaliser après le split
train, test = split(df)
train_normalized = normalize(train)
test_normalized = normalize(test, params_from=train)

Déséquilibre de classes

Quand une classe est sur-représentée :

99% négatifs, 1% positifs
→ Prédire toujours "négatif" = 99% accuracy !

Solutions :

  • Suréchantillonnage (SMOTE)
  • Sous-échantillonnage
  • Poids de classes
  • Métriques adaptées (F1, AUC)

Dans cette section

On this page