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
