Parâmetros e hiperparâmetros

41 min
Bloc 1 — Le vocabulaire fondamental
Objectif
savoir distinguer sans hésitation ce qu'un modelo apprend de ce qu'un ingénieur lui impose, savoir nommer les hyperparamètres usuels de chaque famille d'algorithmes et l'effet de chacun, savoir vérifier cette distinction dans le code, et disposer du vocabulaire d'évaluation qui sera approfondi dans les blocs suivants : perte, métrique, score, seuil, référence naïve.
Durée estimée
45 minutes
Prérequis
chapitres 001 à 008
Quiz associés
009.1-quiz-parametre-appris.md à 009.7-quiz-loss-metric-score-seuil-baseline.md

1. Deux catégories de nombres dans un modelo

Un modelo entraîné est un objet numérique : il contient des nombres. Ces nombres ne sont pas tous de même nature, et leur confusion est l'une des erreurs les plus fréquentes en début de pratique.

CatégorieOrigineFixé quandQui décide
parâmetroCalculé par la procédure d'optimisationPendant l'treinamentoL'algoritmo, à partir des dados
hiperparâmetroRenseigné avant le lancement de l'treinamentoAvant l'treinamentoL'ingénieur, ou une procédure de recherche

Le chapitre 008 a distingué l'algoritmo, qui est une procédure, du modelo, qui est le résultat de son application à un conjunto de dados. Les hyperparamètres configurent la procédure ; les paramètres constituent le résultat.

Lecture du diagramme : les hyperparamètres figurent dans le modelo final au même titre que les paramètres, puisqu'ils décrivent sa configuration, mais ils y parviennent par un chemin différent : ils n'ont jamais traversé la procédure d'optimisation.

ANALOGIE — La recette, le réglage du four, la pâte et le gâteau

Quatre objets distincts interviennent dans la confection d'un gâteau, et ils correspondent terme à terme aux quatre objets du Machine Learning.

La recette est la suite d'opérations à conduire : mélanger, incorporer, enfourner, laisser reposer. Elle existe indépendamment de tout gâteau particulier. C'est l'algoritmo.

Les réglages sont les décisions prises avant d'enfourner : four à 180 °C, cuisson de 35 minutes, taille du moule. Le pâtissier les fixe en amont ; aucune n'est découverte pendant la cuisson, toutes la conditionnent. Ce sont les hyperparamètres.

Ce que la pâte devient pendant la cuisson — structure de la mie, coloration de la croûte, répartition de l'humidité — n'est décidé par personne : cela résulte de l'interaction entre les ingrédients et les réglages. Ce sont les paramètres appris.

Le gâteau sorti du four est l'objet fini obtenu en appliquant cette recette à ces ingrédients avec ces réglages. C'est le modelo.

Trois conséquences se lisent directement dans l'analogie. Les mêmes ingrédients et la même recette donnent des gâteaux différents selon les réglages : d'où l'optimisation des hyperparamètres, traitée au chapitre 035. Il n'existe pas de température universellement correcte, mais une température adaptée à un gâteau et à un four : il n'existe pas davantage de max_depth optimal en soi. Enfin, on ne détermine pas la bonne température en servant le gâteau au jury du concours puis en recommençant : le jury ne goûte qu'une fois, les essais se font sur des fournées d'essai. C'est le statut du jeu de test, développé au point 6.

Limite de l'analogie : le pâtissier peut ouvrir le four et observer la cuisson. La formation des paramètres n'est, elle, pas observable pas à pas de façon interprétable. L'analogie décrit les rôles, non la transparence du processus.


2. Le parâmetro : ce que la procédure d'optimisation ajuste

DÉFINITION — parâmetro d'un modelo (model parameter)

Définition rigoureuse

Grandeur interne d'un modelo dont la valeur est déterminée par la procédure d'optimisation appliquée aux dados d'treinamento, en vue de minimiser une fonction objectif définie sur ces dados. L'ensemble des paramètres, noté usuellement θ, identifie de manière univoque une fonction particulière au sein de la famille de fonctions que l'algoritmo est capable de représenter.

Formulation ensembliste

L'algoritmo définit une famille de fonctions candidates, appelée espace d'hypothèses et notée H. L'treinamento consiste à sélectionner un élément h ∈ H. Les paramètres sont les coordonnées de cet élément dans H.

Traduction en langage courant

Ce sont les nombres que le modelo a lui-même calculés à partir des dados, et qui constituent l'essentiel de ce qu'il a retenu. Ce sont eux qui seront écrits dans le fichier du modelo et rechargés au moment de prédire.

Point de vigilance

Un parâmetro n'a de sens que relativement au conjunto de dados qui l'a produit. Réentraîner le même algoritmo sur un autre échantillon produit d'autres paramètres. Un coefficient n'est donc pas une constante physique : c'est une estimation, assortie d'une incertitude d'échantillonnage.

2.1 Modèles linéaires : coefficients et constante

La regressão linéaire multiple modélise la cible comme combinaison affine des variables explicatives :

ŷ = b₀ + b₁·x₁ + b₂·x₂ + ... + b_p·x_p

Les paramètres appris sont les p coefficients b₁ à bpb_p et la constante b₀, soit p + 1 valeurs. Aucune autre grandeur n'est mémorisée.

Exemple chiffré — estimation du prix d'un logement

VariableCoefficient apprisInterprétation
Constante (b₀)42 300Prix de base en dollars, toutes variables nulles
Surface habitable (m²)2 180Chaque m² supplémentaire ajoute 2 180 $
Nombre de chambres6 400Chaque chambre supplémentaire ajoute 6 400 $
Âge du bien (années)−870Chaque année d'ancienneté retire 870 $
Distance au centre (km)−3 150Chaque km supplémentaire retire 3 150 $

Le modelo entier tient dans ces cinq nombres. Pour un logement de 85 m², trois chambres, douze ans, quatre kilomètres du centre : ŷ = 42 300 + 2 180×85 + 6 400×3 − 870×12 − 3 150×4 = 224 570 $.

Point de vigilance : la clause « toutes choses égales par ailleurs » suppose que les variables peuvent varier indépendamment les unes des autres, hypothèse rarement vérifiée. La colinéarité est traitée au chapitre 045.

En regressão logistique, la structure est identique, la combinaison linéaire étant transformée par une sigmoïde pour produire une probabilité. Les paramètres restent les coefficients et la constante (chapitre 036).

2.2 Réseaux de neurones : poids et viés

DÉFINITION — Poids et viés d'un réseau de neurones

Définition rigoureuse

Dans un perceptron multicouche, chaque neurone d'une couche calcule une somme pondérée des sorties de la couche précédente, augmentée d'un terme constant, puis applique une fonction d'activation non linéaire. Les coefficients de la somme pondérée sont les poids (weights), le terme constant est le viés (bias). Poids et viés constituent l'intégralité des paramètres appris du réseau.

Décompte

Pour une couche recevant m entrées et comportant n neurones, le nombre de paramètres est m × n poids plus n viés.

