Évaluation, métriques, biais-variance fiche thématique 06 · 23 questions · v1 du 11/09/2026 · couvre les cartes Anki « swe » ml::bias-variance, cross-validation, leakage, metriques, metriques::roc, seuil, calibration, desequilibre

Fil rouge : détection de fraude, 1 fraude pour 1 000 transactions, 100 000 transactions, un modèle à TPR = 0,9 et FPR = 0,01 ; et un second modèle qui affiche une AUC de 0,99 en validation croisée.

01

Biais, variance, bruit

QAléa = tirage du dataset D. Définis Biais[f̂(x₀)] et VarD[f̂(x₀)], avec leur référence.

Biais = ED[f̂(x₀)] − f(x₀) : écart de la prédiction moyenne à la vérité, référence f(x₀). Var = ED[(f̂(x₀) − ED[f̂(x₀)])²] : dispersion des prédictions autour de leur propre moyenne, référence ED[f̂(x₀)].

Au tableau

« On imagine réentraîner sur des datasets répétés, donc f̂(x₀) devient une variable aléatoire, donc le biais est l'écart de sa moyenne au vrai et la variance sa dispersion autour de cette moyenne. »

QÉcris la décomposition de l'erreur de test en x₀ sous perte quadratique. Pourquoi le biais au carré ?

Err(x₀) = Biais²[f̂(x₀)] + VarD[f̂(x₀)] + σ². Le biais est signé : sans le carré, deux biais opposés s'annuleraient dans une somme d'erreurs. Le carré vient du développement de E[(y − f̂)²].

Au tableau

« On développe l'espérance du carré de l'erreur, donc apparaissent le carré de l'écart moyen, la variance et le bruit, donc trois termes positifs qui s'additionnent. »

QEn termes de biais et variance, qu'est-ce que l'underfitting et l'overfitting — et pourquoi le gap train/test ne suffit pas ?

Underfitting = biais élevé : trop simple, rate la structure ; erreur train déjà haute. Overfitting = variance élevée : colle au bruit de son dataset ; erreur train basse, gap important. Il faut le niveau du train en plus du gap.

traingapdiagnostic
hautpetitbiais
basgrandvariance
hautgrandles deux
Au tableau

« Un train mauvais signe un biais, donc un modèle trop simple ; un train excellent avec un test décroché signe une variance, donc un modèle qui a mémorisé. »

QOverfit : sur un test, f̂(x₀) tombe loin de f(x₀). Biais élevé ou variance élevée ? Pourquoi ?

Variance. Le biais moyenne sur les datasets : un overfit colle au bruit de son dataset, et sur un autre il tomberait ailleurs. « Loin de f(x₀) sur un test » n'est du biais que si l'écart persiste après moyennage ; si sa direction change avec D, c'est de la variance.

Au tableau

« Le biais est un écart systématique en moyenne, donc un écart qui changerait de signe sur un autre dataset n'est pas un biais, donc l'overfit est de la variance. »

QSur le graphe erreur vs complexité, comment se place σ² et pourquoi l'erreur de test a une forme en U ?

σ² est une horizontale constante, indépendante de la complexité : le plancher. Erreur de test = biais² (décroissant) + variance (croissante) + σ² → un U dont le minimum est le meilleur trade-off.

Au tableau

« Le bruit ne dépend pas du modèle, donc c'est une constante ; le biais baisse et la variance monte avec la complexité, donc leur somme passe par un minimum. »

QLe « bruit irréductible » σ² est-il l'erreur résiduelle ?

Non. σ² = Var(ε), théorique. Les résidus sont empiriques et l'estiment via RSS/(n − p) ; sur le train ils le sous-estiment.

Au tableau

« σ² est une propriété du processus, donc inaccessible ; les résidus sont une estimation après ajustement, donc biaisée vers le bas sur le train. »

02

Estimer l'erreur — CV et leakage

QCross-validation : quel trade-off justifie k = 5 ou 10 plutôt que k = n (LOOCV) ?

Trade-off biais-variance sur l'estimation de l'erreur. LOOCV : biais faible (modèles entraînés sur n − 1), mais variance élevée. k = 5-10 : un peu plus de biais, variance plus faible, k fois moins cher.

Au tableau

« Chaque choix de k produit une estimation de l'erreur qui a elle-même un biais et une variance, donc on arbitre, donc 5 à 10 est le compromis usuel. »

QContre-intuitif : pourquoi LOOCV a-t-il une variance plus élevée que k-fold ?

Ce qui compte n'est pas la taille du fold de test mais la corrélation entre les modèles. En LOOCV, les n modèles partagent n − 2 observations : quasi identiques, donc leurs erreurs sont très corrélées, et la moyenne de variables corrélées a une variance élevée (le terme ρσ² ne disparaît pas — même formule qu'en bagging).

Au tableau

« Moyenner des estimations ne réduit la variance que si elles sont peu corrélées, donc des modèles quasi identiques ne se compensent pas, donc LOOCV a une variance élevée. »

QEn CV, où doit vivre le preprocessing par rapport aux folds ?

