Aller au contenu

Mise à l'échelle

Les modèles d'apprentissage automatique sont entraînés sur de grands ensembles de données contenant une large gamme de valeurs pour chaque fonctionnalité. Dans de nombreux cas, ces fonctionnalités peuvent présenter des échelles très différentes, ce qui peut rendre l'apprentissage du modèle moins efficace. La mise à l'échelle des fonctionnalités consiste à standardiser leur plage de valeurs, facilitant ainsi la détection de motifs par le modèle.

Pourquoi utiliser la mise à l'échelle des fonctionnalités ?

La mise à l'échelle des fonctionnalités est cruciale pour plusieurs raisons :

  • Elle améliore les performances du modèle en réduisant les effets des différentes échelles de fonctionnalités.
  • Elle contribue également à accélérer le processus d'entraînement.
  • Elle garantit qu'aucune fonctionnalité unique ne domine le modèle en raison de son amplitude.

Techniques de mise à l'échelle des fonctionnalités

Il existe plusieurs techniques de mise à l'échelle, notamment :

  • Standard Scaler
  • MinMax Scaler
  • Robust Scaler
  • MaxAbs Scaler

Standard Scaler

Le Standard Scaler est l'une des techniques de mise à l'échelle les plus couramment utilisées en apprentissage automatique. Il met les données à l'échelle de manière à obtenir une moyenne de 0 et un écart type de 1. Cette méthode fonctionne bien pour les ensembles de données suivant une distribution normale.

MinMax Scaler

Le MinMax Scaler met les données à l'échelle sur une plage fixe comprise entre 0 et 1. Cette méthode fonctionne bien pour les ensembles de données à distribution uniforme.

Robust Scaler

Le Robust Scaler met les données à l'échelle en retirant la médiane et en les ramenant à l'écart interquartile. Cette méthode est moins sensible aux valeurs aberrantes que les autres techniques de mise à l'échelle.

MaxAbs Scaler

Le MaxAbs Scaler met les données à l'échelle sur la plage [-1, 1] en divisant chaque valeur par la valeur absolue maximale. Cette méthode fonctionne bien pour les ensembles de données contenant à la fois des valeurs positives et négatives.

Mise à l'échelle des fonctionnalités en Python

En Python, la mise à l'échelle des fonctionnalités peut être facilement réalisée à l'aide de la bibliothèque scikit-learn. Voici un exemple de la manière de mettre à l'échelle un ensemble de données en utilisant le Standard Scaler, en suivant les bonnes pratiques pour éviter les fuites de données en ajustant le scalleur uniquement sur les données d'entraînement :

Mettre à l'échelle un ensemble de données avec le Standard Scaler en Python

python
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

data = load_iris()
X = data.data
y = data.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

Mettre à l'échelle un ensemble de données avec d'autres scalleurs

python
from sklearn.preprocessing import MinMaxScaler, RobustScaler, MaxAbsScaler

# MinMax Scaler
min_max_scaler = MinMaxScaler()
X_train_minmax = min_max_scaler.fit_transform(X_train)

# Robust Scaler
robust_scaler = RobustScaler()
X_train_robust = robust_scaler.fit_transform(X_train)

# MaxAbs Scaler
maxabs_scaler = MaxAbsScaler()
X_train_maxabs = maxabs_scaler.fit_transform(X_train)

Conclusion

La mise à l'échelle des fonctionnalités est une étape cruciale dans la construction de modèles d'apprentissage automatique précis et efficaces. En standardisant les plages des fonctionnalités, vous évitez la domination des échelles, accélérez la convergence de l'entraînement et améliorez les performances globales du modèle. Choisissez le scalleur qui correspond le mieux à la distribution de vos données et à votre sensibilité aux valeurs aberrantes.

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.