Version 1.10#
Legend for changelogs
Major Feature something big that you couldn’t do before.
Feature something that you couldn’t do before.
Efficiency an existing feature now may not require as much computation or memory.
Enhancement a miscellaneous minor improvement.
Fix something that previously didn’t work as documented – or according to reasonable expectations – should now work.
API Change you will need to change your code to have the same effect in the future; or a feature will be removed in the future.
Version 1.10.dev0#
June 2026
Support for Array API#
Additional estimators and functions have been updated to include support for all Array API compliant inputs.
See Array API support (experimental) for more details.
Feature
covariance.LedoitWolfnow supports array API compatible inputs. By Tim Head #33573
Metadata routing#
Refer to the Metadata Routing User Guide for more details.
Fix
ensemble.BaggingClassifiernow correctly routes metadata viapredictandpredict_probadynamically to the corresponding method on the sub-estimator. By Stefanie Senger. #34188Fix
pipeline.Pipeline’sfit_transformandfit_predictnow correctly applytransform_inputto metadata routed to intermediate steps, matchingfit. By Stefanie Senger. #34201Fix
compose.TransformedTargetRegressornow correctly routes metadata such assample_weightto its default regressor (LinearRegression) when metadata routing is enabled. By Stefanie Senger. #34224
sklearn.calibration#
Feature
calibration.calibration_curve,calibration.CalibrationDisplay.from_estimator, andcalibration.CalibrationDisplay.from_predictionsnow supportn_bins="cube_root". This option sets the number of bins toceil(n_samples**(1/3)). By Zeyu Sun #33856
sklearn.datasets#
Fix
datasets.fetch_openmlnow correctly recovers from a corrupted download by re-downloading it, instead of raising an error. By Roman Yurchak. #34262
sklearn.ensemble#
Efficiency Part of the fit of
sklearn.ensemble.GradientBoostingClassifierwas optimized. The speed-up is mainly visible for deeper trees, which is not the primary use case for gradient boosting but can occur in grid searches. For very deep trees, this can be up to 20 times faster. By Arthur Lacote #32911API Change The
sklearn.experimental.enable_hist_gradient_boostingmodule is deprecated and will be removed in 1.12. It is no longer needed sinceensemble.HistGradientBoostingClassifierandensemble.HistGradientBoostingRegressorare stable and can be imported normally fromsklearn.ensemble. By Guillaume Lemaitre. #34236
sklearn.impute#
API Change
impute.IterativeImputeris no longer experimental. It can now be imported directly withfrom sklearn.impute import IterativeImputer, and importingsklearn.experimental.enable_iterative_imputeris no longer required (doing so now raises a warning and is a no-op). It also no longer raises aexceptions.ConvergenceWarningwhenmax_iteris reached without meeting thetolstopping criterion, as non-convergence of the round-robin imputation is expected. The User Guide now documents why the imputed values are not guaranteed to converge and why investing in better imputation often yields diminishing returns for prediction. By Guillaume Lemaitre. #34214
sklearn.inspection#
Enhancement The parameter
multiclass_colorswas deprecated in favour oftarget_colorsininspection.DecisionBoundaryDisplay. The attributemulticlass_colors_was also renamed totarget_colors_. Now they can be used for binary problems as well without causing confusion (which will be added in a follow-up PR). By Anne Beyer. #34092
sklearn.linear_model#
Enhancement
linear_model.PoissonRegressor,linear_model.GammaRegressorandlinear_model.TweedieRegressorgot a new solver:solver="newton-cg". This is the same Newton conjugate gradient solver, a.k.a. truncated Newton, that is already available withlinear_model.LogisticRegression. By Christian Lorentzen. #33759
sklearn.metrics#
Efficiency Scorers created with
make_scorerno longer deep-copy metadata kwargs on each call, reducing memory usage during model selection and cross-validation. By Stefanie Senger. #34236Fix Fixed
metrics.average_precision_scoreto handle list-typey_scorefor multiclass data. By Lucy Liu. #34083
sklearn.model_selection#
API Change
model_selection.HalvingGridSearchCVandmodel_selection.HalvingRandomSearchCVnow expose the cross-validation results of the last halving iteration incv_results_. The full per-iteration history is available in the newall_cv_results_attribute. By Guillaume Lemaitre. #34250
sklearn.neighbors#
Feature
neighbors.NeighborhoodComponentsAnalysisnow supports sparse input matrices forinitin['pca', 'random', 'identity']. By Arturo Amor. #34122
Efficiency
sklearn.neighbors.KNeighborsClassifieris now faster when running with multiple threads. The statistics returned fromsklearn.neighbors.BallTreeandsklearn.neighbors.KDTreeno longer reset on each query, and are no longer incorrect when the tree is used from multiple threads. #34187
sklearn.pipeline#
Fix The default value for the
transform_inputparameter ofPipelinewas changed fromNoneto("X_val",)so that the validation set, when passed tofit, is always transformed alongsideX, to prevent easy to miss mistakes. By Jérémie du Boisberranger. #34263
sklearn.svm#
Fix Fixed a memory leak when calling the
fitmethod ofsvm.LinearSVR. By Jake VanderPlas. #34256
sklearn.tree#
Feature Added a
fill_colorsparameter totree.plot_treeandtree.export_graphvizto allow user-defined class colors when rendering filled decision trees. By Simon-Martin Schröder. #33810
Code and documentation contributors
Thanks to everyone who has contributed to the maintenance and improvement of the project since version 1.9, including:
TODO: update at the time of the release.