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 apprisesLe 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 étatApplications :
- 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é
| Algorithme | Type | Usage |
|---|---|---|
| Régression linéaire | Régression | Prédiction de valeurs continues |
| Régression logistique | Classification | Classification binaire |
| Arbres de décision | Les deux | Décisions interprétables |
| Random Forest | Les deux | Ensemble d'arbres, robuste |
| SVM | Classification | Séparation optimale |
| k-NN | Les deux | Basé sur les voisins |
| Gradient Boosting | Les deux | XGBoost, LightGBM, très performant |
Non supervisé
| Algorithme | Usage |
|---|---|
| K-Means | Clustering en K groupes |
| DBSCAN | Clustering basé sur la densité |
| PCA | Réduction de dimensionnalité |
| t-SNE | Visualisation de données |
| Autoencoders | Compression, 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 finalMé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
- R² : 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)