0% ont trouvé ce document utile (0 vote)
22 vues34 pages

Cours Complet Machine Learning

Le document présente un cours complet sur le Machine Learning, structuré en 7 parties et 35 chapitres, abordant des concepts allant des fondamentaux aux techniques avancées comme le Deep Learning et l'apprentissage par renforcement. Il couvre des sujets tels que la préparation des données, les algorithmes d'apprentissage supervisé et non supervisé, ainsi que des aspects pratiques comme le déploiement de modèles et l'éthique. Destiné aux débutants et aux avancés, ce cours inclut des théories, des mathématiques, des algorithmes, et des cas pratiques en Python.

Transféré par

djimenedivin
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues34 pages

Cours Complet Machine Learning

Le document présente un cours complet sur le Machine Learning, structuré en 7 parties et 35 chapitres, abordant des concepts allant des fondamentaux aux techniques avancées comme le Deep Learning et l'apprentissage par renforcement. Il couvre des sujets tels que la préparation des données, les algorithmes d'apprentissage supervisé et non supervisé, ainsi que des aspects pratiques comme le déploiement de modèles et l'éthique. Destiné aux débutants et aux avancés, ce cours inclut des théories, des mathématiques, des algorithmes, et des cas pratiques en Python.

Transféré par

djimenedivin
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

COURS COMPLET — MACHINE LEARNING De zéro à expert

MACHINE LEARNING
Cours Complet — De Zéro à Expert

Théorie · Mathématiques · Algorithmes · Code Python · Cas


Pratiques

■ 7 Grandes Parties · 35 Chapitres · Toutes les techniques

■ Apprentissage supervisé · non supervisé · par renforcement

■ Du perceptron aux Transformers · de la régression au Deep Learning

Niveau : Débutant → Avancé

—1—
COURS COMPLET — MACHINE LEARNING De zéro à expert

TABLE DES MATIÈRES

PARTIE 1 — FONDAMENTAUX DU MACHINE LEARNING


• 1. Histoire et définitions du Machine Learning
• 2. Mathématiques essentielles
• 3. Statistiques pour le ML
• 4. Algèbre linéaire appliquée
• 5. Calcul différentiel & Optimisation

PARTIE 2 — PRÉPARATION DES DONNÉES


• 6. Types de données et exploration (EDA)
• 7. Nettoyage et prétraitement
• 8. Feature Engineering & Sélection
• 9. Gestion des données déséquilibrées

PARTIE 3 — APPRENTISSAGE SUPERVISÉ


• 10. Régression Linéaire & Polynomiale
• 11. Régression Logistique
• 12. K-Nearest Neighbors (KNN)
• 13. Arbres de Décision
• 14. Ensembles : Random Forest & Gradient Boosting
• 15. Support Vector Machines (SVM)
• 16. Naive Bayes
• 17. Évaluation des modèles supervisés

PARTIE 4 — APPRENTISSAGE NON SUPERVISÉ


• 18. Clustering : K-Means & DBSCAN
• 19. Classification Hiérarchique
• 20. Réduction de dimensionnalité : PCA & t-SNE
• 21. Détection d'anomalies
• 22. Règles d'association

PARTIE 5 — DEEP LEARNING


• 23. Réseaux de neurones artificiels (ANN)
• 24. Rétropropagation & Optimiseurs
• 25. Réseaux de neurones convolutifs (CNN)
• 26. Réseaux récurrents (RNN, LSTM, GRU)
• 27. Transformers & Attention
• 28. Autoencodeurs & GANs

PARTIE 6 — APPRENTISSAGE PAR RENFORCEMENT


• 29. Principes du Reinforcement Learning

—2—
COURS COMPLET — MACHINE LEARNING De zéro à expert

• 30. Q-Learning & Deep Q-Network


• 31. Policy Gradient & Actor-Critic

PARTIE 7 — MLOps & PRATIQUE


• 32. Pipeline ML complet avec Scikit-learn
• 33. Hyperparameter Tuning
• 34. Déploiement de modèles
• 35. Éthique, Explicabilité & Biais

—3—
COURS COMPLET — MACHINE LEARNING De zéro à expert

PARTIE 1

Fondamentaux du Machine Learning

Chapitre 1
Histoire et Définitions du Machine Learning

1.1 Qu'est-ce que le Machine Learning ?


Le Machine Learning (ML) est la capacité d'un système informatique à apprendre et à s'améliorer
automatiquement à partir de l'expérience, sans être explicitement programmé pour chaque tâche. Plutôt que
d'écrire des règles manuelles, on fournit des données et on laisse l'algorithme découvrir les patterns par
lui-même.

■ Définition formelle (Tom Mitchell, 1997) : «Un programme informatique apprend à partir d'une expérience
E par rapport à une tâche T et une mesure de performance P, si sa performance sur T mesurée par P
s'améliore avec l'expérience E.»

1.2 Bref historique


Année Événement clé

1943 McCulloch & Pitts — Premier modèle de neurone artificiel

1950 Alan Turing — Test de Turing (peut-on distinguer machine et humain ?)

1957 Rosenblatt — Invention du Perceptron

1986 Rumelhart & Hinton — Rétropropagation du gradient

1995 Vapnik — Support Vector Machines (SVM)

1997 IBM Deep Blue bat Kasparov aux échecs

2006 Hinton — Renaissance du Deep Learning (pre-training)

2012 AlexNet remporte ImageNet → révolution CNN

2017 Vaswani et al. — Architecture Transformer ("Attention is All You Need")

2020 GPT-3 : 175 milliards de paramètres

2022 ChatGPT, Stable Diffusion : ML grand public

2024+ LLMs multimodaux, IA générative omniprésente

1.3 Familles du Machine Learning


Le ML se divise en trois grandes familles selon la nature des données disponibles :

—4—
COURS COMPLET — MACHINE LEARNING De zéro à expert

Famille Données disponibles Objectif Exemples d'algorithmes

Apprendre à prédire y à partir de Régression, SVM, Réseaux de


Supervisé Entrées + sorties étiquetées
X neurones