Traduction en langage courant

Chaque connexion entre deux neurones porte un nombre, qui dit l'importance accordée à ce que transmet la connexion. Chaque neurone porte en plus un nombre qui décale son seuil de déclenchement.

Point de vigilance terminologique

Le mot « viés » possède ici un sens strictement technique : c'est le terme constant d'une transformation affine. Il ne doit pas être confondu avec le viés statistique du compromis viés-variância (chapitre 032), ni avec le viés sociétal d'un modelo discriminatoire (chapitre 080). Trois notions homonymes, trois définitions disjointes.

Exemple chiffré — perceptron multicouche pour un score d'attrition

Architecture : 20 variables en entrée, deux couches cachées de 64 puis 32 neurones, une sortie.

TransitionPoidsviésTotal
Entrée → couche 120 × 64 = 1 280641 344
Couche 1 → couche 264 × 32 = 2 048322 080
Couche 2 → sortie32 × 1 = 32133
Total3 360973 457

Ce réseau apprend 3 457 nombres. Le nombre de couches et leur taille — soit hidden_layer_sizes=(64, 32) — ne sont pas appris : ce sont des hyperparamètres, et ce sont eux qui déterminent le nombre de paramètres à apprendre. Un hiperparâmetro gouverne donc la quantité de paramètres, ce qui constitue le lien direct avec la notion de capacité, traitée au point 7.

2.3 Arbres de décision : structure, variables de division et seuils

Un árvore de decisão n'a ni coefficient ni poids. Ce qu'il apprend est de nature combinatoire :

  • pour chaque nœud interne, la variable sur laquelle diviser ;
  • pour chaque nœud interne, le seuil de division sur cette variable ;
  • la topologie de l'arbre, c'est-à-dire quels nœuds sont divisés et lesquels deviennent des feuilles ;
  • pour chaque feuille, la valeur prédite ou la distribution des classes.

Vue partielle : les trois premiers niveaux de l'arbre effectivement obtenu au point 5.3, dont deux branches ont été abrégées.

La valeur 32,50 n'a pas été choisie par un analyste : l'algoritmo a évalué les divisions candidates sur chaque variable et retenu celle qui réduisait le plus l'impureté du nœud. Elle est apprise, au même titre qu'un coefficient de regressão (mécanisme détaillé au chapitre 037). Ce que l'ingénieur a fixé est le cadre de cette recherche : profondeur maximale, effectif minimal d'une feuille, critère d'impureté.

2.4 Machines à vecteurs de support

DÉFINITION — Vecteurs de support (support vectors)

Définition rigoureuse

Dans la formulation duale d'une máquina de vetor de suporte (Boser, Guyon et Vapnik, 1992 ; Cortes et Vapnik, 1995), la solution s'exprime comme une combinaison linéaire de fonctions noyau évaluées sur un sous-ensemble des observations d'treinamento. Les observations dont le coefficient dual αi\alpha_i est strictement positif sont appelées vecteurs de support : ce sont les seules qui interviennent dans la fonction de décision.

Ce qui est appris

Les coefficients duaux αi\alpha_i, l'identité des observations retenues comme vecteurs de support, et la constante de décision. Avec un noyau linéaire, ces quantités se recomposent en un vecteur de coefficients homogène à celui d'un modelo linéaire.

Traduction en langage courant

Le modelo retient les exemples d'treinamento situés près de la frontière entre les classes et leur affecte un poids ; les exemples éloignés n'influencent pas la décision.

Point de vigilance

Le nombre de vecteurs de support est un résultat de l'treinamento, jamais une consigne. Un nombre proche de l'effectif d'treinamento signale une frontière très irrégulière et un risque de sobreajuste, souvent associé à un gamma trop grand (chapitre 041).

2.5 Le cas des méthodes à mémorisation

DÉFINITION — Méthode non paramétrique et apprentissage paresseux

Définition rigoureuse

Une méthode est dite non paramétrique lorsque la complexité de la fonction apprise n'est pas bornée par un nombre de paramètres fixé a priori, mais croît avec l'effectif des dados d'treinamento. Une méthode est dite paresseuse (lazy learning) lorsqu'elle diffère tout calcul de generalização jusqu'à la requête de previsão.

Application aux k vizinhos mais próximos

L'appel à fit() sur un KNeighborsClassifier ne calcule aucun coefficient : il mémorise le jeu d'treinamento et construit éventuellement une structure d'indexation. Ce qui est « appris » est le conjunto de dados lui-même : le modelo ne résume rien, il compare la nouvelle observação aux exemples conservés au moment de répondre.

Point de vigilance

Non paramétrique ne signifie pas « sans hiperparâmetro ». Le nombre de voisins k, la métrique de distance et la pondération sont décisifs (chapitre 040).

2.6 Ordres de grandeur

modeloNature des paramètres apprisNombre pour un cas typique
regressão linéaire, 20 variablesCoefficients + constante21
regressão logistique binaire, 50 variablesCoefficients + constante51
regressão logistique, 10 classes, 100 variablesMatrice de coefficients + constantes1 010
árvore de decisão, max_depth=3Variables, seuils, valeurs de feuilles15 nœuds dont 8 feuilles
árvore de decisão, max_depth=10Idem757 nœuds dont 379 feuilles
floresta aleatória, 300 arbres, max_depth=6Idem, agrégé sur 300 arbresenviron 35 000 nœuds
perceptron multicouche (20, 64, 32, 1)Poids et viés3 457
SVM à noyau RBF, 4 000 observationsVecteurs de support et coefficients duauxquelques centaines à quelques milliers
k vizinhos mais próximos, 4 000 observationsLe jeu d'treinamento mémorisé4 000 observations conservées

Les lignes « arbre » et « forêt » reprennent les valeurs mesurées au point 5. Elles illustrent un fait central : le nombre de paramètres appris n'est pas une propriété de l'algoritmo seul, il est déterminé conjointement par les hyperparamètres et par les dados.


3. L'hiperparâmetro : ce que l'ingénieur fixe avant l'optimisation

DÉFINITION — hiperparâmetro (hyperparameter)

Définition rigoureuse

Grandeur configurant l'algoritmo d'apprentissage, dont la valeur est fixée préalablement à l'exécution de la procédure d'optimisation et n'est pas modifiée par celle-ci. Les hyperparamètres déterminent l'espace d'hypothèses exploré, la fonction objectif effectivement minimisée, la procédure numérique employée et son critère d'arrêt.

Formulation opératoire

Un hiperparâmetro est une variable dont la valeur doit être connue pour que l'treinamento puisse commencer, et dont la valeur est inchangée lorsque l'treinamento se termine.

Traduction en langage courant

Ce sont les réglages que l'on écrit soi-même entre les parenthèses du modelo, avant de lancer l'apprentissage.

Origine du préfixe

Le préfixe « hyper- » indique un niveau supérieur : ces grandeurs se situent au-dessus des paramètres, puisqu'elles conditionnent la manière dont ces derniers seront déterminés.