fit sur les folds d'entraînement seulement, transform sur le fold de test. Sinon la moyenne, l'écart-type ou la sélection de features ont vu le test : fuite. En scikit-learn, Pipeline dans cross_val_score le garantit.

Au tableau

« Tout ce qui est appris doit l'être sans le fold de test, donc le preprocessing est un apprentissage comme un autre, donc il entre dans le pipeline validé. »

QData leakage : quel test unique les attrape tous ? Deux formes canoniques.

« Cette valeur était-elle disponible, dans cet état, à l'instant où la prédiction doit être faite en production ? » Formes : (1) feature dérivée de la cible ou postérieure à elle ; (2) split qui ignore le temps ou les groupes.

Fraude, janvier à décembre, split aléatoire 80/20 → AUC 0,97 : le modèle a vu le futur. Split temporel → AUC réaliste.

Au tableau

« Une feature n'est légitime que si elle existe au moment de prédire, donc toute valeur postérieure ou dérivée de la cible est une fuite, donc on vérifie la disponibilité temporelle avant le pouvoir prédictif. »

QAUC de 0,99 en validation croisée. Quelles vérifications, dans quel ordre ?

Une performance anormalement bonne est un symptôme. (1) Les features : une variable proxy de la cible ou postérieure ? (2) Le split : aléatoire sur des données temporelles ou groupées ? (3) Le preprocessing : fit avant le split ? (4) Les doublons entre train et test. Garde-fou : un test hors période, jamais touché.

Au tableau

« Une AUC trop belle vient presque toujours d'une fuite, donc on cherche la fuite avant de célébrer, donc features d'abord, split ensuite, preprocessing enfin. »

03

Matrice de confusion, seuil, ROC, PR

QOn baisse le seuil : sens de variation des quatre cases ?

TP ↑, FP ↑, FN ↓, TN ↓. Argument mécanique : baisser le seuil ne fait que convertir des prédictions négatives en positives, donc les cases « prédit + » gonflent et les cases « prédit − » se vident, colonne par colonne.

Au tableau

« Le seuil convertit des négatifs prédits en positifs prédits, donc TP et FP montent, donc FN et TN baissent, sans exception. »

Piège
Croire que TN augmente « parce qu'on est plus sûr des négatifs ». On prédit moins de négatifs, donc TN baisse.
QRègle de lecture des métriques en -Rate ?

Toute métrique en -Rate (TPR, FPR, TNR, FNR) a son dénominateur dans la colonne des vrais : TPR = TP/(TP + FN), FPR = FP/(FP + TN). D'où TPR + FNR = 1 et FPR + TNR = 1.

Au tableau

« Un rate est conditionné à la vérité, donc il se calcule dans une colonne, donc les deux rates d'une même colonne somment à 1. »

QQuand le seuil baisse, le rappel est monotone mais pas la précision. Pourquoi ?

Le rappel a un dénominateur figé (positifs réels) et un numérateur qui ne peut que croître. La précision TP/(TP + FP) a numérateur et dénominateur qui bougent : un nouveau FP la fait baisser, un nouveau TP la fait monter. Tendance décroissante, localement non monotone.

Au tableau

« Le rappel n'a que son numérateur qui bouge, donc il est monotone ; la précision voit ses deux termes bouger, donc elle peut remonter localement. »

QInterprétation probabiliste exacte de l'AUC, et ce qu'elle implique.

AUC = P(score₊ > score₋) pour un positif et un négatif tirés au hasard. Elle ne mesure que le classement : elle agrège tous les seuils, donc ne peut dépendre d'aucune prédiction ni du niveau des scores.

Au tableau

« L'AUC intègre la ROC sur tous les seuils, donc elle ne voit que l'ordre des scores, donc elle vaut la probabilité qu'un positif soit classé au-dessus d'un négatif. »

QLe ratio entre classes change (négatifs décuplés), modèle identique. Pourquoi la ROC-AUC est-elle stable et la précision s'effondre ?

TPR et FPR sont des taux intra-colonne : décupler les négatifs décuple FP et TN ensemble, FPR ne bouge pas. La précision TP/(TP + FP) mélange les colonnes : FP décuplé, TP inchangé.

100 fraudes / 9 900 normales, TP = 60, FP = 20 → précision 0,75. Normales décuplées : FP = 200 → précision 0,23, même ROC.

Au tableau

« La ROC ne regarde que des rapports dans chaque colonne, donc la prévalence s'annule ; la précision compare des cases de deux colonnes, donc elle suit la prévalence. »

QClasse positive rare et coût sur les alertes : ROC-AUC ou PR-AUC ? Et quel piège de baseline ?

PR-AUC : précision et rappel ont FP et TP au dénominateur, donc elles paient les fausses alertes rapportées aux vraies. Baselines : ROC-AUC = 0,5 pour un modèle aléatoire quel que soit le déséquilibre ; PR-AUC = prévalence (0,001). Un PR-AUC de 0,3 sur 1/1 000 est excellent ; 0,5 en ROC est nul.

