0Pricing
Python Academy · Leçon

Modèles linéaires : régression et classification

Entraînez des modèles de régression linéaire et de régression logistique.

Modèles linéaires : régression et classification est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.

Régression linéaire

LinearRegression ajuste une droite (ou un hyperplan) en minimisant l'erreur des moindres carrés.

from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

X, y = make_regression(n_samples=200, n_features=5, noise=10, random_state=0)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, random_state=0)

model = LinearRegression().fit(X_tr, y_tr)
print("RMSE:", mean_squared_error(y_te, model.predict(X_te))**0.5)

Coefficients du modèle

Après l'ajustement, examinez coef_ (les poids des caractéristiques) et intercept_.

from sklearn.linear_model import LinearRegression
import numpy as np

X = np.array([[1],[2],[3]])
y = np.array([2, 4, 6])

model = LinearRegression().fit(X, y)
print("Coef:", model.coef_)       # [2.]
print("Intercept:", model.intercept_)  # ~0

Régression Ridge et Lasso

Ridge (L2) et Lasso (L1) ajoutent une régularisation pour éviter le surapprentissage. alpha contrôle l'intensité de la régularisation.

from sklearn.linear_model import Ridge, Lasso
from sklearn.datasets import make_regression

X, y = make_regression(n_features=20, noise=15, random_state=0)

ridge = Ridge(alpha=1.0).fit(X, y)
lasso = Lasso(alpha=0.1).fit(X, y)
print("Ridge coef[:5]:", ridge.coef_[:5])
print("Lasso coef[:5]:", lasso.coef_[:5])  # some are 0 (sparse)

Régression logistique

LogisticRegression est un classifieur linéaire pour les problèmes binaires ou multiclasse. Malgré son nom, il prédit des probabilités de classe.

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

X, y = make_classification(random_state=0)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, random_state=0)
model = LogisticRegression().fit(X_tr, y_tr)
print("Accuracy:", accuracy_score(y_te, model.predict(X_te)))

Régression logistique multiclasse

Définissez multi_class="multinomial" ou utilisez OvR (un contre tous) par défaut pour au moins 3 classes.

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris

X, y = load_iris(return_X_y=True)
model = LogisticRegression(max_iter=200).fit(X, y)
print("Classes:", model.classes_)   # [0 1 2]
print("Accuracy:", model.score(X, y))

Mise à l'échelle des caractéristiques pour les modèles linéaires

Mettez toujours les caractéristiques à l'échelle pour les modèles linéaires, en particulier avec une régularisation. Des caractéristiques non mises à l'échelle entraînent des pénalités différentes et trompeuses.

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression

pipe = Pipeline([
    ("scale", StandardScaler()),
    ("clf",   LogisticRegression())
])
pipe.fit(X_tr, y_tr)
print(pipe.score(X_te, y_te))

Courbe d'apprentissage

Une courbe d'apprentissage montre comment les performances du modèle s'améliorent avec davantage de données d'entraînement — elle est utile pour diagnostiquer le sous-apprentissage ou le surapprentissage.

from sklearn.model_selection import learning_curve
import numpy as np

train_sizes, train_scores, val_scores = learning_curve(
    LogisticRegression(), X, y, cv=5,
    train_sizes=np.linspace(0.1, 1.0, 5)
)
print("Val mean:", val_scores.mean(axis=1))

Score R² pour la régression

r2_score mesure la proportion de variance expliquée. 1.0 correspond à une prédiction parfaite ; 0 signifie que le modèle ne fait pas mieux que prédire la moyenne.

from sklearn.metrics import r2_score
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression

X, y = make_regression(noise=20, random_state=0)
model = LinearRegression().fit(X, y)
print("R²:", r2_score(y, model.predict(X)))

Caractéristiques polynomiales

Utilisez PolynomialFeatures pour ajuster des relations non linéaires avec un modèle linéaire.

from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LinearRegression
import numpy as np

X = np.array([[1],[2],[3],[4],[5]])
y = np.array([1, 4, 9, 16, 25])  # y = x^2

pipe = Pipeline([
    ("poly", PolynomialFeatures(degree=2)),
    ("lr",   LinearRegression())
])
pipe.fit(X, y)
print(pipe.predict([[6]]))   # ~36

SGDClassifier et SGDRegressor

La descente de gradient stochastique s'adapte à de très grands jeux de données pour lesquels les solveurs standard sont trop lents.

from sklearn.linear_model import SGDClassifier
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.datasets import make_classification

X, y = make_classification(n_samples=100_000, random_state=0)
pipe = Pipeline([("sc", StandardScaler()), ("sgd", SGDClassifier())])
pipe.fit(X, y)
print(pipe.score(X, y))

Chemins de régularisation

Faites varier alpha sur une grille avec RidgeCV/LassoCV, qui sélectionnent automatiquement la meilleure valeur de alpha par validation croisée.

from sklearn.linear_model import RidgeCV, LassoCV
from sklearn.datasets import make_regression

X, y = make_regression(n_features=20, noise=10, random_state=0)
ridge = RidgeCV(alphas=[0.1, 1, 10]).fit(X, y)
print("Best alpha:", ridge.alpha_)

Vérification rapide

Quelle est la différence essentielle entre les régressions Ridge et Lasso ?

Récapitulatif

Utilisez LinearRegression pour la régression et LogisticRegression pour la classification. Ajoutez Ridge/Lasso pour la régularisation. Mettez toujours les caractéristiques à l'échelle. Utilisez PolynomialFeatures pour les problèmes non linéaires. Évaluez le modèle avec r2_score (régression) ou accuracy_score (classification).

Questions Fréquemment Posées

La leçon « Modèles linéaires : régression et classification » est-elle gratuite ?

Oui — le texte complet de « Modèles linéaires : régression et classification » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Modèles linéaires : régression et classification » ?

Entraînez des modèles de régression linéaire et de régression logistique. Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Python Academy ?

Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Modèles linéaires : régression et classification » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?

Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. L’API scikit-learn : fit, transform, predict
  2. Modèles linéaires : régression et classification
  3. Modèles arborescents : arbres de décision et forêts aléatoires
  4. Évaluation des modèles et validation croisée
← Retour à Python Academy