Point de vigilance — homonymie statistique

En statistique bayésienne, « hiperparâmetro » désigne un parâmetro de la loi de probabilité a priori portant sur les paramètres du modelo. Les deux acceptions partagent la même idée de second niveau, mais ne recouvrent pas les mêmes objets. En contexte d'apprentissage automatique appliqué, c'est l'acception donnée ci-dessus qui prévaut.

3.1 Les hyperparamètres usuels par famille d'algorithmes

algoritmohiperparâmetroRôleEffet d'une augmentation
regressão logistiqueCInverse de la force de régularisationRégularisation plus faible, coefficients plus libres, capacité accrue
regressão logistiquepenalty / l1_ratioNature de la pénalité (L1, L2, mixte)L1 annule des coefficients, L2 les contracte
Ridge, Lasso, ElasticNetalphaForce de la régularisationCoefficients plus contraints, capacité réduite
árvore de decisãomax_depthProfondeur maximaleArbre plus profond, capacité accrue, sobreajuste probable
árvore de decisãomin_samples_leafEffectif minimal d'une feuilleFeuilles plus peuplées, arbre plus régulier, capacité réduite
árvore de decisãoccp_alphaCoût de complexité pour l'élagageÉlagage plus agressif, capacité réduite
floresta aleatórian_estimatorsNombre d'arbres agrégésvariância de previsão réduite, coût de calcul accru
floresta aleatóriamax_featuresVariables candidates par divisionArbres plus corrélés entre eux, gain de l'agrégation réduit
Gradient boostinglearning_ratePas de contraction de chaque arbreApprentissage plus rapide, risque de sobreajuste accru
Gradient boostingn_estimatorsNombre d'itérations de boostingCapacité accrue, sobreajuste possible sans arrêt anticipé
Gradient boostingsubsampleFraction d'observations par itérationMoins de régularisation stochastique lorsqu'elle tend vers 1
k vizinhos mais próximosn_neighbors (k)Nombre de voisins consultésFrontière plus lisse, capacité réduite
SVMCPénalisation des violations de margeMarge plus étroite, ajustement plus strict aux dados
SVMkernel, gammaForme de la frontièregamma élevé : frontière très locale, sobreajuste
perceptron multicouchehidden_layer_sizesArchitecture du réseauPlus de paramètres à apprendre, capacité accrue
perceptron multicouchealphaRégularisation L2 des poidsPoids plus contraints, capacité réduite

Point de vigilance sur C et alpha : ces deux hyperparamètres régissent la même chose — la force de la régularisation — mais dans des sens opposés. alpha est proportionnel à la force de la pénalité ; C en est l'inverse. Augmenter alpha régularise davantage ; augmenter C régularise moins. Cette inversion est une source d'erreur constante en entretien technique.

DÉFINITION — Force de régularisation : alpha et C

Définition rigoureuse

La régularisation ajoute à la função de perda un terme pénalisant la magnitude des paramètres, afin de restreindre l'espace des solutions admissibles. Le problème résolu devient la minimisation de J(θ) = perte_sur_les_données(θ) + λ · pénalité(θ). Ridge et Lasso exposent directement λ sous le nom alpha ; la regressão logistique et les SVM exposent C, défini comme l'inverse de λ à une constante près.

Traduction en langage courant

alpha est un frein : plus il est grand, plus le modelo est bridé. C est une autorisation : plus il est grand, plus le modelo est libre de coller aux dados.

Point de vigilance

La régularisation n'a de sens que sur des variables d'échelle comparable : pénaliser des coefficients portant sur des unités hétérogènes revient à pénaliser arbitrairement certaines variables. padronização au chapitre 023, régularisation au chapitre 047.

DÉFINITION — Taux d'apprentissage (learning rate)

Définition rigoureuse

Coefficient multiplicatif appliqué à la direction de mise à jour des paramètres à chaque itération d'une optimisation itérative : dans une descente de gradient, θ_(t+1) = θ_t − η · ∇J(θ_t), où η désigne le taux d'apprentissage. En gradient boosting, le même réglage s'interprète comme un facteur de contraction appliqué à la contribution de chaque estimateur ajouté.

Traduction en langage courant

La taille du pas effectué à chaque correction. Un pas trop grand fait manquer le minimum et peut faire diverger l'apprentissage ; un pas trop petit ne progresse pas assez vite pour le budget d'itérations disponible.

Point de vigilance

learning_rate et n_estimators sont couplés en boosting : diviser le taux d'apprentissage par deux impose approximativement de doubler le nombre d'itérations pour atteindre un ajustement comparable. Ces deux hyperparamètres ne doivent donc jamais être réglés indépendamment l'un de l'autre. Traité au chapitre 039.

3.2 Les cinq fonctions d'un hiperparâmetro

Tous les hyperparamètres n'ont pas la même portée. Les classer par fonction évite de les régler au hasard.

Les hyperparamètres de capacité sont déterminants et se règlent en priorité ; ceux d'optimisation pèsent surtout en boosting et en réseaux de neurones ; ceux de structure d'ensemble ont des rendements rapidement décroissants ; ceux de traitement du problème deviennent critiques en contexte déséquilibré ou à coûts d'erreur asymétriques ; ceux d'exécution n'ont aucune incidence en espérance sur la performance.

Point de vigilance sur random_state : cet argument est formellement un hiperparâmetro — il est fixé avant l'treinamento et n'est pas ajusté par la procédure. Il ne doit cependant jamais être inclus dans une recherche d'optimisation. Sélectionner la graine qui maximise le score de validation revient à exploiter le bruit d'échantillonnage, non à améliorer le modelo. Le rôle légitime de random_state est la reproductibilité.


4. Le critère de distinction opérationnel, cas limites et pièges

4.1 La question unique à se poser

Une seule question sépare les deux catégories, quelle que soit la bibliothèque ou l'algoritmo employé :

Cette grandeur est-elle ajustée par la procédure d'optimisation exécutée pendant fit(), ou est-elle fixée avant que cette procédure ne démarre ?

DÉFINITION — La convention de nommage de scikit-learn

Règle normative de la bibliothèque

Dans l'API de scikit-learn, la distinction est matérialisée dans le nommage :

  • les hyperparamètres sont les arguments du constructeur de l'estimateur ; ils sont accessibles par get_params(), modifiables par set_params(), et leur nom ne comporte pas de suffixe ;
  • les attributs appris pendant fit() portent un nom suffixé par un caractère de soulignement : coef_, intercept_, feature_importances_, classes_, tree_, estimators_, support_vectors_.

Conséquence pratique

Accéder à un attribut suffixé avant tout appel à fit() lève une exception NotFittedError. C'est le test le plus rapide pour trancher : un attribut qui n'existe pas avant l'treinamento est nécessairement appris.

Point de vigilance terminologique