Fraude 1/1 000, TPR = 0,9, FPR = 0,01 sur 100 000 : 90 vraies fraudes contre 999 fausses alertes — ROC flatteuse, précision 8 %.

Au tableau

« Quand les positifs sont rares, FPR reste petit même avec des milliers de fausses alertes, donc la ROC ment, donc on lit la précision, qui paie chaque fausse alerte. »

04

Scores, calibration, déséquilibre

QDiscrimination et calibration : que mesure chacune ? Un bon ROC-AUC garantit-il la calibration ?

Discrimination = capacité à ordonner (AUC). Calibration = les scores sont des probabilités : parmi les cas scorés 0,8, 80 % sont positifs. Non : multiplier tous les scores par 0,1 est strictement croissant, donc rangs identiques et AUC identique, calibration détruite.

Au tableau

« L'AUC ne voit que l'ordre, donc toute transformation monotone la conserve, donc elle ne dit rien du niveau des scores, donc rien de la calibration. »

QUn modèle affiche une AUC de 0,98. Puis-je utiliser ses scores comme des probabilités ?

Non. Dès que le score sert à autre chose qu'un tri — espérance de perte, priorisation par montant, reporting — il faut vérifier la calibration.

Au tableau

« Une décision de la forme p × montant > coût exige un p vrai, donc un score bien classant mais mal calibré donne des décisions fausses, donc AUC élevée ne suffit pas. »

QCalibration : comment la mesurer, comment la réparer ?

Mesurer : diagramme de fiabilité (scores en bins, fréquence observée vs score moyen prédit ; la diagonale = parfait), score de Brier. Réparer post-hoc : Platt scaling (sigmoïde sur le score), régression isotonique (monotone non paramétrique), sur un jeu de calibration séparé.

Au tableau

« On regroupe les scores et on compare fréquence observée et probabilité annoncée, donc l'écart à la diagonale mesure la miscalibration, donc on apprend une correction monotone qui ne change pas l'AUC. »

QTu rééquilibres (SMOTE, oversampling) avant l'entraînement. Qu'arrive-t-il aux probabilités prédites ?

Elles ne sont plus calibrées : le modèle apprend la prévalence artificielle de son jeu d'entraînement, donc il surestime systématiquement la classe rare en production. Toute décision p × montant > coût devient fausse. Remède : corriger le prior après coup, ou recalibrer.

Au tableau

« Le modèle apprend la prévalence qu'il voit, donc à 50/50 il déplace toutes ses probabilités vers le haut, donc les scores ne sont plus des probabilités de la production. »

QDéséquilibre de classes : seuil, class weights, rééchantillonnage — ordre de préférence et pourquoi ?

(1) Seuil : ne touche ni aux données ni au modèle, préserve la calibration, réversible. (2) Class weights : change la loss, garde les données, calibration à corriger. (3) Rééchantillonnage : modifie la distribution vue, casse la calibration, crée des doublons (oversampling) ou jette de l'information (undersampling). Seul cas défendable de l'undersampling : le coût de calcul.

Au tableau

« Le seuil règle le trade-off sans rien casser, donc on commence par lui, donc on ne touche aux données qu'en dernier recours. »

QLe seuil est un choix métier : quel critère générique en décide le sens ?

La réversibilité de l'erreur, dont le coût monétaire n'est qu'un cas particulier. Dépistage d'un cancer agressif : le faux positif est rattrapé par la biopsie, le faux négatif ne l'est pas → seuil bas, rappel maximal.

Au tableau

« Une erreur rattrapable coûte une vérification, une erreur irréversible coûte tout, donc on déplace le seuil pour rendre rare l'erreur irréversible. »

Réactivation, pas découverte. Cartes sources : deck « 02 ml classique », tags ml::bias-variance, cross-validation, leakage, metriques, metriques::roc, seuil, calibration, desequilibre. Prérequis : fiche 02 (α/β, seuil).
À la craie : réponds à voix haute, avec les « donc », avant de retourner la fiche.
Ta réponse orale, comparée à la fiche :

Le tronc et les branches

que mesure cette métrique, et sur quelle population est-elle calculée ?biais-varianceErr = Biais² + Var + σ²underfit = biais, overfit = varianceσ² : horizontale, plancherrésidus estiment σ², ne sont pas σ²CV / leakagek=5-10 : biais/variance de l'estimationLOOCV : modèles corrélés → variancepreprocessing fit sur train seulementtest : disponible en prod à cet instant ?seuil / ROC / PRbaisser le seuil : TP↑ FP↑ FN↓ TN↓-Rate : dénominateur = colonneAUC = P(score₊ > score₋)rare + coût des alertes → PRcalibrationdiscrimination ≠ calibrationfiabilité, Brier ; Platt, isotoniqueoversampling casse la prévalenceordre : seuil > poids > rééchantillonnage

Quatre branches : la décomposition de l'erreur (ce qui vient du modèle, des données, du monde) ; la procédure d'estimation (CV, leakage) ; la lecture d'un classifieur à seuil (matrice de confusion, ROC, PR) ; et ce qu'on demande aux scores (discrimination vs calibration, déséquilibre).