Vue d'ensemble

Scikit-learn 1.3, publié le 9 juin 2023, stabilise le routage de métadonnées et le TargetEncoder.

Fonctionnalités principales

Routage de métadonnées

Le routage de métadonnées permet de transmettre des informations supplémentaires (poids, groupes) à travers les pipelines et les méthodes de validation croisée.

python
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
import numpy as np

X = np.random.randn(100, 5)
y = np.random.randint(0, 2, 100)
poids = np.random.rand(100)

# Le routage transmet les poids au modèle
clf = LogisticRegression()
clf.set_fit_request(sample_weight=True)
scores = cross_val_score(clf, X, y,
    params={'sample_weight': poids})

TargetEncoder stable

Le TargetEncoder encode les variables catégorielles en fonction de la variable cible, évitant le surajustement grâce à une régularisation interne.

python
from sklearn.preprocessing import TargetEncoder
import numpy as np

X = np.array([['chat'], ['chien'], ['chat'],
              ['oiseau'], ['chien'], ['chat']])
y = np.array([0.5, 1.0, 0.3, 0.8, 0.9, 0.4])

enc = TargetEncoder()
X_enc = enc.fit_transform(X, y)
print(X_enc)  # valeurs encodées par la moyenne cible

Sources