La méthode s'appelle get_params() alors qu'elle retourne les hyperparamètres. Ce choix de nommage tient à la terminologie générale de la programmation, où « parâmetro » désigne un argument de fonction. Il entretient une confusion regrettable avec la terminologie statistique. Dans ce cours, et en entretien, « parâmetro » conserve toujours son sens statistique : grandeur estimée à partir des dados.

4.2 Classement de cas concrets

GrandeurCatégorieJustification
coef_ d'une regressão logistiqueparâmetroCalculé par le solveur pour minimiser la perte
C d'une regressão logistiquehiperparâmetroDoit être connu avant l'appel au solveur
Seuil 32,50 sur anciennete_mois dans un arbreparâmetroSélectionné par la recherche de division
max_depth d'un arbrehiperparâmetroBorne la recherche, n'est pas issu d'elle
feature_importances_ d'une forêtparâmetro dérivéCalculé à partir de la structure apprise
n_estimators d'une forêthiperparâmetroFixe le nombre d'arbres à construire
max_iter d'un solveurhiperparâmetroBudget accordé avant démarrage
n_iter_ d'un solveurRésultat d'exécutionNombre d'itérations réellement consommées
mean_ et scale_ d'un StandardScalerparâmetro du transformateurEstimés sur les dados d'treinamento
k d'un KNeighborsClassifierhiperparâmetroFixé avant, jamais optimisé par fit()
Nombre de vecteurs de support obtenusRésultat d'exécutionConséquence de l'optimisation duale
Nombre de composantes d'une ACPhiperparâmetroChoisi avant ; les axes, eux, sont appris
Seuil de décision à 0,50hiperparâmetro de décisionConvention par défaut, non issue de fit()
random_statehiperparâmetro d'exécutionFixé avant, mais ne doit pas être optimisé

4.3 Les quatre cas limites à maîtriser

Cas limite 1 — Les statistiques d'un préprocesseur. La moyenne et l'écart type d'un StandardScaler sont estimés à partir des dados : ce sont des paramètres au sens de la procédure fit(), même s'ils n'appartiennent pas au modelo prédictif. Conséquence décisive : ils s'estiment sur le seul jeu d'treinamento puis s'appliquent tels quels aux autres jeux. Les estimer sur l'ensemble des dados constitue une fuite d'information (chapitre 028).

Cas limite 2 — L'arrêt anticipé. Avec early_stopping=True, le nombre d'itérations retenu est déterminé par la procédure elle-même, en observant la perte sur un jeu de validation interne. La frontière semble se brouiller ; elle ne se brouille pas. La décision d'activer l'arrêt anticipé, la taille de ce jeu interne, la patience et la métrique surveillée restent des hyperparamètres fixés en amont ; le nombre d'itérations retenu est un résultat.

Cas limite 3 — Les hyperparamètres optimisés automatiquement. Qu'une recherche sur grille détermine max_depth ne le transforme pas en parâmetro : la recherche est une boucle externe qui relance des entraînements complets, chacun avec une valeur fixée d'avance. Un parâmetro est ajusté à l'intérieur d'un treinamento, un hiperparâmetro est choisi entre plusieurs entraînements (chapitre 035).

Cas limite 4 — Les paramètres dérivés. feature_importances_ n'est pas optimisé directement : c'est une statistique calculée après coup à partir des réductions d'impureté de la structure apprise. Elle relève néanmoins des grandeurs apprises, puisqu'elle n'existe pas avant fit() et dépend entièrement des dados. Même remarque pour le coef_ d'une SVM linéaire, recomposé à partir des coefficients duaux.


5. Vérification en code : get_params() contre coef_ et feature_importances_

Le conjunto de dados de démonstration décrit 4 000 clients d'un opérateur télécom, avec cinq variables explicatives et une cible binaire a_resilie dont le taux de positifs vaut 0,3795.

5.1 Les hyperparamètres : get_params()

python
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
import pandas as pd, numpy as np

Xs = pd.DataFrame(StandardScaler().fit_transform(X), columns=X.columns)

lr = LogisticRegression(C=1.0, max_iter=1000, random_state=0)
lr.fit(Xs, y)

for k, v in sorted(lr.get_params().items()):
    print(f"{k}: {v!r}")
C: 1.0
class_weight: None
dual: False
fit_intercept: True
intercept_scaling: 1
l1_ratio: 0.0
max_iter: 1000
n_jobs: None
penalty: 'deprecated'
random_state: 0
solver: 'lbfgs'
tol: 0.0001
verbose: 0
warm_start: False

Interprétation. Quatorze réglages sont exposés alors que trois seulement ont été renseignés ; les onze autres sont les valeurs par défaut de l'estimateur. Toutes étaient connues avant fit() et aucune n'a été modifiée par lui : un second appel après treinamento retourne le même dictionnaire.

Point de vigilance sur les valeurs par défaut. Un modelo instancié sans argument n'est pas un modelo « sans hyperparamètres » : c'est un modelo dont tous les hyperparamètres ont pris leur valeur par défaut, qui sont des conventions de bibliothèque et non des optima. C=1.0 régularise déjà substantiellement.

Point de vigilance sur les versions. La sortie provient de scikit-learn 1.8, où penalty est en cours de dépréciation au profit de l1_ratio, la valeur 0.0 désignant une pénalité L2 pure ; les versions antérieures affichent penalty: 'l2'. Les hyperparamètres appartiennent à l'interface d'une bibliothèque et évoluent avec elle ; les paramètres appris relèvent de la formulation mathématique du modelo et ne changent pas de nom.

5.2 Les paramètres appris : coef_ et intercept_

python
print(pd.Series(np.round(lr.coef_[0], 4), index=X.columns).to_string())
print("intercept_:", np.round(lr.intercept_, 4))
print("n_iter_:", lr.n_iter_)
print("classes_:", lr.classes_)
anciennete_mois     -0.8957
facture_mensuelle    0.5515
nb_appels_support    0.5829
satisfaction        -0.7586
data_go_moyen       -0.0216
intercept_: [-0.6809]
n_iter_: [6]
classes_: [0 1]

Interprétation. Ces six nombres — cinq coefficients et une constante — constituent l'intégralité de ce que le modelo a appris, et aucun n'a été écrit par l'ingénieur. Les variables ayant été standardisées, les coefficients sont comparables entre eux : l'ancienneté domine, la consommation de dados est négligeable.

VariableCoefficientRapport de cotesLecture métier
anciennete_mois−0,89570,41Un écart type d'ancienneté supplémentaire divise la cote de résiliation par 2,4
satisfaction−0,75860,47Un écart type de satisfaction supplémentaire divise la cote par 2,1
nb_appels_support+0,58291,79Un écart type d'appels supplémentaire multiplie la cote par 1,8
facture_mensuelle+0,55151,74Effet comparable, de même sens
data_go_moyen−0,02160,98Aucun effet exploitable

Point de vigilance. n_iter_ et classes_ portent un underscore final et n'existent qu'après fit(), sans être de même nature que coef_. n_iter_ est un diagnostic de convergence : la valeur 6, très inférieure au budget max_iter=1000, indique une convergence sans interruption. Une valeur égale à max_iter signalerait un arrêt sur épuisement du budget, donc un modelo non convergé.

