ConsigneEntraîne un classifieur logistique
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 : le modèle calcule une combinaison linéaire des features, la transforme en probabilités (sigmoïde à deux classes, softmax au-delà) et retient la classe la plus probable. À deux classes, cela revient à comparer la probabilité au seuil de 0.5.
from sklearn.linear_model import LogisticRegressionfrom 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 classesproba = model.predict_proba(X_test) # shape (n, n_classes)accuracy_score(y_true, y_pred) % de bonnes prédictionsprecision_score, recall_score, f1_score (cf leçon 84)import numpy as npfrom sklearn.linear_model import LogisticRegressionfrom sklearn.model_selection import train_test_splitfrom 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 →