#regression-logistique — Apprentissage 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
- 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. - 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 vautp(y=1 | x, y), de 0 (bleu) à 1 (rose). - Les poids fixent l'orientation de la frontière et la raideur de la nappe. Change-les à la main :
/poids 2 -1. - 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. - 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. - Un nouveau point arrive, dont on ignore la classe. Demande son verdict :
/probabilite 0.5 0.5. - Maintenant, le piège. Charge un jeu où les roses occupent deux coins opposés :
/dataset xor. - À toi de jouer :
/dataset chevauchementpuis/entrainer 200(quelques erreurs sont inévitables : la log-loss ne descend plus vers zéro),/bruit 0.8pour brouiller les nuages,/lr 0.05pour voir l'apprentissage ramper au ralenti,/seuil 0.3pour l'autre compromis,/graine 12pour un autre tirage,/reinitpour 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./nappe— Affiche 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./reinit— Revient 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
lrdans la direction opposée.
Autres canaux du thème Apprentissage supervisé
- #entrainement-live — Six 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-lineaire — Ajuster une droite : moindres carrés, résidus, MSE, R² et descente de gradient — la première brique de tout apprentissage supervisé.
- #regression-logistique — Classer 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-decision — Un arbre qui découpe le plan en rectangles : Gini, entropie, profondeur, élagage — et le sur-apprentissage qu'on voit à l'œil nu.
- #knn — Les k plus proches voisins : classer par ressemblance, choisir k, changer de distance — et voir la frontière se lisser ou se déchirer.
- #svm-marges — Machines à vecteurs de support : la plus large marge possible, le paramètre C, et le noyau RBF qui courbe la frontière.
- #metriques-classification — Précision, rappel, F1, matrice de confusion, ROC et AUC : lire honnêtement un classifieur, surtout quand les classes sont déséquilibrées.