5.3 Un arbre : hyperparamètres imposés contre structure apprise

python
from sklearn.tree import DecisionTreeClassifier, export_text

dt = DecisionTreeClassifier(max_depth=3, min_samples_leaf=50, random_state=0)
dt.fit(X, y)

print("noeuds:", dt.tree_.node_count, "profondeur:", dt.get_depth(),
      "feuilles:", dt.get_n_leaves())
print(export_text(dt, feature_names=list(X.columns), decimals=2))
print(pd.Series(np.round(dt.feature_importances_, 4), index=X.columns).to_string())
noeuds: 15 profondeur: 3 feuilles: 8
|--- anciennete_mois <= 32.50
|   |--- satisfaction <= 2.50
|   |   |--- nb_appels_support <= 0.50
|   |   |   |--- class: 1
|   |   |--- nb_appels_support >  0.50
|   |   |   |--- class: 1
|   |--- satisfaction >  2.50
|   |   |--- facture_mensuelle <= 59.15
|   |   |   |--- class: 0
|   |   |--- facture_mensuelle >  59.15
|   |   |   |--- class: 1
|--- anciennete_mois >  32.50
|   |--- satisfaction <= 2.50
|   |   |--- nb_appels_support <= 1.50
|   |   |   |--- class: 0
|   |   |--- nb_appels_support >  1.50
|   |   |   |--- class: 1
|   |--- satisfaction >  2.50
|   |   |--- facture_mensuelle <= 59.45
|   |   |   |--- class: 0
|   |   |--- facture_mensuelle >  59.45
|   |   |   |--- class: 0

anciennete_mois      0.4497
facture_mensuelle    0.1065
nb_appels_support    0.1156
satisfaction         0.3282
data_go_moyen        0.0000

Ce qui a été imposé. Deux valeurs seulement, max_depth=3 et min_samples_leaf=50. La profondeur obtenue vaut exactement 3 : la contrainte est active, sans elle l'arbre aurait continué de croître.

Ce qui a été appris. Sept divisions internes, chacune définie par un couple (variable, seuil), et huit feuilles avec leur distribution de classes. Les valeurs 32,50, 2,50, 59,15, 0,50, 1,50 et 59,45 sont toutes issues de la recherche de division. Que facture_mensuelle soit coupée à 59,15 dans une branche et à 59,45 dans une autre montre qu'il s'agit de grandeurs estimées localement, non de seuils métier.

Les importances. feature_importances_ est un vecteur sommant à 1 qui répartit la réduction totale d'impureté entre les variables. data_go_moyen obtient 0,0000 : sous cette contrainte de profondeur, la variable n'a jamais été retenue pour une division. Ce zéro ne signifie donc pas « sans lien avec la cible » mais « jamais sélectionnée dans ces conditions » ; une profondeur supérieure lui attribuerait une importance non nulle. Limites de cet indicateur au chapitre 080.

Deux paires de sous-branches aboutissent à la même classe prédite. La division a malgré tout été retenue parce qu'elle réduit l'impureté : les probabilités prédites diffèrent, même lorsque la classe majoritaire coïncide (chapitre 029).

5.4 Un hiperparâmetro détermine le nombre de paramètres

python
for d in [2, 3, 5, 10, None]:
    m = DecisionTreeClassifier(max_depth=d, random_state=0).fit(X, y)
    print(f"max_depth={str(d):>4} -> noeuds={m.tree_.node_count:>5}"
          f"  feuilles={m.get_n_leaves():>5}  acc_train={m.score(X, y):.4f}")
max_depth=   2 -> noeuds=    7  feuilles=    4  acc_train=0.6980
max_depth=   3 -> noeuds=   15  feuilles=    8  acc_train=0.7202
max_depth=   5 -> noeuds=   63  feuilles=   32  acc_train=0.7445
max_depth=  10 -> noeuds=  757  feuilles=  379  acc_train=0.8498
max_depth=None -> noeuds= 2033  feuilles= 1017  acc_train=1.0000

Interprétation. Un unique hiperparâmetro fait passer le modelo de 7 à 2 033 nœuds appris, soit un facteur 290, et l'acurácia d'treinamento progresse jusqu'à 1,0000 : l'arbre non contraint isole chaque observação. Cette valeur n'est pas une réussite mais une mémorisation — sur des dados bruitées où le taux de positifs vaut 0,38, aucun modelo honnête ne classe parfaitement son jeu d'treinamento (chapitre 031).

5.5 Le même mécanisme sur la régularisation

python
for C in [0.001, 0.01, 0.1, 1.0, 100.0]:
    m = LogisticRegression(C=C, max_iter=1000).fit(Xs, y)
    print(f"C={C:<8} coef_={np.round(m.coef_[0], 3)}  "
          f"norme_L2={np.linalg.norm(m.coef_):.3f}")
C=0.001    coef_=[-0.336  0.205  0.22  -0.283 -0.002]  norme_L2=0.533
C=0.01     coef_=[-0.737  0.451  0.479 -0.623 -0.014]  norme_L2=1.168
C=0.1      coef_=[-0.877  0.539  0.57  -0.742 -0.021]  norme_L2=1.392
C=1.0      coef_=[-0.896  0.551  0.583 -0.759 -0.022]  norme_L2=1.422
C=100.0    coef_=[-0.898  0.553  0.584 -0.76  -0.022]  norme_L2=1.425

Interprétation. C ne figure jamais dans coef_ mais en gouverne l'amplitude : la norme des coefficients passe de 0,533 à 1,425 lorsque C croît de 0,001 à 100. La contraction est uniforme et conserve l'ordre des variables. Au-delà de C=1, les coefficients ne bougent pratiquement plus : la pénalité est devenue négligeable devant le terme de perte. Explorer C=10 000 serait sans effet ici, ce qui justifie les grilles logarithmiques bornées (chapitre 035).

Formulation à retenir : les hyperparamètres ne sont pas dans le modelo à côté des paramètres, ils sont les contraintes sous lesquelles les paramètres ont été calculés.


6. Pourquoi les hyperparamètres ne se règlent jamais sur le jeu de test

6.1 Le principe

Régler un hiperparâmetro suppose de comparer plusieurs entraînements et de retenir le meilleur, ce qui exige un jeu non utilisé pour l'ajustement des paramètres. La tentation est d'employer le jeu de test, puisque c'est lui qui porte l'estimation de performance. C'est précisément l'usage qui lui est interdit.

Toute décision prise en regardant un conjunto de dados transfère de l'information de ce jeu vers le modelo. Ce jeu cesse alors d'être inédit, et le score qu'il produit cesse d'estimer la performance sur des dados nouvelles.

JeuCe qui y est décidéNombre de consultationsCe que son score estime
treinamentoLes paramètres du modeloUne fois par treinamentoLa capacité à restituer les dados vues, sans valeur prédictive
ValidationLes hyperparamètres, l'algoritmo, le seuil, les variables retenuesUne fois par configuration essayéeUne performance optimiste, viésée par la sélection
TestRienUne seule fois, à la finLa performance attendue sur dados nouvelles

