La régression logistique (malgré son nom) est un algorithme de classification, pas de régression. Elle prédit une catégorie (0/1, oui/non, A/B/C).
Principe : applique une transformation sigmoïde à une combinaison linéaire pour obtenir une probabilité entre 0 et 1, qu'on seuile à 0.5.
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_reportmodel = LogisticRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)# probabilités au lieu des classes
proba = model.predict_proba(X_test) # shape (n, n_classes)accuracy_score(y_true, y_pred) % de bonnes prédictions
precision_score, recall_score, f1_score (cf leçon 84)import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, classification_reportnp.random.seed(42)
X = np.random.randn(200, 2)
y = (X[:, 0] + X[:, 1] > 0).astype(int) # frontière : x1 + x2 = 0X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)model = LogisticRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)print(f'Accuracy: {accuracy_score(y_test, y_pred):.2%}')
print(classification_report(y_test, y_pred))LogisticRegression gère automatiquement le multi-classes (one-vs-rest ou softmax). y_train peut contenir 0, 1, 2, ...
C=1.0 inverse de la régularisation (plus C est petit, plus c'est régularisé)
penalty='l2' régularisation L2 (défaut)
solver='lbfgs' algorithme d'optimisation (défaut, fonctionne dans 95% des cas)
class_weight='balanced' ajuste pour les classes déséquilibréesLa régression logistique est sensible à l'échelle des features. Standardise (StandardScaler) si tes variables ont des unités différentes.
Très bon baseline pour la classification, rapide, interprétable (les coefs indiquent l'influence de chaque feature).
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →