Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Preprocessing

Preprocessing transformers scale and normalise features before feeding them to a model. Most linear models and distance-based models (KNN, SVM) require feature scaling to work correctly.

TransformerDescription
StandardScalerZero mean, unit variance — $z = (x - \mu) / \sigma$
MinMaxScalerScales to a fixed range $[0, 1]$ by default
RobustScalerUses median and IQR — robust to outliers
MaxAbsScalerDivides by the maximum absolute value — preserves sparsity
NormalizerScales each sample to unit norm

All transformers are documented on the same page: Preprocessing.

Typical pipeline

import seraplot as sp
import numpy as np

X_train, X_test, y_train, y_test = sp.train_test_split(X, y, test_size=0.2)

scaler = sp.StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled  = scaler.transform(X_test)   # use fit parameters from train set

model = sp.LogisticRegression()
model.fit(X_train_scaled, y_train)

Always fit the scaler on the training set only, then apply the same transformation to the test set.

Les transformateurs de prétraitement normalisent les variables avant de les fournir à un modèle. La plupart des modèles linéaires et des modèles basés sur la distance (KNN, SVM) nécessitent une normalisation pour fonctionner correctement.

TransformateurDescription
StandardScalerMoyenne nulle, variance unitaire — $z = (x - \mu) / \sigma$
MinMaxScalerMise à l'échelle dans une plage fixe $[0, 1]$ par défaut
RobustScalerUtilise la médiane et l'IQR — robuste aux valeurs aberrantes
MaxAbsScalerDivise par la valeur absolue maximale — préserve la sparsité
NormalizerMet chaque échantillon à norme unitaire

Tous les transformateurs sont documentés sur la même page : Preprocessing.

Pipeline typique

import seraplot as sp
import numpy as np

X_train, X_test, y_train, y_test = sp.train_test_split(X, y, test_size=0.2)

scaler = sp.StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled  = scaler.transform(X_test)   # utiliser les paramètres du jeu d'entraînement

model = sp.LogisticRegression()
model.fit(X_train_scaled, y_train)

Toujours ajuster le normaliseur sur le jeu d'entraînement uniquement, puis appliquer la même transformation au jeu de test.