6.2 Le mécanisme quantitatif du viés de sélection

Le score obtenu sur un jeu fini est entaché d'une variabilité d'échantillonnage : sur 800 observations de validation, l'écart type d'une acurácia voisine de 0,75 vaut environ 0,015. Comparer K configurations et retenir le maximum revient à sélectionner, parmi K tirages bruités, celui dont le bruit est le plus favorable.

Configurations comparéesÉcart attendu entre le maximum observé et la vraie performance
1environ 0,000
10environ +0,023
50environ +0,032
200environ +0,040

Ces ordres de grandeur correspondent à l'espérance du maximum de K variables gaussiennes centrées d'écart type 0,015. La conclusion est structurelle et ne dépend pas du soin apporté à la démarche : le score de la configuration retenue est optimiste par construction. Un jeu supplémentaire, resté hors de toute décision, est donc nécessaire pour obtenir une estimation non viésée.

6.3 Formulations opérationnelles

  • Le jeu de test est un budget à usage unique : il se consomme lorsqu'on le regarde, pas lorsqu'on le modifie.
  • Dès qu'un choix quelconque est arbitré sur un jeu — hiperparâmetro, algoritmo, seuil, sous-ensemble de variables, stratégie d'imputation — ce jeu joue le rôle de jeu de validation, quel que soit le nom de la variable qui le contient. Un jeu de test consulté plusieurs fois se dégrade ainsi en jeu de validation, de façon graduelle et invisible dans les métriques.
  • L'écart entre la performance annoncée en réunion et celle constatée en production trouve ici l'une de ses deux causes principales, l'autre étant la fuite d'information traitée au chapitre 028.

Renvois : la construction des trois jeux est traitée au chapitre 026, les schémas de découpage particuliers au chapitre 027, la validação cruzada au chapitre 034, les procédures de recherche d'hyperparamètres au chapitre 035, et le choix du seuil de décision au chapitre 062.


7. Capacité d'un modelo et compromis viés-variância

DÉFINITION — Capacité d'un modelo (model capacity)

Définition rigoureuse

Mesure de la richesse de la famille de fonctions qu'un algoritmo, configuré d'une certaine manière, est en mesure de représenter. Elle est formalisée par la dimension de Vapnik-Chervonenkis (Vapnik et Chervonenkis, 1971) — cardinal du plus grand ensemble de points que la famille peut séparer selon tous les étiquetages possibles — ou par des mesures apparentées telles que la complexité de Rademacher.

Rôle respectif des deux catégories de grandeurs

Les hyperparamètres délimitent l'espace d'hypothèses H ; les paramètres sélectionnent un élément h à l'intérieur de H. Augmenter la capacité, c'est élargir H.

Traduction en langage courant

Jusqu'à quel point un modelo peut épouser la forme des dados. Une capacité insuffisante l'empêche de représenter le phénomène ; une capacité excessive lui permet d'épouser aussi le bruit.

Point de vigilance

La capacité n'est pas la performance : un arbre non contraint atteint une acurácia parfaite sur l'treinamento et peut être médiocre sur dados nouvelles (point 5.4).

hiperparâmetroAugmenter sa valeurCapacitéRisque dominant si poussé à l'extrême
max_depthArbre plus profondAugmentesobreajuste
min_samples_leafFeuilles plus peupléesDiminuesubajuste
alpha (Ridge, Lasso, MLP)Pénalité plus forteDiminuesubajuste
C (logistique, SVM)Pénalité plus faibleAugmentesobreajuste
n_neighbors (k)Voisinage plus largeDiminuesubajuste
hidden_layer_sizesRéseau plus large ou plus profondAugmentesobreajuste
gamma (noyau RBF)Influence plus localeAugmentesobreajuste marqué
learning_rate (boosting)Pas plus grandAugmente à budget d'itérations fixésobreajuste
n_estimators (floresta aleatória)Plus d'arbres agrégésStabilise la variânciaCoût de calcul, sans dégradation notable

Point de vigilance sur n_estimators. La dernière ligne fait exception. Dans une floresta aleatória, augmenter le nombre d'arbres réduit la variância de l'agrégat sans accroître le sobreajuste, avec des rendements rapidement décroissants. En boosting, chaque itération corrige les résidus des précédentes : n_estimators y augmente la capacité et doit être borné, par arrêt anticipé ou par validation. Une même dénomination recouvre donc deux comportements opposés selon la famille d'algorithmes.

Le compromis. Une capacité insuffisante produit une erreur systématique, le viés : le modelo échoue aussi bien sur l'treinamento que sur le test. Une capacité excessive produit une sensibilité au jeu d'treinamento particulier, la variância : le modelo réussit sur l'treinamento et échoue sur dados nouvelles. Régler les hyperparamètres de capacité revient à arbitrer entre ces deux régimes. Compromis viés-variância au chapitre 032, sobreajuste et subajuste au chapitre 031, leviers de correction au chapitre 033.


8. Le vocabulaire connexe : perte, métrique, score, seuil, référence naïve

Ces cinq notions sont introduites ici parce qu'elles sont indissociables de la distinction précédente : la perte est ce que l'optimisation minimise pour produire les paramètres, la métrique est ce que la validation compare pour choisir les hyperparamètres, le seuil et la référence naïve sont deux décisions d'ingénierie que rien n'apprend. Chacune est traitée en profondeur plus loin.

DÉFINITION — função de perda (loss function)

Définition rigoureuse

Fonction ℓ(y, ŷ) associant à un couple formé d'une valeur observée et d'une valeur prédite un réel positif mesurant le coût de l'écart. Sa moyenne sur le jeu d'treinamento constitue le risque empirique, quantité effectivement minimisée par la procédure d'optimisation. On parle indifféremment de fonction de coût, de fonction objectif ou de critère.

Traduction en langage courant

La mesure de l'erreur que le modelo cherche à faire diminuer pendant qu'il apprend. Ce sont les points perdus, et l'apprentissage consiste à en perdre le moins possible.

Contrainte technique

Une função de perda doit être optimisable par la procédure employée : le plus souvent différentiable, ou au moins décomposable en critères locaux, ce qui exclut la plupart des métriques métier.

Point de vigilance

La perte est calculée sur le jeu d'treinamento pendant l'apprentissage. Une perte faible sur l'treinamento ne renseigne en rien sur la generalização. La comparaison des pertes d'treinamento et de validation est traitée au chapitre 030.

TâchePerte usuelleCe qu'elle pénalise
regressãoerro quadrático médio (MSE)Le carré de l'écart, donc fortement les grands écarts
regressão robusteErreur absolue (MAE), perte de HuberLinéairement, donc moins sensible aux valeurs extrêmes
classificação probabilisteEntropie croisée, log lossLa confiance accordée à une previsão fausse
SVMPerte charnière (hinge)Les violations de la marge
Division d'un arbreImpureté de Gini, entropieL'hétérogénéité des classes dans un nœud
DÉFINITION — Métrique d'évaluation (evaluation metric)

