Apprendre  /  Nouveautés

Les nouveautés de scikit-learn 1.9 : callbacks, tableaux creux, GPU et les dépréciations à corriger

Des barres de progression pendant l'entraînement, des tableaux creux au lieu des matrices, plus de modèles sur GPU, et une liste de dépréciations qui deviendront des erreurs en 1.11. Ce qui a changé et ce qu'il faut mettre à jour dans votre code.

Nouveautés7 min de lectureMis à jour le 17 octobre 2026
PythonAnalyse de donnéesIANouveautés
Tous les guides et antisèches

scikit-learn 1.9 est sorti en juin 2026, et la version corrective 1.9.1 a suivi en septembre. C'est la bibliothèque derrière l'essentiel du machine learning classique en Python : régression, classification, clustering et les pipelines qui les entourent. Cette version porte moins sur de nouveaux algorithmes que sur l'expérience d'utilisation : vous pouvez enfin suivre la progression de l'entraînement, plus de modèles tournent sur GPU et plusieurs défauts de longue date sont corrigés. Elle lance aussi le compte à rebours d'une série de dépréciations qui deviendront des erreurs en 1.11.

Calendrier des versions

  1. scikit-learn 1.9.0

    Nouvelles fonctionnalités et dépréciations.

  2. scikit-learn 1.9.1

    Corrections, dont le routage des métadonnées dans les pipelines.

Terminal
pip install --upgrade scikit-learn

Callbacks : voyez vos modèles s'entraîner

Une longue recherche par grille était une boîte noire : on la lançait et on attendait. scikit-learn 1.9 ajoute une API de callbacks expérimentale, pour que les estimateurs indiquent ce qu'ils font pendant fit. Elle est livrée avec deux callbacks, sklearn.callback.ProgressBar et sklearn.callback.ScoringMonitor, et gère la progression imbriquée, même quand le travail tourne en parallèle.

Où fonctionnent les callbacks en 1.9

LogisticRegression
Uniquement avec solver="lbfgs".
GridSearchCV et RandomizedSearchCV
Plus HalvingGridSearchCV et HalvingRandomSearchCV.
Pipeline
Progression à travers chaque étape.
StandardScaler
Le premier transformateur à les prendre en charge.

Des tableaux creux au lieu des matrices creuses

SciPy passe des matrices creuses aux tableaux creux, qui se comportent davantage comme des tableaux NumPy (par exemple, * signifie multiplication élément par élément, pas produit matriciel). scikit-learn peut désormais renvoyer l'un ou l'autre. La valeur par défaut reste "spmatrix", et le passage à "sparray" est prévu dans quelques versions : autant l'essayer dès maintenant.

Python
import sklearn
sklearn.set_config(sparse_interface="sparray")

# From here on, scikit-learn returns SciPy sparse arrays
# (for example csr_array) wherever it supports the new setting.
print(sklearn.get_config()["sparse_interface"])   # "sparray"

Des modèles plus rapides et plus justes

Vitesse et mémoire

Nouveau
  • LogisticRegression avec lbfgs calcule en float32 quand vos données sont en float32, et consomme moins de mémoire
  • RidgeCV et RidgeClassifierCV sont plus rapides et plus stables
  • SpectralEmbedding est plus rapide
  • Le gap safe screening accélère les régresseurs creux à perte quadratique

Exactitude

Corrigé
  • Poids d'échantillons correctement gérés dans HistGradientBoosting, RandomForest et ExtraTrees
  • Critère friedman_mse de GradientBoosting corrigé (le paramètre criterion est déprécié)
  • La méthode yeo-johnson de PowerTransformer est plus stable numériquement
  • Certains scores et valeurs ajustées peuvent légèrement bouger après la mise à jour

Nouveaux outils

Ajouté
  • metrics.metric_at_thresholds calcule une métrique à chaque seuil
  • PrecisionRecallDisplay.from_cv_results trace des courbes depuis cross_validate
  • RandomForestRegressor gère les valeurs manquantes avec l'erreur absolue
  • MiniBatchKMeans accepte les poids d'échantillons

Autres nouveautés : l'affichage des estimateurs entraînés dans les notebooks montre désormais les attributs ajustés, et la vue de ColumnTransformer montre comment les colonnes de sortie sont assemblées. narwhals devient une dépendance et gère la sortie en dataframe, si bien que set_output(transform="polars") et la sortie pandas sont plus cohérentes.

Davantage de scikit-learn sur GPU

Grâce au standard array API, scikit-learn peut exécuter certains estimateurs directement sur des tableaux PyTorch ou CuPy, sur GPU, sans conversion vers NumPy. La 1.9 ajoute LogisticRegression et PoissonRegressor (avec le solveur lbfgs), Nystroem, FeatureUnion quand toutes ses étapes le permettent, et d'autres métriques comme l'average precision.

Dépréciations à corriger avant la 1.11

Elles génèrent des avertissements en 1.9 et cesseront de fonctionner en 1.11. Chacune se corrige simplement :

Python
# Deprecated: SVC(probability=True) is not thread-safe
from sklearn.svm import SVC
from sklearn.calibration import CalibratedClassifierCV

clf = CalibratedClassifierCV(SVC(), ensemble=False)
clf.fit(X_train, y_train)
proba = clf.predict_proba(X_test)

Autres dépréciations et changements

lasso_path et enet_path
n_alphas est déprécié. Passez alphas sous forme d'entier ou de liste.
GradientBoosting
Le paramètre criterion est déprécié.
confusion_matrix_at_thresholds
Passez pos_label et sample_weight comme arguments nommés.
Métriques avec du texte
accuracy_score, confusion_matrix et d'autres renvoient une erreur quand y_true est du texte et y_pred numérique.

Une mise à jour sûre en quatre étapes

  1. 1

    Figez et créez une branche

    Mettez à jour dans un environnement ou une branche à part, pas en production.

  2. 2

    Rendez les avertissements visibles

    Lancez vos tests avec python -W error::FutureWarning pour trouver chaque dépréciation.

  3. 3

    Comparez les scores

    Réentraînez les modèles clés et comparez les métriques ; les corrections de poids et de discrétisation peuvent légèrement décaler les résultats.

  4. 4

    Passez à la 1.9.1

    Elle corrige le routage des métadonnées dans les pipelines : préférez-la à la 1.9.0.

Testez vos connaissances

1/3Quels callbacks sont fournis avec scikit-learn 1.9 ?

2/3Qu'est-ce qui remplace SVC(probability=True) ?

3/3Que change sparse_interface="sparray" ?

Vous mettez à jour votre stack Python cet automne ? Lisez le guide de migration vers pandas 3.0, les nouveautés de Python 3.15 et préparez des environnements propres avec uv.

Sources : le blog scikit-learn « release 1.9 » (12 juin 2026) et les notes de version de scikit-learn 1.9, y compris la 1.9.1 (septembre 2026).

Alessandro Ecclesie AgazziÉcrit par Alessandro Ecclesie Agazzi, analytics engineer à Londres. Mis à jour le 17 octobre 2026. À propos

Cet article vous a été utile ?

De nouveaux guides et décryptages des nouveautés en data et en IA paraissent ici régulièrement. Suivez-moi sur LinkedIn ou partagez cet article avec un collègue.