Aller au contenu principal

Chargement du lab visuel…

#regression-logistiqueApprentissage supervisé

Classer en deux catégories : sigmoïde, frontière de décision, seuil et log-loss — et pourquoi une droite ne suffit pas toujours.

Ce que tu vas manipuler

  1. Bienvenue dans #regression-logistique. À l'écran : un plan (x, y) posé à l'horizontale, deux nuages de points — bleus (classe 0) et roses (classe 1) — et une ligne jaune, la frontière de décision du modèle. Ses poids de départ sont quelconques : la frontière coupe le nuage bleu en deux, et les points cerclés de rouge sont mal classés. Une régression logistique ne fait qu'une chose : calculer z = w1·x + w2·y + b, puis transformer ce nombre en probabilité p = σ(z) d'appartenir à la classe rose. C'est le classifieur le plus simple qui soit — celui qu'on essaie toujours en premier, du dépistage médical au filtrage de spam.
  2. Ce que la frontière ne montre pas, c'est la probabilité. Affiche-la : tape /nappe. Une nappe translucide va se dresser au-dessus du plan : sa hauteur en chaque point vaut p(y=1 | x, y), de 0 (bleu) à 1 (rose).
  3. Les poids fixent l'orientation de la frontière et la raideur de la nappe. Change-les à la main : /poids 2 -1.
  4. Régler les poids à la main ne passe pas à l'échelle. Laisse la descente de gradient s'en charger : /entrainer 50. À chaque époque, le modèle mesure sa log-loss — elle punit très fort une probabilité confiante mais fausse — puis déplace w1, w2 et b dans la direction qui la fait baisser.
  5. Jusqu'ici on classe « rose » dès que p ≥ 0,5. Ce seuil est un choix, pas une loi. Exige plus de certitude : /seuil 0.8.
  6. Un nouveau point arrive, dont on ignore la classe. Demande son verdict : /probabilite 0.5 0.5.
  7. Maintenant, le piège. Charge un jeu où les roses occupent deux coins opposés : /dataset xor.
  8. À toi de jouer : /dataset chevauchement puis /entrainer 200 (quelques erreurs sont inévitables : la log-loss ne descend plus vers zéro), /bruit 0.8 pour brouiller les nuages, /lr 0.05 pour voir l'apprentissage ramper au ralenti, /seuil 0.3 pour l'autre compromis, /graine 12 pour un autre tirage, /reinit pour repartir. Prochaine étape : #metriques-classification (précision, rappel, courbe ROC : ce que le seuil déplace vraiment) et #svm-marges (une autre façon de choisir la droite).

Commandes du canal

  • /poids <w1=-5..5> <w2=-5..5>Fixe les deux poids : orientation de la frontière, raideur de la nappe.
  • /biais <-5..5>Fixe le biais b : translate la frontière sans la faire tourner.
  • /seuil <0..1>Fixe le seuil de décision : classe rose si p ≥ seuil.
  • /entrainer <1..200>Descente de gradient sur la log-loss pendant n époques (par lot).
  • /lr <0.01..3>Fixe le pas d'apprentissage utilisé par /entrainer.
  • /probabilite <x=-2..2> <y=-2..2>Pose un point requête et lit sa probabilité prédite.
  • /nappeAffiche ou masque la nappe de probabilités p(y=1 | x, y).
  • /dataset <separable|chevauchement|xor>Change le jeu de points (poids conservés, époques remises à zéro).
  • /bruit <0..1>Règle la dispersion des nuages (écart-type des gaussiennes, étalement des paquets XOR).
  • /graine <1..99>Change la graine du tirage aléatoire des points.
  • /reinitRevient au jeu séparable, aux poids de départ, au seuil 0,5, sans nappe.

Glossaire

Régression logistique
Modèle de classification qui calcule une somme pondérée des entrées z = w·x + b, puis la transforme en probabilité p = σ(z). Malgré son nom, elle prédit une classe, pas une quantité : c'est la « régression » de la probabilité.
Classification binaire
Tâche où chaque exemple appartient à l'une de deux classes (0 ou 1, bleu ou rose, spam ou non). Le modèle apprend une règle qui, pour toute nouvelle entrée, choisit l'une des deux.
Sigmoïde
Fonction σ(z) = 1 / (1 + e^−z), en forme de « S » : elle envoie tout nombre réel dans ]0, 1[, vaut 0,5 en z = 0 et sature aux deux bouts. C'est elle qui donne à la nappe sa forme et permet de lire la sortie comme une probabilité.
Frontière de décision
Ensemble des points où le modèle change d'avis : ici la droite w1·x + w2·y + b = logit(seuil), dessinée en jaune. Pour une régression logistique elle est toujours une droite (un hyperplan en dimension plus grande), d'où son échec sur XOR.
Seuil de décision
Valeur de probabilité au-dessus de laquelle on prédit la classe 1 (0,5 par défaut). Le changer ne modifie pas le modèle mais déplace la frontière : on échange des faux positifs contre des faux négatifs selon le coût de chaque erreur.
Log-loss
Perte −[y·ln p + (1 − y)·ln(1 − p)], moyennée sur les exemples : nulle pour une probabilité parfaite, très grande pour une probabilité confiante mais fausse. C'est la fonction que la descente de gradient fait baisser.
Probabilité prédite
Sortie p(y=1 | x) du modèle pour une entrée donnée : un degré de confiance entre 0 et 1, et non un simple oui/non. La hauteur de la nappe (et du trait jaune sous le point requête) la représente.
Faux positif / faux négatif
Faux positif : un exemple de classe 0 prédit 1 (un bleu classé rose). Faux négatif : un exemple de classe 1 prédit 0. Monter le seuil réduit les premiers et augmente les seconds ; les métriques de classification (précision, rappel) les comptent séparément.
Séparabilité linéaire
Propriété d'un jeu de données dont les deux classes peuvent être séparées par une droite (un hyperplan). Les deux gaussiennes le sont ; XOR ne l'est pas : aucune régression logistique ne dépassera ~50 % dessus, il faut un modèle non linéaire.
Époque
Un passage complet sur toutes les données d'entraînement. Ici chaque époque est un pas de descente de gradient par lot : on calcule le gradient de la log-loss sur les 200 points, puis on déplace w1, w2 et b d'un pas lr dans la direction opposée.

Autres canaux du thème Apprentissage supervisé

  • #entrainement-liveSix algorithmes qui apprennent sous tes yeux, comme une vidéo : REC, timecode, sous-titres, métriques en direct. Regarder est gratuit ; toucher au modèle est Premium.
  • #regression-lineaireAjuster une droite : moindres carrés, résidus, MSE, R² et descente de gradient — la première brique de tout apprentissage supervisé.
  • #regression-logistiqueClasser en deux catégories : sigmoïde, frontière de décision, seuil et log-loss — et pourquoi une droite ne suffit pas toujours.
  • #arbres-de-decisionUn arbre qui découpe le plan en rectangles : Gini, entropie, profondeur, élagage — et le sur-apprentissage qu'on voit à l'œil nu.
  • #knnLes k plus proches voisins : classer par ressemblance, choisir k, changer de distance — et voir la frontière se lisser ou se déchirer.
  • #svm-margesMachines à vecteurs de support : la plus large marge possible, le paramètre C, et le noyau RBF qui courbe la frontière.
  • #metriques-classificationPrécision, rappel, F1, matrice de confusion, ROC et AUC : lire honnêtement un classifieur, surtout quand les classes sont déséquilibrées.