Définition rigoureuse

Grandeur calculée à partir des prédictions d'un modelo et des valeurs observées, destinée à qualifier sa performance en vue d'une comparaison ou d'une décision. Elle n'intervient pas dans l'optimisation des paramètres et n'est soumise à aucune contrainte de dérivabilité.

Traduction en langage courant

Le chiffre que l'on présente pour dire si le modelo est bon, et selon quel critère.

Distinction avec la perte

La perte sert à l'apprentissage, la métrique sert au jugement. Un classifieur peut minimiser l'entropie croisée tout en étant évalué au recall : ce sont deux grandeurs différentes calculées sur les mêmes prédictions.

Point de vigilance

La métrique s'aligne sur l'enjeu métier, pas sur la commodité mathématique. Le choix de la métrique est traité aux chapitres 052 à 075, et le principe directeur du cours est recallé au chapitre 075 : la question n'est pas quelle métrique est la meilleure, mais quelle erreur coûte le plus cher.

Critèrefunção de perdaMétrique d'évaluation
FinalitéGuider l'optimisationQualifier et communiquer
UtilisatriceLa procédure fit()L'ingénieur et le décideur métier
ContrainteOptimisable, généralement dérivableAucune
Moment du calculÀ chaque itération de l'treinamentoAprès previsão, sur un jeu réservé
ExemplesMSE, log loss, hinge, Giniacurácia, precisão, recall, F1, AUC, MAE, R²
Choisie parLargement imposée par l'algoritmoL'ingénieur, selon le coût des erreurs
ANALOGIE — Le barème et la mention

Un étudiant révise pour un examen. Le barème de correction lui dit combien de points il perd sur chaque type d'erreur : c'est ce qu'il cherche à minimiser en travaillant. C'est la função de perda.

La mention portée sur son relevé — passable, bien, très bien — est ce que l'employeur regardera. C'est la métrique.

Les deux se calculent sur la même copie et ne coïncident pas : deux copies ayant perdu le même nombre de points peuvent recevoir des appréciations différentes selon la répartition des erreurs entre les épreuves.

Optimiser le barème sans jamais regarder la mention est une erreur de méthode courante : un modelo dont la perte diminue régulièrement peut voir sa métrique métier stagner ou se dégrader.

DÉFINITION — Score

Définition rigoureuse

Le terme recouvre deux acceptions distinctes qu'il convient de ne jamais confondre.

Acception 1 — score de sortie du modelo. Valeur continue produite par le modelo pour une observação, avant toute décision : probabilité estimée retournée par predict_proba(), ou valeur non calibrée retournée par decision_function(). Un score n'est pas une classe.

Acception 2 — score de performance. Valeur numérique d'une métrique d'évaluation sur un conjunto de dados. C'est le sens de model.score(X, y) en scikit-learn, qui retourne l'acurácia pour un classifieur et le coefficient de détermination R² pour un régresseur.

Convention de scikit-learn

Les fonctions d'évaluation suivent la règle « plus grand est meilleur ». Les métriques d'erreur, qu'il faut minimiser, sont donc exposées sous forme négative : neg_mean_squared_error, neg_log_loss. Une valeur négative affichée par une recherche sur grille n'est pas une anomalie.

Point de vigilance

Annoncer « le score du modelo est de 0,91 » n'a aucune valeur informative tant que la métrique et le conjunto de dados ne sont pas nommés.

DÉFINITION — Seuil de décision (decision threshold)

Définition rigoureuse

Valeur de coupure appliquée au score continu produit par un classifieur pour convertir ce score en décision discrète. Pour un problème binaire, l'observação est affectée à la classe positive lorsque le score estimé est supérieur ou égal au seuil.

Traduction en langage courant

À partir de quel niveau de probabilité on décide d'agir.

Statut au regard du chapitre

Le seuil n'est pas appris. La valeur 0,50 est une convention par défaut, non un optimum. Le seuil est un hiperparâmetro de décision, dont le réglage se conduit sur un jeu de validation, jamais sur le jeu de test.

Point de vigilance

Abaisser le seuil augmente le nombre de positifs prédits, donc le recall, au détriment de la precisão ; l'élever produit l'effet inverse. Le réglage relève d'un arbitrage économique entre le coût d'un faux positif et celui d'un faux négatif. Traité aux chapitres 029 et 062.

DÉFINITION — Référence naïve (baseline)

Définition rigoureuse

modelo de référence délibérément trivial, servant de borne inférieure à laquelle comparer tout modelo candidat. Sa performance constitue le seuil en deçà duquel un modelo appris n'apporte aucune valeur.

Références usuelles

TâcheRéférence naïveMise en oeuvre
classificaçãoPrédire systématiquement la classe majoritaireDummyClassifier(strategy="most_frequent")
classificaçãoTirer au hasard selon les fréquences observéesDummyClassifier(strategy="stratified")
regressãoPrédire la moyenne de la cibleDummyRegressor(strategy="mean")
regressãoPrédire la médiane de la cibleDummyRegressor(strategy="median")
Séries temporellesReconduire la dernière valeur observéemodelo de persistance
Contexte industrielLa règle métier actuellement em produçãoRéimplémentation de la règle existante

Traduction en langage courant

Avant d'affirmer qu'un modelo est performant, il faut vérifier qu'il fait mieux qu'une stratégie idiote.

Point de vigilance

Sur un jeu déséquilibré à 2 % de positifs, la référence naïve « classe majoritaire » atteint 98 % d'acurácia sans rien apprendre. Une acurácia de 97 % annoncée pour un modelo sophistiqué constitue alors une regressão. C'est la raison pour laquelle toute évaluation commence par le calcul de la référence. Traité aux chapitres 049 et 050.

NotionRôle dans la chaîneQui la détermineChapitre de traitement
função de perdaGuide l'ajustement des paramètresImposée par l'algoritmo, parfois configurable030
MétriqueCompare les modèles et les configurationsL'ingénieur, selon l'enjeu métier052 à 075
ScoreSortie continue, ou valeur d'une métriqueLe modelo, ou la métrique choisie029, 061, 063
SeuilConvertit un score en décisionL'ingénieur, sur jeu de validation062, 088
Référence naïveFixe la borne de valeur ajoutéeL'ingénieur, avant toute modélisation049

9. Erreurs de raisonnement fréquentes

ERREUR — Appeler « paramètres » les arguments passés au constructeur

L'expression « j'ai paramétré mon modelo avec max_depth égal à 5 » est ambiguë et la méthode get_params() entretient la confusion, puisqu'elle retourne en réalité les hyperparamètres. La terminologie de la programmation et celle de la statistique divergent ici.

Formulation correcte : « J'ai fixé l'hiperparâmetro max_depth à 5. Les paramètres du modelo sont les seuils et la structure de l'arbre, que l'treinamento a déterminés. »

