100 Jours de ML

100 Jours de ML — Module 6 : régressions linéaire et logistique

100 Jours de ML — Module 6 : régressions linéaire et logistique

Sixième module du challenge #100JoursDeML. La régression linéaire et la régression logistique sont les modèles les plus utilisés en entreprise — notamment dans les secteurs réglementés comme la banque, où leur interprétabilité est une exigence, comme le rappelait Guillaume Durand, CDO de LCL, dans l'épisode du podcast. Chaque leçon est détaillée ci-dessous avec sa vidéo.

📥 La checklist offerte du challenge
Recevez le PDF avec les 100 leçons à cocher et suivez votre progression jour après jour.

Télécharger la checklist →

Leçon 1 — Les 6 points clés de la régression linéaire

La régression linéaire modélise une cible numérique comme combinaison linéaire des variables explicatives. Ses coefficients — estimés par les moindres carrés ordinaires (MCO/OLS), qui minimisent la somme des carrés des résidus (écarts entre valeurs prédites et observées) — s'interprètent directement : « toutes choses égales par ailleurs, un mètre carré de plus augmente le prix de X euros ». C'est cette lisibilité qui en fait le modèle préféré des métiers.

Leçon 2 — Les hypothèses de la régression linéaire

La validité des coefficients et des tests repose sur des hypothèses : linéarité de la relation, indépendance des erreurs, homoscédasticité (variance constante des résidus), normalité des résidus, et absence de multicolinéarité — des variables explicatives trop corrélées entre elles, détectées par le VIF (facteur d'inflation de la variance, préoccupant au-delà de 5-10). La leçon montre l'impact concret de chaque violation.

⚠️ Point important : un R² élevé ne suffit pas. Vérifiez toujours les hypothèses via l'analyse des résidus — c'est ce qui distingue une analyse sérieuse d'un copier-coller de notebook.

Leçon 3 — La régression linéaire en Python

Mise en pratique complète avec statsmodels et scikit-learn : ajuster le modèle, lire le tableau de résultats (coefficients, p-values, intervalles de confiance, R² ajusté), tracer les diagnostics de résidus et prédire sur de nouvelles données.

import statsmodels.api as sm

X_const = sm.add_constant(X)          # ajouter l'ordonnée à l'origine
model = sm.OLS(y, X_const).fit()      # moindres carrés ordinaires
print(model.summary())                # coefficients, p-values, R², diagnostics

Leçon 4 — Que faire quand les hypothèses ne tiennent pas ?

La boîte à outils de secours : transformer les variables (log, Box-Cox — vues au Module 4) contre la non-linéarité et l'hétéroscédasticité, erreurs standard robustes, suppression ou combinaison de variables corrélées, ou changement de famille de modèle quand la structure ne s'y prête vraiment pas.

Leçon 5 — Outliers, points de levier et points influents

Trois notions distinctes : l'outlier a un résidu anormalement grand (mal prédit), le point de levier a des valeurs extrêmes sur les variables explicatives (position inhabituelle), et le point influent change réellement les coefficients quand on le retire — mesuré par la distance de Cook. Un point peut être aberrant sans être influent, et inversement : la leçon apprend à les diagnostiquer et à décider.

Leçon 6 — Comprendre la régression logistique en 10 minutes

Malgré son nom, la régression logistique est un modèle de classification : elle prédit la probabilité d'appartenir à une classe en passant la combinaison linéaire des variables dans la fonction sigmoïde (qui écrase tout entre 0 et 1). Ses coefficients s'interprètent en odds ratios (rapports de cotes) : « ce facteur multiplie par 1,8 les chances de churn ». D'où son règne dans le scoring de crédit, la santé et le marketing.

Leçon 7 — Les 6 hypothèses de la régression logistique

Moins contraignante que la linéaire (pas de normalité des résidus exigée), la logistique a ses propres conditions : indépendance des observations, absence de multicolinéarité, linéarité entre variables continues et logit (le logarithme des cotes), taille d'échantillon suffisante par modalité, et absence de valeurs influentes extrêmes.

Leçon 8 — Avantages et inconvénients de la régression logistique

Le bilan honnête : interprétable, rapide, probabiliste, peu gourmande — mais limitée aux frontières linéaires, sensible aux variables corrélées et dépendante d'un bon feature engineering. Savoir défendre ce bilan en entretien vaut autant que savoir coder le modèle.

Leçon 9 — La régression logistique en Python

Mise en pratique : ajustement avec scikit-learn, lecture des coefficients et conversion en odds ratios, prédiction de probabilités contre prédiction de classes, et évaluation avec les métriques du Module 5 — matrice de confusion, précision, rappel, AUC.

from sklearn.linear_model import LogisticRegression
import numpy as np

clf = LogisticRegression(max_iter=1000).fit(X_train, y_train)
probas = clf.predict_proba(X_test)[:, 1]   # probabilités, pas juste des classes
odds_ratios = np.exp(clf.coef_[0])         # interprétation en rapports de cotes

Leçon 10 — Données déséquilibrées : oversampling, undersampling et SMOTE

Quand une classe est rare (fraude à 1 %), le modèle apprend à l'ignorer. Trois parades : l'undersampling (sous-échantillonner la classe majoritaire — on perd de l'information), l'oversampling (dupliquer la minoritaire — risque d'overfitting) et SMOTE (Synthetic Minority Over-sampling Technique — générer des exemples minoritaires synthétiques par interpolation entre voisins proches). Règle absolue : rééquilibrer uniquement le jeu d'entraînement, jamais le test.

from imblearn.over_sampling import SMOTE

# UNIQUEMENT sur le jeu d'entraînement, jamais sur le test !
X_train_eq, y_train_eq = SMOTE(random_state=42).fit_resample(X_train, y_train)

Leçon 11 — Choisir le seuil optimal de classification

Le modèle produit une probabilité ; la décision exige un seuil. Le défaut de 0,5 n'a rien de sacré : le seuil optimal dépend du coût relatif des faux positifs et des faux négatifs. La leçon montre comment l'optimiser avec la courbe ROC, la courbe précision-rappel ou une fonction de coût métier — rater une fraude coûte souvent bien plus qu'une fausse alerte.

Leçon 12 — Ridge, Lasso et Elastic Net expliquées simplement

La régularisation ajoute à la fonction de coût une pénalité sur la taille des coefficients pour contrôler la complexité. La pénalité L2 (Ridge) rétrécit tous les coefficients sans les annuler — idéale contre la multicolinéarité. La pénalité L1 (Lasso) met certains coefficients exactement à zéro : sélection de variables automatique. Elastic Net combine les deux et hérite du meilleur des deux mondes.

Leçon 13 — Les régressions pénalisées en Python

Implémentation avec scikit-learn : l'hyperparamètre alpha (l'intensité de la pénalité) se règle par validation croisée — jamais à la main —, et la standardisation préalable des variables est obligatoire pour que la pénalité s'applique équitablement.

La suite

Vous maîtrisez les modèles linéaires. Passez aux modèles qui dominent les données tabulaires : le Module 7 : arbres, forêts aléatoires et ensemble learning.

Références

Pas de commentaires ici — les meilleures conversations se passent sur LinkedIn.

Discutons sur LinkedIn →
Natacha NJONGWA YEPNGA

Natacha NJONGWA YEPNGA

Ingénieure Data Scientist, entrepreneure et fondatrice du Groupe LDA. J'aide les organisations et les professionnels à mettre la Data et l'IA au service de l'humain.