0Pricing
Python Academy · Leçon

L’API scikit-learn : fit, transform, predict

Comprenez l’interface des estimateurs et le processus de séparation entraînement/test.

L’API scikit-learn : fit, transform, predict est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 1 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.

Qu'est-ce que scikit-learn ?

scikit-learn est la bibliothèque Python de référence pour l'apprentissage automatique classique. Elle fournit une interface cohérente : chaque estimateur possède fit() et la plupart possèdent predict() ou transform().

from sklearn.linear_model import LinearRegression
import numpy as np

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

model = LinearRegression().fit(X, y)
print(model.predict([[6]]))   # [12.]

Séparer les données d'entraînement et d'évaluation

Séparez toujours les données avant l'entraînement afin d'évaluer la capacité de généralisation du modèle à des données jamais vues.

from sklearn.model_selection import train_test_split
import numpy as np

X = np.random.rand(100, 5)
y = (X[:,0] > 0.5).astype(int)

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)
print(X_train.shape, X_test.shape)   # (80,5) (20,5)

fit() — Entraînement

estimator.fit(X, y) entraîne le modèle sur X (les caractéristiques) et y (les étiquettes). Pour les méthodes non supervisées, seul X est transmis.

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(n_samples=200, random_state=0)
model = LogisticRegression()
model.fit(X, y)
print("Trained:", model.classes_)

predict() et predict_proba()

predict(X) renvoie les étiquettes de classe ; predict_proba(X) renvoie les probabilités de classe pour les classifieurs.

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
model = LogisticRegression().fit(X, y)

print(model.predict(X[:5]))          # [0 1 0 ...]
print(model.predict_proba(X[:2]))    # [[0.7 0.3] ...]

Transformateurs : fit et transform

Les transformateurs (normaliseurs, encodeurs) possèdent fit(X) + transform(X). Effectuez toujours l'ajustement uniquement sur les données d'entraînement, puis transformez les données d'entraînement et d'évaluation.

from sklearn.preprocessing import StandardScaler
import numpy as np

X_train = np.array([[1,2],[3,4],[5,6]])
X_test  = np.array([[2,3],[4,5]])

scaler = StandardScaler()
X_train_s = scaler.fit_transform(X_train)   # fit + transform
X_test_s  = scaler.transform(X_test)        # transform only (using train stats)

Pipeline

Un Pipeline enchaîne des transformateurs et un estimateur dans un seul objet. Il empêche les fuites de données en appliquant correctement les transformations lors de la validation croisée.

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC

pipe = Pipeline([
    ("scaler", StandardScaler()),
    ("clf", SVC())
])
pipe.fit(X_train, y_train)
print(pipe.score(X_test, y_test))

Exactitude et autres métriques

Utilisez accuracy_score, f1_score et classification_report pour évaluer les classifieurs.

from sklearn.metrics import accuracy_score, classification_report

y_pred = model.predict(X_test)
print(accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))

Validation croisée

cross_val_score évalue un modèle à l'aide d'une validation croisée en k blocs, sans devoir séparer manuellement les données.

from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
scores = cross_val_score(LogisticRegression(), X, y, cv=5)
print(f"CV scores: {scores.mean():.3f} ± {scores.std():.3f}")

Réglage des hyperparamètres avec GridSearchCV

GridSearchCV explore exhaustivement une grille de paramètres avec une validation croisée afin de trouver les meilleurs hyperparamètres.

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
param_grid = {"C": [0.1, 1, 10], "kernel": ["rbf", "linear"]}
gs = GridSearchCV(SVC(), param_grid, cv=5)
gs.fit(X, y)
print(gs.best_params_, gs.best_score_)

Prétraitement : LabelEncoder et OneHotEncoder

Encodez les étiquettes catégorielles avec LabelEncoder et les caractéristiques catégorielles avec OneHotEncoder ou ColumnTransformer.

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
import numpy as np

le = LabelEncoder()
print(le.fit_transform(["cat","dog","cat","fish"]))   # [0 1 0 2]

ohe = OneHotEncoder(sparse_output=False)
print(ohe.fit_transform([["red"],["green"],["blue"]]))

Enregistrer et charger les modèles

Conservez les modèles entraînés avec joblib (plus rapide que pickle pour les tableaux NumPy).

import joblib
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
model = LogisticRegression().fit(X, y)

joblib.dump(model, "model.joblib")
loaded = joblib.load("model.joblib")
print(loaded.predict(X[:3]))

Vérification rapide

Pourquoi devez-vous appeler scaler.fit() uniquement sur les données d'entraînement et non sur les données d'évaluation ?

Récapitulatif

L'interface uniforme de scikit-learn : fit() entraîne, predict() effectue des prédictions et transform() prétraite. Utilisez Pipeline pour enchaîner les étapes. Séparez les données avec train_test_split, évaluez-les avec cross_val_score et réglez les hyperparamètres avec GridSearchCV.

Questions Fréquemment Posées

La leçon « L’API scikit-learn : fit, transform, predict » est-elle gratuite ?

Oui — le texte complet de « L’API scikit-learn : fit, transform, predict » 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 « L’API scikit-learn : fit, transform, predict » ?

Comprenez l’interface des estimateurs et le processus de séparation entraînement/test. 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 1 sur 4.

Combien de temps prend la leçon « L’API scikit-learn : fit, transform, predict » ?

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