ERREUR — Traiter une valeur d'hiperparâmetro comme universellement bonne

Aucune valeur d'hiperparâmetro n'est optimale en soi. La valeur adéquate dépend de l'effectif, du nombre de variables, du niveau de bruit et de la structure du phénomène. Une valeur reprise d'un billet de blog ou d'un projet antérieur est une hypothèse de départ, pas un réglage.

Formulation correcte : « max_depth=5 s'est révélé le meilleur compromis sur ce conjunto de dados, à l'issue d'une recherche validée par validation croisée. »

ERREUR — Régler les hyperparamètres sur le jeu de test

Le jeu de test doit rester à l'écart de toute décision. Dès qu'une configuration y est comparée à une autre, il exerce la fonction d'un jeu de validation et le score final devient optimiste. La contamination est progressive et ne produit aucun signal d'alerte.

Formulation correcte : « Les hyperparamètres ont été sélectionnés par validação cruzada sur le jeu d'treinamento. Le jeu de test n'a été consulté qu'une fois, pour l'estimation finale. »

ERREUR — Considérer les statistiques d'un préprocesseur comme fixées d'avance

La moyenne et l'écart type d'un StandardScaler, les modalités retenues par un encodeur, les valeurs d'imputation sont estimées à partir des dados. Les calculer sur l'ensemble du jeu avant le découpage transfère de l'information du test vers l'treinamento.

Formulation correcte : « Ces statistiques sont des grandeurs apprises. Elles s'estiment sur le seul jeu d'treinamento, à l'intérieur d'un pipeline, et s'appliquent ensuite aux autres jeux. » Traité aux chapitres 028 et 076.

ERREUR — Confondre la função de perda et la métrique d'évaluation

Une perte d'treinamento qui diminue régulièrement ne garantit ni la generalização, ni la satisfaction du critère métier. Les deux grandeurs répondent à des finalités différentes et peuvent évoluer en sens contraire.

Formulation correcte : « Le modelo minimise l'entropie croisée pendant l'treinamento ; il est évalué au recall, parce que le coût d'un faux négatif domine dans ce cas d'usage. »

ERREUR — Supposer qu'augmenter la capacité améliore la performance

Un arbre non contraint atteint une acurácia de 1,0000 sur ses dados d'treinamento, comme le montre le point 5.4. Cette valeur mesure une mémorisation, non une aptitude à généraliser. Au-delà d'un certain niveau de capacité, l'erreur sur dados nouvelles augmente.

Formulation correcte : « Au-delà d'un certain niveau de capacité, le modelo ajuste le bruit du jeu d'treinamento ; l'erreur de generalização se dégrade alors que l'erreur d'treinamento continue de diminuer. »

ERREUR — Inclure random_state dans la recherche d'hyperparamètres

La graine aléatoire est fixée avant l'treinamento, ce qui en fait formellement un hiperparâmetro, mais elle ne porte aucune information sur le phénomène. Retenir la graine qui maximise le score de validation revient à sélectionner du bruit et produit un gain qui ne se reproduira pas.

Formulation correcte : « random_state est fixé pour garantir la reproductibilité. La sensibilité du modelo à la graine se mesure, elle ne s'optimise pas. »

ERREUR — Croire que le seuil de 0,50 est produit par l'treinamento

predict() applique une convention par défaut. Le modelo produit un score continu ; c'est la bibliothèque, non l'apprentissage, qui le coupe à 0,50.

Formulation correcte : « Le seuil est une décision d'ingénierie, réglée sur un jeu de validation en fonction du coût respectif des faux positifs et des faux négatifs. »


10. Synthèse

LES DEUX CATÉGORIES
    PARAMÈTRE       appris par la procédure d'optimisation, pendant fit()
                    coefficients, poids et biais, seuils et structure d'un arbre,
                    coefficients duaux et vecteurs de support
    HYPERPARAMÈTRE  fixé par l'ingénieur, avant fit()
                    max_depth, n_estimators, k, learning_rate, alpha, C

LE CRITÈRE UNIQUE DE DISTINCTION
    Cette grandeur est-elle ajustée par la procédure d'optimisation,
    ou devait-elle être connue pour que cette procédure démarre ?

LA CONVENTION SCIKIT-LEARN
    get_params()            -> les hyperparamètres
    attribut_ (underscore)  -> les grandeurs apprises
    coef_, intercept_, feature_importances_, tree_, support_vectors_
    Avant fit(), ces attributs n'existent pas : NotFittedError.

L'ANALOGIE DE RÉFÉRENCE
    recette             = algorithme
    réglages du four    = hyperparamètres
    ce que la pâte devient = paramètres appris
    gâteau              = modèle

CE QUE GOUVERNENT LES HYPERPARAMÈTRES
    la capacité              max_depth, C, alpha, k, hidden_layer_sizes
    l'optimisation           learning_rate, solver, max_iter, tol
    la structure d'ensemble  n_estimators, max_features, subsample
    le traitement du problème class_weight, criterion, seuil
    l'exécution              n_jobs, verbose, random_state

CAPACITÉ
    Les hyperparamètres délimitent l'espace d'hypothèses H.
    Les paramètres sélectionnent un élément h dans H.
    Capacité trop faible -> biais élevé, sous-apprentissage.
    Capacité trop forte  -> variance élevée, surapprentissage.

RÈGLE DE PROTOCOLE
    Entraînement -> ajuste les paramètres
    Validation   -> choisit les hyperparamètres et le seuil
    Test         -> estime la performance, consulté une seule fois
    Un jeu sur lequel on décide cesse d'être un jeu d'évaluation.

LE VOCABULAIRE CONNEXE
    perte     ce que l'optimisation minimise pour produire les paramètres
    métrique  ce que l'on compare pour choisir les hyperparamètres
    score     sortie continue du modèle, ou valeur d'une métrique
    seuil     coupure appliquée au score, convention 0,50, non apprise
    référence naïve  borne en deçà de laquelle le modèle n'apporte rien

Énoncé de synthèse

Un modelo entraîné se lit sur deux niveaux : les hyperparamètres, fixés avant l'apprentissage, délimitent la famille de fonctions accessibles et la manière dont la recherche y sera conduite ; les paramètres, produits par cette recherche, désignent la fonction finalement retenue. Les premiers se règlent par comparaison d'entraînements successifs sur un jeu de validation, jamais sur le jeu de test, dont l'unique consultation constitue la seule estimation non viésée de la performance attendue.


Quiz associés

  • 009.1-quiz-parametre-appris.md
  • 009.2-quiz-hyperparametre.md
  • 009.3-quiz-critere-de-distinction.md
  • 009.4-quiz-inspection-scikit-learn.md
  • 009.5-quiz-reglage-et-jeu-de-test.md
  • 009.6-quiz-capacite-viés-variância.md
  • 009.7-quiz-loss-metric-score-seuil-baseline.md

Chapitre suivant : 010-classificação-ou-regression.md