Entrées seulement (pas


Non supervisé Découvrir des structures cachées K-Means, PCA, Autoencodeurs
d'étiquettes)

Peu de données étiquetées +


Semi-supervisé Exploiter les 2 types Self-training, Label Propagation
bcp non étiquetées

Récompenses de Maximiser la récompense


Par renforcement Q-Learning, PPO, A3C
l'environnement cumulée

1.4 ML vs IA vs Deep Learning vs Data Science

• Intelligence Artificielle (IA) : domaine large visant à simuler l'intelligence humaine

• Machine Learning : sous-ensemble de l'IA — apprentissage à partir de données

• Deep Learning : sous-ensemble du ML — réseaux de neurones profonds (≥ 3 couches)

• Data Science : discipline plus large incluant ML, statistiques, visualisation, ingénierie des données

Chapitre 2
Mathématiques Essentielles

2.1 Fonctions et notation


En ML, on cherche une fonction f : X → Y qui mappe les entrées (features) vers les sorties (cibles). Les
paramètres de cette fonction sont notés θ (thêta).

■ = f(X ; θ) où ■ = prédiction, X = données, θ = paramètres appris

2.2 Algèbre Linéaire — Les briques fondamentales


Scalaire : un simple nombre réel. Ex : le revenu d'un client = 3 500.

Vecteur : liste ordonnée de scalaires. Un exemple = un vecteur de features.

x = [x1, x2, ..., xp] (vecteur colonne de dimension p)


Matrice : tableau 2D de scalaires. Votre dataset = matrice N×p.

X ∈ R^(N×p) : N exemples, p features


Produit matriciel : opération centrale de tout réseau de neurones.

(AB)_ij = Σ_k A_ik × B_kj → nécessite que nb_colonnes(A) = nb_lignes(B)


Transposée : X^T échange lignes et colonnes.

Norme euclidienne : mesure la longueur d'un vecteur.

||x|| = √(x1² + x2² + ... + xp²)


Produit scalaire (dot product) :

x · z = Σ xi × zi = ||x|| × ||z|| × cos(θ)

—5—
COURS COMPLET — MACHINE LEARNING De zéro à expert

2.3 Dérivées et Gradient


La dérivée mesure le taux de variation d'une fonction. Le gradient est la généralisation aux fonctions
multivariables — c'est un vecteur de dérivées partielles.

∇_θ L(θ) = [∂L/∂θ1, ∂L/∂θ2, ..., ∂L/∂θp]


Le gradient pointe dans la direction de plus forte montée. Pour minimiser L, on avance dans la direction
opposée au gradient.

2.4 La Descente de Gradient


Algorithme itératif fondamental pour optimiser les paramètres :

θ_t+1 = θ_t - α × ∇_θ L(θ_t)


où α (alpha) est le taux d'apprentissage (learning rate).

Variante Données utilisées Avantages Inconvénients

Batch GD Tout le dataset Stable, convergence garantie Très lent sur gros datasets

Rapide, peut échapper aux


Stochastic GD 1 exemple à la fois Très bruité
minima locaux

Meilleur compromis
Mini-Batch GD Petit lot (32-256) Choix de batch size
vitesse/stabilité

Chapitre 3
Statistiques pour le Machine Learning

3.1 Statistiques descriptives


Moyenne : µ = (1/N) × Σ xi
Variance : σ² = (1/N) × Σ(xi - µ)² → Écart-type : σ = √σ²
Médiane : valeur centrale quand données triées
Quantile q : valeur en dessous de laquelle se trouve q% des données

3.2 Distributions de probabilité


Distribution Paramètres Usage en ML

Normale (Gaussienne) µ, σ² Hypothèse résidus régression, initialisation poids

Bernoulli p Variable binaire (0/1), classification binaire

Multinomiale p1..pk Classification multi-classe

Uniforme a, b Initialisation aléatoire, hyperparamètre search

Exponentielle λ Modélisation temps entre événements

Beta α, β Prior sur probabilités (Bayésien)

3.3 Théorème de Bayes


Fondement du Machine Learning bayésien et du Naive Bayes classifier :

—6—
COURS COMPLET — MACHINE LEARNING De zéro à expert

P(A|B) = P(B|A) × P(A) / P(B)


En ML : P(classe | données) ∝ P(données | classe) × P(classe)
→ Postérieure ∝ Vraisemblance × Prior

3.4 Corrélation et Covariance


Covariance(X,Y) = (1/N) × Σ(xi - µx)(yi - µy)
Corrélation de Pearson : r = Cov(X,Y) / (σx × σy) ∈ [-1, +1]

• r ≈ +1 : forte corrélation positive (quand X augmente, Y augmente)

• r ≈ 0 : pas de corrélation linéaire

• r ≈ -1 : forte corrélation négative

• Attention : corrélation ≠ causalité !

Chapitre 4
Algèbre Linéaire Appliquée au ML

4.1 Valeurs propres et vecteurs propres


Centraux pour la PCA (réduction de dimension). Pour une matrice A carrée :

A × v = λ × v → v : vecteur propre, λ : valeur propre


Les valeurs propres indiquent l'importance de chaque direction. En PCA, on garde les directions avec les plus
grandes valeurs propres.

4.2 Décomposition en Valeurs Singulières (SVD)


X = U × Σ × V^T
Toute matrice peut être décomposée ainsi. Utilisée pour la PCA, la compression d'images, les systèmes de
recommandation.

4.3 Fonctions de distance


Distance Formule Quand l'utiliser

Euclidienne √Σ(xi-yi)² Données continues, KNN standard

Manhattan Σ|xi-yi| Données avec outliers, grilles

Cosinus 1 - x·y/(||x||×||y||) Texte, NLP (direction > magnitude)

Minkowski (Σ|xi-yi|^p)^(1/p) Généralisation (p=1:Manhattan, p=2:Euclidienne)

Hamming Proportion bits différents Variables binaires/catégorielles

Chapitre 5
Calcul Différentiel & Optimisation

—7—
COURS COMPLET — MACHINE LEARNING De zéro à expert

5.1 Fonctions de coût (Loss Functions)


La fonction de coût mesure l'écart entre prédictions et réalité. Tout le ML consiste à minimiser cette fonction.

Nom Formule Usage

MSE (Mean Squared Error) L = (1/N) × Σ(yi - ■i)² Régression

MAE (Mean Absolute Error) L = (1/N) × Σ|yi - ■i| Régression (robuste)

Huber Loss MSE si |e|<δ, MAE sinon Régression avec outliers

Binary Cross-Entropy L = -Σ[yi log(■i)+(1-yi)log(1-■i)] Classification binaire

Categorical Cross-Entropy L = -Σ yi log(■i) Classification multi-classe

Hinge Loss L = Σ max(0, 1 - yi × ■i) SVM

KL Divergence L = Σ P(x) × log(P(x)/Q(x)) VAE, distillation

5.2 Problèmes d'optimisation courants


■ Minima locaux : l'algorithme converge vers un optimum local, pas global
■ Saddle points : gradient nul mais pas un minimum (fréquent en deep learning)
■ Explosion/disparition du gradient : gradients trop grands ou trop petits
■ Learning rate trop grand : oscillations, divergence
■ Learning rate trop petit : convergence extrêmement lente

5.3 Régularisation — Contrôle de la complexité


La régularisation ajoute une pénalité à la fonction de coût pour éviter le surapprentissage :

L_régularisée = L + λ × R(θ)

Régularisation Terme R(θ) Effet

L1 (Lasso) Σ|θi| Force certains coefficients à zéro → sélection de features

L2 (Ridge) Σθi² Réduit tous les coefficients uniformément → modèle lisse

Elastic Net α×L1 + (1-α)×L2 Compromis entre Lasso et Ridge

Désactiver aléatoirement p% des


Dropout (DL) Équivalent à moyenner plusieurs réseaux
neurones

—8—
COURS COMPLET — MACHINE LEARNING De zéro à expert

PARTIE 2

Préparation des Données

Chapitre 6
Types de Données et Exploration (EDA)

6.1 Types de variables


Type Description Exemples Traitement

Numérique continu Valeurs réelles infinies Température, revenu, prix Normalisation, standardisation

Numérique discret Entiers dénombrables Âge, nb clics, nb enfants Souvent traité comme continu

Catégoriel nominal Catégories sans ordre Couleur, pays, sexe One-Hot Encoding

Catégoriel ordinal Catégories avec ordre Note (A,B,C), satisfaction Label Encoding ou OHE

Spam/non-spam,
Binaire 0 ou 1 Directement utilisable
malade/sain

Chaînes de
Texte Avis clients, tweets TF-IDF, word embeddings
caractères

Image Tableau de pixels Photos, radios CNN, data augmentation

Valeurs ordonnées
Série temporelle Cours bourse, météo ARIMA, LSTM, lag features
dans le temps

6.2 Analyse Exploratoire des Données (EDA)


Avant tout modèle, il faut comprendre ses données. L'EDA est l'étape d'investigation systématique avec
visualisations et statistiques.

■ Statistiques descriptives : min, max, moyenne, médiane, écart-type, quartiles


■ Distribution des variables : histogrammes, boxplots, violins plots
■ Corrélations : matrice de corrélation, scatter plots par paires
■ Déséquilibre des classes : compter les occurrences de chaque classe cible
■ Valeurs manquantes : cartographier où et combien il y en a
■ Outliers : méthode IQR, score Z, visualisation

6.3 Code Python — EDA de base


import pandas as pd
import [Link] as plt
import seaborn as sns
df = pd.read_csv('[Link]')
print([Link]) # (N, p) — dimensions
print([Link]()) # statistiques descriptives
print([Link]().sum()) # valeurs manquantes par colonne

—9—
COURS COMPLET — MACHINE LEARNING De zéro à expert

print([Link]) # types de chaque colonne


# Matrice de corrélation
[Link]([Link](), annot=True, cmap='coolwarm')
[Link]()

Chapitre 7
Nettoyage et Prétraitement des Données

7.1 Gestion des valeurs manquantes


Stratégie Quand l'utiliser Code Scikit-learn

< 5% de NaN, MCAR (manquant


Suppression lignes [Link]()
aléatoire)

Suppression colonnes Colonne > 50% NaN [Link](axis=1)

Variable continue, distribution


Imputation par moyenne SimpleImputer(strategy='mean')
normale

Imputation par médiane Variable continue avec outliers SimpleImputer(strategy='median')

Imputation par mode Variable catégorielle SimpleImputer(strategy='most_frequent')

Imputation par modèle MNAR, données complexes IterativeImputer() ou KNNImputer()

Indicateur de manquant Le manquant est informatif Ajouter colonne binaire is_missing

7.2 Détection et traitement des outliers


Méthode IQR (InterQuartile Range) :
IQR = Q3 - Q1
Outlier si x < Q1 - 1.5×IQR ou x > Q3 + 1.5×IQR

Z-score :
z = (x - µ) / σ → outlier si |z| > 3
Que faire des outliers ? Supprimer (si erreur de saisie), capper (winsorisation), transformer (log), ou conserver
(si informatifs).

7.3 Normalisation et Standardisation


Méthode Formule Résultat Quand l'utiliser

Min-Max Scaling x' = (x-min)/(max-min) ∈ [0, 1] KNN, réseaux neurones, SVM

Standardisation Z x' = (x-µ)/σ µ=0, σ=1 Régression, PCA, la plupart

Robust Scaler x' = (x-médiane)/IQR Robuste aux outliers Données avec outliers

Log transform x' = log(1+x) Réduit l'asymétrie Variables très asymétriques (revenus)

Max Abs Scaler x' = x/|max(x)| ∈ [-1, 1] Données sparse

7.4 Encodage des variables catégorielles


from [Link] import LabelEncoder, OneHotEncoder
import pandas as pd
# One-Hot Encoding (variables nominales)

— 10 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

df = pd.get_dummies(df, columns=['couleur', 'pays'])


# Label Encoding (variables ordinales)
le = LabelEncoder()
df['note'] = le.fit_transform(df['note']) # A->0, B->1, C->2

Chapitre 8
Feature Engineering et Sélection de Variables

8.1 Feature Engineering — Créer de meilleures variables


Le Feature Engineering est l'art de créer de nouvelles variables plus informatives à partir des variables brutes.

■ Interactions : x_new = x1 × x2 (ex: revenu × ancienneté)


■ Polynomiale : x_new = x², x³ (capturer la non-linéarité)
■ Temporelle : extraire heure, jour, mois, trimestre depuis une date
■ Agrégations : moyenne/max/std des N dernières transactions d'un client
■ Ratios : dette/revenu, clics/vues, victoires/matchs
■ Encodage cible (Target Encoding) : remplacer catégorie par sa moyenne de y
■ Binning : discrétiser une variable continue en intervalles

8.2 Sélection de features — Pourquoi et comment


Trop de variables inutiles dégradent les performances (malédiction de la dimensionnalité), ralentissent
l'entraînement et réduisent l'interprétabilité.

Méthode Type Description

Variance threshold Filter Supprimer variables à variance quasi-nulle

Corrélation avec y Filter Garder variables les + corrélées avec la cible

Chi-² test Filter Pour variables catégorielles

Mutual Information Filter Mesure dépendance (linéaire ET non-linéaire)

Recursive Feature Elim. Wrapper Entraîner, supprimer la moins utile, répéter

L1 (Lasso) Embedded Régularisation qui met certains coefs à zéro

Feature Importance RF Embedded Importance calculée par la forêt aléatoire

PCA Réduction Créer nouvelles variables non corrélées

Chapitre 9
Gestion des Données Déséquilibrées

9.1 Le problème du déséquilibre


En classification, si 99% des exemples sont de classe 0 et 1% de classe 1, un modèle stupide qui prédit
toujours 0 a 99% d'accuracy mais est inutile !

Exemples typiques : fraude (0.1%), maladies rares (0.5%), pannes machines (2%)

— 11 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

9.2 Techniques de rééchantillonnage


Technique Principe Code

Under-sampling Réduire la classe majoritaire aléatoirement RandomUnderSampler()

Over-sampling Dupliquer des exemples minoritaires RandomOverSampler()

Générer des exemples synthétiques


SMOTE SMOTE()
(interpolation)

ADASYN SMOTE pondéré par la difficulté ADASYN()

Class weights Pénaliser + les erreurs sur classe minoritaire class_weight='balanced'

Abaisser le seuil de décision (ex: 0.3 au lieu de


Threshold tuning predict_proba + seuil custom
0.5)

— 12 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

PARTIE 3

Apprentissage Supervisé

Chapitre 10
Régression Linéaire et Polynomiale

10.1 Régression Linéaire Simple


■ = β0 + β1×x
On cherche β0 (intercept) et β1 (pente) qui minimisent la somme des erreurs au carré (MCO).

L(β0,β1) = (1/N) × Σ(yi - β0 - β1×xi)²


Solution analytique (forme fermée) :

β1 = Σ[(xi-x■)(yi-■)] / Σ(xi-x■)² β0 = ■ - β1×x■

10.2 Régression Linéaire Multiple


■ = β0 + β1×x1 + β2×x2 + ... + βp×xp = X·β
Solution analytique (équation normale) :

β = (X^T × X)^(-1) × X^T × y


Problème si X^T×X non inversible (multicolinéarité) → utiliser Ridge (L2) :

β_ridge = (X^T×X + λI)^(-1) × X^T × y

10.3 Hypothèses et diagnostics


■ Linéarité : vérifier via scatter plots résidus vs valeurs prédites
■ Homoscédasticité : variance des résidus constante (test Breusch-Pagan)
■ Normalité des résidus : Q-Q plot, test Shapiro-Wilk
■ Indépendance : test de Durbin-Watson pour autocorrélation
■ Multicolinéarité : VIF > 10 → problème, éliminer ou Ridge

10.4 Régression Polynomiale


■ = β0 + β1×x + β2×x² + β3×x³ + ... + βd×x^d
Toujours une régression linéaire (en les paramètres β), mais avec des features dérivées de x. Attention au
degré d : risque d'overfitting si trop élevé.

10.5 Code Scikit-learn


from sklearn.linear_model import LinearRegression, Ridge, Lasso
from [Link] import PolynomialFeatures
from [Link] import Pipeline
# Régression linéaire
model = LinearRegression()

— 13 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

[Link](X_train, y_train)
y_pred = [Link](X_test)
print(f'R² = {[Link](X_test, y_test):.3f}')
# Régression polynomiale (degré 3)
pipe = Pipeline([('poly', PolynomialFeatures(degree=3)),
('lr', LinearRegression())])
[Link](X_train, y_train)

Chapitre 11
Régression Logistique

11.1 Modèle
z = β0 + β1×x1 + ... + βp×xp (combinaison linéaire)
P(y=1|X) = σ(z) = 1 / (1 + e^(-z)) (fonction sigmoïde)

11.2 Interprétation des coefficients — Odds Ratio


En régression logistique, exp(βj) est le rapport de cotes (odds ratio) :

OR_j = exp(βj) → si OR > 1 : variable augmente la proba de classe 1

11.3 Fonction de coût et entraînement


L = -(1/N) × Σ [yi×log(■i) + (1-yi)×log(1-■i)]
Pas de solution analytique → descente de gradient. Régularisation : LogisticRegression(C=1/λ) en Scikit-learn.

11.4 Extension multi-classe


■ One-vs-Rest (OvR) : K classifieurs binaires, un par classe
■ One-vs-One (OvO) : K×(K-1)/2 classifieurs
■ Softmax (multinomial) : generalisation directe, somme des probas = 1
P(y=k|X) = exp(z_k) / Σ_j exp(z_j) (Softmax)

Chapitre 12
K-Nearest Neighbors (KNN)

12.1 Algorithme
■ 1. Stocker tout le dataset d'entraînement
■ 2. Pour un nouvel exemple x, calculer sa distance à tous les exemples d'entraînement
■ 3. Identifier les K plus proches voisins
■ 4. Classification : vote majoritaire | Régression : moyenne des K sorties

12.2 Choix de K et de la distance

• K petit : frontière très complexe (overfitting, sensible au bruit)

• K grand : frontière lisse (underfitting, classe majoritaire domine)

— 14 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

• Règle pratique : K ≈ √N, toujours impair pour classification binaire

• Validation croisée : tester K ∈ {1, 3, 5, ..., 31} et choisir le meilleur

12.3 Problèmes de passage à l'échelle


Malédiction de la dimensionnalité : en haute dimension (p grand), tous les points deviennent équidistants.
KNN perd son efficacité. Solutions : PCA avant KNN, ou utiliser d'autres algorithmes.

Complexité : O(N×p) par prédiction → trop lent pour grands datasets. Solutions : KD-Tree, Ball-Tree, FAISS.

Chapitre 13
Arbres de Décision (Decision Trees)

13.1 Construction de l'arbre — Algorithme CART


CART (Classification And Regression Trees) divise récursivement les données en cherchant à chaque nœud le
meilleur split (feature + seuil).

Critère de division pour la classification :


Impureté de Gini : G = 1 - Σ p_k² (0 = nœud pur, 0.5 = max d'impureté)
Entropie : H = -Σ p_k × log2(p_k) (0 = pur, 1 = max d'impureté)
Gain d'information : IG = H(parent) - [N_g/N × H(gauche) + N_d/N × H(droite)]

Critère pour la régression :


Variance : choisir le split qui minimise la variance pondérée des sous-groupes

13.2 Hyperparamètres de contrôle


Paramètre Rôle Valeur par défaut Effet si trop grand

max_depth Profondeur max de l'arbre None (infini) Overfitting

Nb min exemples pour couper un


min_samples_split 2 Underfitting si trop grand
nœud

min_samples_leaf Nb min exemples dans une feuille 1 Underfitting si trop grand

Nb features considérées à chaque


max_features None (toutes) Moins de variance
coupure

min_impurity_decrease Gain min pour qu'un split soit fait 0.0 Underfitting si trop grand

13.3 Pruning (Élagage)


Un arbre non contraint overfitte. Le pruning réduit l'arbre après construction. Méthode principale :
Cost-Complexity Pruning (paramètre ccp_alpha en sklearn).

Chapitre 14
Méthodes d'Ensemble — Random Forest & Gradient Boosting

— 15 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

14.1 Principe des méthodes d'ensemble


Combiner plusieurs modèles faibles pour obtenir un modèle fort. Trois stratégies principales :

■ Bagging (Bootstrap Aggregating) : entraîner des modèles en parallèle sur des sous-datasets aléatoires
→ moyenner les prédictions
■ Boosting : entraîner des modèles séquentiellement, chacun corrigeant les erreurs du précédent
■ Stacking : combiner plusieurs modèles différents (meta-learner)

14.2 Random Forest

= Bagging sur des arbres de décision + randomisation des features

• Chaque arbre entraîné sur un bootstrap sample (≈63% des données, avec remise)

• À chaque nœud, seulement √p features sont considérées (pas toutes)

• Prédiction = vote majoritaire (classif) ou moyenne (régression)

• Out-of-Bag (OOB) score : évaluation gratuite sur les ≈37% non utilisés

Variance(RF) ≈ ρ × σ² + (1-ρ)/B × σ² où ρ = corr entre arbres, B = nb arbres


Plus les arbres sont décorrélés (grâce à la randomisation), plus la variance de la forêt est faible.

14.3 Gradient Boosting


Algorithme additif : on ajoute des arbres séquentiellement, chacun prédit les résidus (erreurs) du modèle
précédent.

F_m(x) = F_{m-1}(x) + α × h_m(x)


où h_m est un arbre qui prédit les pseudo-résidus : gradient de la fonction de coût par rapport aux prédictions
précédentes.

14.4 XGBoost, LightGBM, CatBoost — Les champions


Bibliothèque Innovation clé Point fort

XGBoost Régularisation L1+L2, pruning, cache-aware Très performant, robuste

LightGBM Croissance en feuilles (leaf-wise) vs niveau Très rapide, peu de mémoire

Encodage automatique des catégories, ordered


CatBoost Excellent sur données catégorielles
boosting

14.5 Code XGBoost


import xgboost as xgb
model = [Link](
n_estimators=500, # nb d'arbres
max_depth=6, # profondeur max de chaque arbre
learning_rate=0.05, # α (shrinkage)
subsample=0.8, # fraction du dataset par arbre
colsample_bytree=0.8, # fraction des features par arbre
reg_alpha=0.1, # L1
reg_lambda=1.0, # L2
eval_metric='auc',
early_stopping_rounds=50
)
[Link](X_train, y_train,
eval_set=[(X_val, y_val)], verbose=100)

— 16 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

Chapitre 15
Support Vector Machines (SVM)

15.1 Hyperplan séparateur à marge maximale


Le SVM cherche l'hyperplan qui maximise la marge entre les deux classes. Les vecteurs de support sont les
points les plus proches de la frontière.

Hyperplan : w·x + b = 0 (classification : signe de w·x + b)


Marge = 2 / ||w|| → Maximiser marge = Minimiser ||w||²
Problème dual : max Σαi - (1/2)ΣΣαiαj yi yj xi·xj s.c. αi≥0, Σαiyi=0

15.2 SVM à marge souple (Soft Margin — paramètre C)


En pratique, les données ne sont jamais parfaitement séparables. On autorise des violations de la marge avec
des variables d'écart ξi.

min (1/2)||w||² + C × Σξi s.c. yi(w·xi+b) ≥ 1 - ξi, ξi ≥ 0


C grand : peu de violations autorisées, marge étroite, risque d'overfitting. C petit : beaucoup de violations,
large marge, risque d'underfitting.

15.3 Le Kernel Trick — Transformer l'espace


Pour des données non linéairement séparables, on les projette implicitement dans un espace de dimension
supérieure via la fonction noyau K(xi, xj).

Kernel K(x, z) Hyperparamètres Usage

Linéaire x·z C Données linéairement séparables, NLP

RBF/Gaussien exp(-γ||x-z||²) C, γ Données non linéaires, image

Polynomial (x·z + r)^d C, d, r Interactions polynomiales

Sigmoïde tanh(γ x·z + r) C, γ, r Réseaux de neurones shallow

Chapitre 16
Naive Bayes

16.1 Principe
Classifieur probabiliste basé sur le théorème de Bayes avec l'hypothèse naïve que toutes les features sont
conditionnellement indépendantes.

P(C|x) ∝ P(C) × Π P(xi|C)


Classification : ■ = argmax_C P(C) × Π P(xi|C)

16.2 Variantes
Variante P(xi|C) Usage

Gaussian NB Loi normale N(µ_c, σ_c²) Features continues

— 17 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

Multinomial NB P(xi|C) = (count(xi,C)+α) / count(C) Comptage (NLP, fréquences)

Bernoulli NB P(xi=1|C) = p_ic Features binaires (présence/absence)

Complement NB Estimé depuis complémentaires Texte déséquilibré

Forces : très rapide, fonctionne bien avec peu de données, très bon pour le NLP (spam, sentiment). Limites :
l'hypothèse d'indépendance est rarement vraie.

Chapitre 17
Évaluation des Modèles Supervisés

17.1 Métriques de régression


Métrique Formule Interprétation

MAE (1/N)×Σ|yi-■i| Erreur moyenne en unités de y. Robuste aux outliers

MSE (1/N)×Σ(yi-■i)² Pénalise les grandes erreurs. Même échelle que y²

RMSE √MSE Même unité que y. Interprétable

R² 1 - SS_res/SS_tot 0-1. % de variance expliquée. 1 = parfait

MAPE (1/N)×Σ|yi-■i|/yi × 100% Erreur relative en %. Mauvais si yi proche de 0

R² ajusté 1-(1-R²)(N-1)/(N-p-1) Pénalise l'ajout de features inutiles

17.2 Métriques de classification — Matrice de confusion

Prédit Négatif Prédit Positif

Réel Négatif VN (Vrai Négatif) Correctement classé négatif FP (Faux Positif) Erreur type I — Alarme injustifiée

FN (Faux Négatif) Erreur type II — Cas


Réel Positif VP (Vrai Positif) Correctement classé positif
manqué

Accuracy = (VP+VN)/(VP+VN+FP+FN)
Precision = VP/(VP+FP) Recall (Sensibilité) = VP/(VP+FN)
F1-Score = 2×(Prec×Recall)/(Prec+Recall) = 2VP/(2VP+FP+FN)
Spécificité = VN/(VN+FP) MCC = (VP×VN-FP×FN)/√[(VP+FP)(VP+FN)(VN+FP)(VN+FN)]

17.3 AUC-ROC et AUC-PR


La courbe ROC (Receiver Operating Characteristic) trace le Recall (TPR) en fonction du taux de Faux Positifs
(FPR) pour tous les seuils possibles. AUC-ROC = aire sous la courbe (0.5 = hasard, 1 = parfait).

La courbe PR (Precision-Recall) est préférable pour les datasets très déséquilibrés. AUC-PR = aire sous la
courbe Precision vs Recall.

17.4 Validation Croisée


■ K-Fold CV : diviser en K folds, entraîner sur K-1, valider sur 1, répéter K fois

— 18 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

■ Stratified K-Fold : même proportion de classes dans chaque fold


■ Leave-One-Out (LOO) : K = N, très coûteux mais sans biais
■ Time Series Split : respecter l'ordre temporel, jamais de données futures dans train
from sklearn.model_selection import cross_val_score, StratifiedKFold
cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
scores = cross_val_score(model, X, y, cv=cv, scoring='roc_auc')
print(f'AUC: {[Link]():.3f} ± {[Link]():.3f}')

17.5 Biais-Variance Tradeoff


Erreur totale = Biais² + Variance + Bruit irréductible

Situation Biais Variance Solution

Underfitting Élevé Faible Modèle plus complexe, plus de features

Bonne fit Faible Faible Garder ce modèle

Overfitting Faible Élevé Régulariser, plus de données, simplifier

— 19 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

PARTIE 4

Apprentissage Non Supervisé

Chapitre 18
Clustering — K-Means et DBSCAN

18.1 K-Means — Partitionner en K groupes


Algorithme :
■ 1. Choisir K et initialiser K centroïdes aléatoirement
■ 2. Assigner chaque point au centroïde le plus proche
■ 3. Recalculer les centroïdes = moyenne des points assignés
■ 4. Répéter 2-3 jusqu'à convergence (centroïdes stables)
Objectif : minimiser J = Σ_k Σ_{xi∈Ck} ||xi - µk||² (inertie)

18.2 Choisir K — Méthodes


Méthode Principe Comment l'utiliser

Elbow Method Tracer l'inertie en fonction de K Chercher le 'coude' — point d'inflexion

Mesurer cohésion vs séparation des


Silhouette Score Maximiser (entre -1 et 1)
clusters

Gap Statistic Comparer à une distribution aléatoire Choisir K où gap est maximisé

Calinski-Harabasz Ratio variance inter vs intra Maximiser

18.3 Limites de K-Means


■ Suppose des clusters sphériques et de taille similaire
■ Sensible aux outliers (qui influencent fortement les centroïdes)
■ Doit spécifier K à l'avance
■ Résultat dépend de l'initialisation (solution : K-Means++ ou plusieurs runs)

18.4 DBSCAN — Clustering basé sur la densité


DBSCAN (Density-Based Spatial Clustering of Applications with Noise) groupe les points denses ensemble et
identifie automatiquement les outliers.

Paramètres : ε (rayon de voisinage) et MinPts (nb min de points dans le voisinage)

■ Core point : ≥ MinPts points dans son ε-voisinage


■ Border point : < MinPts voisins mais dans le voisinage d'un core point
■ Noise point (outlier) : ni core ni border → labelé -1

— 20 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

■ Avantages : pas besoin de K, détecte les outliers, clusters de forme arbitraire

■ Limites : difficile en haute dimension, sensible aux paramètres ε et MinPts

Chapitre 19
Classification Hiérarchique

19.1 Approches
■ Agglomérative (bottom-up) : chaque point = un cluster, fusionner itérativement les + proches
■ Divisive (top-down) : un seul cluster au départ, diviser récursivement

19.2 Méthodes de liaison (linkage)


Linkage Distance(A,B) Effet

Single (min) min distance entre pts de A et B Chaînes longues, sensible au bruit

Complete (max) max distance entre pts de A et B Clusters compacts et sphériques

Average moyenne distances inter-clusters Compromis single/complete

Ward minimise l'augmentation d'inertie Clusters de taille similaire (souvent préféré)

Le résultat est visualisé sous forme de dendrogramme. On coupe à la hauteur souhaitée pour obtenir le
nombre de clusters désiré.

Chapitre 20
Réduction de Dimensionnalité — PCA, t-SNE, UMAP

20.1 PCA — Analyse en Composantes Principales


PCA projette les données dans un espace de dimension réduite en gardant les directions de maximum de
variance.

■ 1. Centrer les données : X_c = X - µ


■ 2. Calculer la matrice de covariance : C = (1/N) × X_c^T × X_c
■ 3. Décomposer en valeurs propres : C = V × Λ × V^T
■ 4. Trier les vecteurs propres par valeur propre décroissante
■ 5. Projeter : X_réduit = X_c × V_k (garder les k premières composantes)
Variance expliquée par la kème composante = λk / Σλi

• Visualisation : réduire à 2D ou 3D pour visualiser des données haute dimension

• Bruit : les dernières composantes capturent souvent du bruit → les éliminer

• Règle : garder les composantes qui expliquent 95% de la variance cumulée

• Limite : PCA est linéaire → ne capture pas les structures non linéaires

— 21 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

20.2 t-SNE et UMAP — Réduction non linéaire


Méthode Principe Usage Limites

Préserver voisinages locaux en Visualisation 2D/3D de Lent (O(N²)), pas reproductible, ne


t-SNE
minimisant KL divergence clusters préserve pas structure globale

Graphe de voisins + optimisation Visualisation + réduction pour Moins interprétable, paramètres


UMAP
topologique ML sensibles

Chapitre 21
Détection d'Anomalies

21.1 Définition et enjeux


Identifier des observations qui dévient significativement du comportement normal. Applications : fraude, pannes,
intrusions réseau, contrôle qualité.

21.2 Méthodes principales


Méthode Principe Force

Z-score / IQR Statistiques univariées sur chaque feature Simple, interprétable

Arbres qui isolent les anomalies en peu de


Isolation Forest Haute dimension, scalable
coupures

Local Outlier Factor Compare densité locale vs voisins Détecte outliers locaux

One-Class SVM Frontière autour des normaux Non linéaire, robuste

Autoencodeur Reconstruction — anomalie = haute erreur Données complexes

Elliptic Envelope Hypothèse gaussienne multivariée Simple si données gaussiennes

Chapitre 22
Règles d'Association (Market Basket Analysis)

22.1 Principe et métriques


Découvrir des co-occurrences fréquentes. Ex : les clients achetant X achètent souvent Y.

Support(X→Y) = P(X ∪ Y) = |X∩Y| / N


Confidence(X→Y) = P(Y|X) = Support(X∪Y) / Support(X)
Lift(X→Y) = Confidence(X→Y) / Support(Y) → >1 : association positive

22.2 Algorithme Apriori


■ 1. Trouver tous les itemsets fréquents (support ≥ min_support)
■ 2. Générer les règles d'association (confidence ≥ min_confidence)
■ 3. Filtrer par lift > 1
Propriété anti-monotone : si un itemset est infrequent, tous ses supersets le sont aussi.

— 22 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

PARTIE 5

Deep Learning

Chapitre 23
Réseaux de Neurones Artificiels (ANN)

23.1 Le Neurone Artificiel


Un neurone reçoit des entrées x, les multiplie par des poids w, somme tout avec un biais b, et applique une
fonction d'activation f.

sortie = f(w1×x1 + w2×x2 + ... + wn×xn + b) = f(w·x + b)

23.2 Fonctions d'activation


Fonction Formule Avantages Inconvénients

Sigmoid 1/(1+e^(-x)) Sortie ∈(0,1), probabilité Vanishing gradient, saturation

Tanh (e^x-e^(-x))/(e^x+e^(-x)) Centré sur 0, ∈(-1,1) Vanishing gradient

ReLU max(0,x) Simple, pas de saturation + Dying ReLU (neurones morts)

Leaky ReLU max(0.01x,x) Corrige Dying ReLU Paramètre α à choisir

ELU x si x>0, α(e^x-1) sinon Sortie centrée, robuste Plus coûteuse

Meilleure en NLP
GELU x×Φ(x) Plus complexe
(Transformers)

Probas somment à 1,
Softmax e^xi/Σe^xj Sortie seulement
multi-classe

23.3 Architecture MLP (Multi-Layer Perceptron)


■ Couche d'entrée : p neurones (un par feature)
■ Couches cachées : transformations non-linéaires successives
■ Couche de sortie : 1 neurone (régression), 1 (classif binaire), K (multi-classe)
Un MLP avec au moins une couche cachée est un approximateur universel : il peut approximer n'importe
quelle fonction continue (théorème de Cybenko, 1989).

Chapitre 24
Rétropropagation et Optimiseurs

— 23 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

24.1 Rétropropagation (Backpropagation)


Algorithme de calcul efficace des gradients via la règle de dérivation en chaîne.

∂L/∂wi = ∂L/∂■ × ∂■/∂zi × ∂zi/∂wi (règle de la chaîne)


■ 1. Forward pass : calculer les activations couche par couche
■ 2. Calculer la loss
■ 3. Backward pass : propager les gradients de la sortie vers l'entrée
■ 4. Mettre à jour les poids avec l'optimiseur

24.2 Optimiseurs avancés


Optimiseur Mise à jour Force

SGD θ -= α × ∇L Simple, bien compris

SGD+Momentum v = β×v + ∇L; θ -= α×v Accélère convergence, traverse les plateaux

RMSprop v = β×v²+(1-β)×∇L²; θ -= α/√v × ∇L Adapte lr par paramètre

Adam Combine Momentum + RMSprop Standard en deep learning, robuste

AdaGrad θ -= α/√(Σ∇²) × ∇L Bon pour features sparse (NLP)

AdamW Adam + weight decay découplé Meilleur en NLP/Transformers

LAMB Adam avec normalisation par couche Grands batch sizes (BERT)

24.3 Techniques de régularisation en Deep Learning


Technique Principe Paramètre

Désactiver p% des neurones aléatoirement à


Dropout p (taux de dropout, ex: 0.3)
chaque batch

Batch Norm Normaliser les activations de chaque couche momentum, epsilon

Layer Norm Normaliser sur les features (pour Transformers) epsilon

Weight Decay Pénalité L2 sur les poids (via optimiseur) λ (weight_decay)

Early Stopping Arrêter si val_loss ne s'améliore plus patience (nb d'epochs)

Data Augmentation Créer des variantes artificielles des données transforms spécifiques

Label Smoothing Remplacer 0/1 par ε/(K-1) / 1-ε ε (ex: 0.1)

Chapitre 25
Réseaux de Neurones Convolutifs (CNN)

25.1 Motivation — Exploiter la structure spatiale


Un MLP appliqué à une image 224×224 RGB nécessiterait 224×224×3 = 150 528 neurones d'entrée, avec des
connexions complètes → explosion paramétrique. Les CNN exploitent la localité, la translation-invariance et
le partage de paramètres.

25.2 Opérations fondamentales

— 24 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

Convolution :
(I * K)(i,j) = Σ_m Σ_n I(i+m, j+n) × K(m,n)
Un filtre K de taille f×f glisse sur l'image I et produit une feature map. Le réseau apprend les filtres (détecteurs
de bords, textures, etc.).

Pooling : réduire la taille spatiale, conserver les features importantes


■ Max Pooling : prendre le maximum dans chaque région (preserve features saillantes)
■ Average Pooling : moyenne (préserve l'information diffuse)
■ Global Average Pooling : une valeur par feature map (avant la couche de classif)

25.3 Architectures emblématiques


Architecture Année Innovation Performance

LeNet-5 1998 Premier CNN pratique (digits) MNIST ~99%

AlexNet 2012 ReLU, Dropout, GPU — révolution ImageNet top-5 : 15.3%

VGG-16/19 2014 Filtres 3×3, profondeur uniforme ImageNet top-5 : 7.3%

GoogLeNet 2014 Module Inception, profondeur/largeur ImageNet : 6.7%

Skip connections → 152 couches sans


ResNet-50 2015 ImageNet : 3.57%
dégradation

EfficientNet 2019 Scaling uniforme profondeur/largeur/résolution SOTA efficace

ViT 2020 Vision Transformer — pas de convolution SOTA avec bcp de données

25.4 Transfer Learning


Réutiliser un CNN pré-entraîné sur ImageNet (ResNet, EfficientNet...) pour une nouvelle tâche. Économise
temps et données.
import [Link] as models
import [Link] as nn
# Charger ResNet50 pré-entraîné
model = models.resnet50(pretrained=True)
# Geler les couches existantes
for param in [Link]():
param.requires_grad = False
# Remplacer la couche finale pour notre tâche
[Link] = [Link](2048, num_classes)

Chapitre 26
Réseaux Récurrents — RNN, LSTM, GRU

26.1 RNN — Mémoire à court terme


Les RNN traitent des séquences en maintenant un état caché h_t qui transmet l'information entre les pas de
temps.
h_t = tanh(W_h × h_{t-1} + W_x × x_t + b_h)
■_t = W_y × h_t + b_y
Problème : vanishing gradient — les gradients disparaissent sur les longues séquences → impossible
d'apprendre des dépendances à long terme.

— 25 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

26.2 LSTM — Long Short-Term Memory


Solution au vanishing gradient via des portes (gates) qui contrôlent le flux d'information. Deux états : h_t (court
terme) et c_t (long terme).

Porte d'oubli : f_t = σ(W_f × [h_{t-1}, x_t] + b_f) → quoi oublier de c_{t-1}
Porte d'entrée : i_t = σ(W_i × [h_{t-1}, x_t] + b_i) → quoi ajouter
Candidat : c■_t = tanh(W_c × [h_{t-1}, x_t] + b_c)
État cellule : c_t = f_t ■ c_{t-1} + i_t ■ c■_t
Porte sortie : o_t = σ(W_o × [h_{t-1}, x_t] + b_o) ; h_t = o_t ■ tanh(c_t)

26.3 GRU — Gated Recurrent Unit


Variante simplifiée du LSTM avec seulement 2 portes (reset et update). Moins de paramètres, souvent aussi
performant.

z_t = σ(W_z × [h_{t-1}, x_t]) (update gate)


r_t = σ(W_r × [h_{t-1}, x_t]) (reset gate)
h■_t = tanh(W × [r_t ■ h_{t-1}, x_t])
h_t = (1-z_t) ■ h_{t-1} + z_t ■ h■_t

Chapitre 27
Transformers et Mécanisme d'Attention

27.1 Révolution des Transformers (2017)


L'article «Attention is All You Need» (Vaswani et al., 2017) a révolutionné le NLP et maintenant la vision, l'audio,
la biologie. Les Transformers remplacent les RNN grâce au mécanisme d'auto-attention qui traite toute la
séquence en parallèle.

27.2 Scaled Dot-Product Attention


Attention(Q, K, V) = softmax(Q × K^T / √d_k) × V
Q (Query), K (Key), V (Value) sont des projections linéaires de l'entrée. √d_k est un facteur d'échelle pour
stabiliser le gradient.

27.3 Multi-Head Attention


MultiHead(Q,K,V) = Concat(head_1, ..., head_h) × W_O
head_i = Attention(Q×W_i^Q, K×W_i^K, V×W_i^V)
H têtes d'attention capturent différents types de relations (syntaxe, sémantique, coréférence...).

27.4 Architecture Transformer complète


■ Encodeur : N × (Multi-Head Self-Attention + FFN + LayerNorm + Résiduel)
■ Décodeur : N × (Masked Self-Attention + Cross-Attention + FFN + LayerNorm)
■ Positional Encoding : sin/cos pour encoder la position des tokens

27.5 Modèles emblématiques

— 26 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

Modèle Orga. Innovation Usage

BERT Google Encodeur bidirectionnel, MLM + NSP Classification, NER, QA

GPT-3/4 OpenAI Décodeur, 175B params, few-shot Génération, completion

T5 Google Text-to-Text unifié Toutes tâches NLP

RoBERTa Meta BERT mieux entraîné Classification texte

ViT Google Transformers pour images Classification image

CLIP OpenAI Image+Texte conjoint Recherche image, zero-shot

LLaMA 3 Meta Open source, efficace Foundation model local

Chapitre 28
Autoencodeurs et GANs

28.1 Autoencodeur (AE)


Architecture encodeur-décodeur qui apprend à compresser puis reconstruire les données. La couche centrale
(espace latent z) est une représentation compressée.

Encodeur : z = f_enc(x) (compression : R^p → R^k, k << p)


Décodeur : x■ = f_dec(z) (reconstruction : R^k → R^p)
L = ||x - x■||² (erreur de reconstruction)
■ Débruitage (DAE) : corrompre l'entrée, apprendre à la reconstruire propre
■ Sparse AE : pénaliser l'activation des neurones latents
■ VAE (Variationnel) : espace latent = distribution gaussienne → génératif

28.2 GAN — Generative Adversarial Network


Deux réseaux en compétition : un générateur G crée de fausses données, un discriminateur D essaie de
distinguer vrai et faux.

min_G max_D E[log D(x)] + E[log(1 - D(G(z)))]


Applications : génération d'images, super-résolution, deepfakes, augmentation de données.

Variante GAN Innovation

DCGAN GAN avec CNN (images réalistes)

WGAN Distance Wasserstein → entraînement plus stable

StyleGAN2 Contrôle du style à chaque résolution → visages photo-réalistes

CycleGAN Traduction image-à-image sans paires (photos → peintures Monet)

Pix2Pix Traduction conditionnelle avec paires supervisées

Diffusion Models (DALL-E 2, Stable Diffusion) — successeurs des GANs pour la génération

— 27 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

PARTIE 6

Apprentissage par Renforcement

Chapitre 29
Principes du Reinforcement Learning

29.1 Le cadre MDP (Markov Decision Process)


L'apprentissage par renforcement (RL) modélise un agent qui interagit avec un environnement pour maximiser
une récompense cumulée.

Composant Symbole Description

État s∈S Observation de l'environnement à l'instant t

Action a∈A Ce que l'agent fait (mouvement, décision, prix)

Récompense r_t Signal de feedback de l'environnement (peut être -)

Transition P(s'|s,a) Probabilité de passer à l'état s' en faisant a depuis s

Politique π(a|s) Stratégie de l'agent : probabilité d'action a dans état s

Retour G_t Récompense cumulée actualisée depuis t

Facteur γ γ ∈[0,1] Discount factor : pondération des récompenses futures


G_t = r_t + γ×r_{t+1} + γ²×r_{t+2} + ... = Σ_{k=0}^∞ γ^k × r_{t+k}

29.2 Fonctions de valeur


V^π(s) = E_π[G_t | S_t=s] (valeur d'un état sous la politique π)
Q^π(s,a) = E_π[G_t | S_t=s, A_t=a] (valeur d'un état-action)
Équation de Bellman : V^π(s) = Σ_a π(a|s) × Σ_{s'} P(s'|s,a) [r + γ V^π(s')]

Chapitre 30
Q-Learning et Deep Q-Network (DQN)

30.1 Q-Learning (Tabular)


Algorithme off-policy qui apprend la fonction Q* (optimale) sans connaître le modèle :

Q(s,a) ← Q(s,a) + α × [r + γ × max_{a'} Q(s',a') - Q(s,a)]


Le terme entre crochets est l'erreur TD (Temporal Difference). Politique optimale : π*(s) = argmax_a Q*(s,a).

— 28 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

30.2 Deep Q-Network (DQN — DeepMind 2013)


Remplacer la table Q par un réseau de neurones Q(s,a;θ). Innovations clés pour stabiliser l'entraînement :

■ Experience Replay : stocker les transitions dans un buffer, tirer aléatoirement


■ Target Network : réseau cible θ■ mis à jour périodiquement pour calculer les cibles
■ Clipping des récompenses : normaliser les récompenses pour la stabilité
L(θ) = E[(r + γ × max_{a'} Q(s',a';θ■) - Q(s,a;θ))²]

Chapitre 31
Policy Gradient et Actor-Critic

31.1 Policy Gradient (REINFORCE)


Optimiser directement la politique π_θ par gradient ascent sur l'espérance de retour :

∇_θ J(θ) = E[Σ_t ∇_θ log π_θ(a_t|s_t) × G_t]


Problème : haute variance → utiliser une baseline (ex: V(s)) pour réduire la variance.

31.2 Actor-Critic (A2C, A3C, PPO)


Deux réseaux : l'acteur (politique π) et le critique (valeur V). Le critique évalue les actions, l'acteur s'améliore
grâce à ce feedback.

Avantage : A(s,a) = Q(s,a) - V(s) = r + γ V(s') - V(s) (erreur TD)

31.3 Algorithmes RL modernes


Algo Type Innovation Usage

A3C Actor-Critic Asynchronous (workers parallèles) Jeux Atari

PPO Actor-Critic Proximal Policy Optimization — clip du ratio Standard en RL pratique

SAC Actor-Critic Maximum entropy RL — exploration robuste Robotique, continuous control

TD3 Actor-Critic Twin Q-networks, delayed updates Contrôle continu

AlphaGo/Zero MCTS+RL Self-play + Monte Carlo Tree Search Go, Échecs, Shogi

Dreamer Model-based Apprendre un modèle monde latent Sim-to-real, robotique

— 29 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

PARTIE 7

MLOps & Pratique — Du Labo à la Production

Chapitre 32
Pipeline ML Complet avec Scikit-learn

32.1 Architecture d'un projet ML

1. Définition du problème : Métrique cible, contraintes métier, données disponibles

2. Collecte des données : Sources internes, APIs, scraping, datasets publics

3. EDA : Exploration, visualisation, hypothèses

4. Prétraitement : Nettoyage, encodage, normalisation

5. Feature Engineering : Nouvelles variables, sélection

6. Modélisation : Baseline → modèles avancés → ensemble

7. Évaluation : CV, métriques, analyse des erreurs

8. Hyperparameter Tuning : Grid search, Random search, Bayesian

9. Test final : Évaluation sur test set (une seule fois !)

10. Déploiement : API, monitoring, retrain

32.2 Pipeline Scikit-learn


from [Link] import Pipeline
from [Link] import ColumnTransformer
from [Link] import StandardScaler, OneHotEncoder
from [Link] import SimpleImputer
from [Link] import RandomForestClassifier
from sklearn.model_selection import train_test_split, cross_val_score
# Définir les colonnes
num_features = ['age', 'revenu', 'solde']
cat_features = ['profession', 'pays']
# Transformer numériques
num_pipe = Pipeline([
('imputer', SimpleImputer(strategy='median')),
('scaler', StandardScaler())
])
# Transformer catégoriels
cat_pipe = Pipeline([
('imputer', SimpleImputer(strategy='most_frequent')),
('encoder', OneHotEncoder(handle_unknown='ignore'))
])

— 30 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

# Combiner
preprocessor = ColumnTransformer([
('num', num_pipe, num_features),
('cat', cat_pipe, cat_features)
])
# Pipeline complet
full_pipe = Pipeline([
('prep', preprocessor),
('model', RandomForestClassifier(n_estimators=200, random_state=42))
])
# Entraînement et évaluation
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, stratify=y, random_state=42)
full_pipe.fit(X_train, y_train)
scores = cross_val_score(full_pipe, X_train, y_train,
cv=5, scoring='roc_auc')
print(f'CV AUC: {[Link]():.3f} ± {[Link]():.3f}')

Chapitre 33
Hyperparameter Tuning

33.1 Stratégies de recherche


Méthode Principe Quand l'utiliser Bibliothèque

Grid Search Tester toutes les combinaisons Peu de paramètres, espace small [Link]

Tirer aléatoirement N
Random Search Standard — bon rapport coût/perf [Link]
combinaisons

Bayesian Optim. Modèle probabiliste de la perf. Optimisation coûteuse (DL, XGB) Optuna, Hyperopt, BayesOpt

Early stopping des configs Grand espace, ressources


Hyperband Ray Tune, Keras Tuner
prometteuses limitées

Évolution de population de
Population Based Very large scale training PBT (DeepMind)
configs

33.2 Optuna — Exemple Bayesian Optimization


import optuna
from [Link] import GradientBoostingClassifier
from sklearn.model_selection import cross_val_score
def objective(trial):
params = {
'n_estimators': trial.suggest_int('n_estimators', 50, 500),
'max_depth': trial.suggest_int('max_depth', 3, 10),
'learning_rate': trial.suggest_float('lr', 1e-3, 0.3, log=True),
'subsample': trial.suggest_float('subsample', 0.5, 1.0),
}
clf = GradientBoostingClassifier(**params, random_state=42)
score = cross_val_score(clf, X_train, y_train,
cv=3, scoring='roc_auc').mean()
return score
study = optuna.create_study(direction='maximize')
[Link](objective, n_trials=100)
print(f'Best AUC: {study.best_value:.3f}')
print(f'Best params: {study.best_params}')

Chapitre 34
Déploiement de Modèles en Production

— 31 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

34.1 Sérialisation et format de modèle


Format Usage Code

Pickle (.pkl) Sklearn, Python natif import pickle; [Link](model, f)

Joblib (.joblib) Sklearn (large arrays) [Link](model, '[Link]')

ONNX Multi-framework, production [Link](model, ...)

TensorFlow
TF Serving, TFLite [Link]('model_dir/')
SavedModel

TorchScript PyTorch production [Link](model)

MLflow Tracking + serving multi-FW [Link].log_model(model)

34.2 Déploiement via API REST (FastAPI)


from fastapi import FastAPI
from pydantic import BaseModel
import joblib, numpy as np
app = FastAPI()
model = [Link]('[Link]')
class InputData(BaseModel):
age: float
revenu: float
solde: float
@[Link]('/predict')
def predict(data: InputData):
X = [Link]([[[Link], [Link], [Link]]])
proba = model.predict_proba(X)[0, 1]
return {'probabilite_defaut': float(proba),
'decision': 'REFUS' if proba > 0.5 else 'ACCORD'}
# Lancer : uvicorn app:app --host [Link] --port 8000

34.3 Monitoring en production


■ Data drift : les données de production s'écartent des données d'entraînement
■ Concept drift : la relation X→y change dans le temps (ex: comportements COVID)
■ Métriques business : toujours monitorer l'impact réel (pas seulement les métriques ML)
■ Outils : Evidently AI, Alibi Detect, Grafana + Prometheus, MLflow
■ Retraining schedule : périodique (hebdo/mensuel) ou déclenché par drift

Chapitre 35
Éthique, Explicabilité et Biais en ML

35.1 Les biais en ML — Sources et types


Type de biais Description Exemple

Biais présents dans les données Moins de femmes aux postes tech dans les données → modèle
Historical bias
historiques discriminant

Dataset médical avec 90% caucasiens → modèle moins précis pour


Representation bias Sous-représentation d'un groupe
autres

Measurement bias Mesure erronée d'une variable Reconnaissance faciale moins précise sur peaux foncées

— 32 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

Modèle unique pour groupes


Aggregation bias Même seuil de risque diabète pour différentes populations
hétérogènes

Evaluation bias Métriques inadaptées au problème Accuracy sur dataset déséquilibré → illusion de performance

Modèle policier → + de patrouilles → + d'arrestations →


Feedback loop Le modèle crée les données futures
confirmation

35.2 Métriques de fairness


Demographic Parity : P(■=1 | G=A) = P(■=1 | G=B)
Equal Opportunity : P(■=1 | y=1, G=A) = P(■=1 | y=1, G=B)
Individual Fairness : similar(xi, xj) → similar(f(xi), f(xj))
Outils : Fairlearn (Microsoft), IBM AI Fairness 360, What-If Tool (Google)

35.3 Explicabilité (XAI — Explainable AI)


Méthode Type Principe Avantages

SHAP (SHapley Additive Contribution de chaque feature à la


Global+Local Fidèle, cohérent, toutes features
exPlanations) prédiction (théorie des jeux)

LIME (Local Interpretable


Local Approx. linéaire locale du modèle Simple, toutes features
ME)

Gradient de la class par rapport aux


Grad-CAM Local (CNN) Visualise où le CNN regarde
activations

Feature Importance Global Gain moyen d'un feature dans les splits Rapide, intégrée aux arbres

Effet moyen d'une feature sur la


Partial Dependence Global Intuitive, courbe 1D ou 2D
prédiction

'Que faudrait-il changer pour changer la


Counterfactual Local Actionnable, RGPD art.22
décision ?'

35.4 Réglementations et cadre légal


■ RGPD (Europe) : droit à l'explication pour les décisions automatisées (art. 22)
■ AI Act (Europe 2024) : classification par risque, obligations selon le niveau
■ Bâle III/IV : modèles de risque bancaire doivent être validés et explicables
■ Equal Credit Opportunity Act (USA) : interdiction de discrimination dans le crédit

35.5 Checklist éthique avant déploiement


■ ■ Dataset représentatif de la population cible ?
■ ■ Variables proxy discriminatoires exclues (code postal ≈ origine ethnique) ?
■ ■ Performances comparées entre sous-groupes démographiques ?
■ ■ Mécanisme d'appel humain prévu pour les décisions automatisées ?
■ ■ Documentation complète (Model Card, Datasheet for Datasets) ?
■ ■ Tests adversariaux réalisés (que se passe-t-il avec des inputs extrêmes) ?
■ ■ Politique de retrait du modèle définie en cas de problème ?
■ ■ Consentement des utilisateurs pour l'utilisation de leurs données ?

— 33 —
COURS COMPLET — MACHINE LEARNING De zéro à expert

■ CONCLUSION

Vous avez parcouru l'ensemble du paysage du Machine Learning : des fondements mathématiques aux
modèles les plus avancés, des données brutes au déploiement en production. Le ML est un domaine en
évolution permanente — restez curieux, pratiquez sur des projets réels (Kaggle, projets personnels), et ne
perdez jamais de vue l'impact humain de vos modèles.

Voie recommandée :

1. Maîtriser Python + NumPy + Pandas + Matplotlib

2. Scikit-learn : tous les algorithmes classiques

3. Un projet de bout en bout (Kaggle ou dataset réel)

4. PyTorch ou TensorFlow pour le Deep Learning

5. Spécialisation (NLP, Vision, RL, Time Series) selon vos intérêts

6. MLOps : déploiement, monitoring, reproductibilité

— 34 —

Vous aimerez peut-être aussi