8
8
Version 1.5
9
9
===========
10
10
11
- ..
12
- -- UNCOMMENT WHEN 1.5.0 IS RELEASED --
13
- For a short description of the main highlights of the release, please refer to
14
- :ref:`sphx_glr_auto_examples_release_highlights_plot_release_highlights_1_5_0.py`.
11
+ For a short description of the main highlights of the release, please refer to
12
+ :ref: `sphx_glr_auto_examples_release_highlights_plot_release_highlights_1_5_0.py `.
15
13
16
14
.. include :: changelog_legend.inc
17
15
@@ -20,7 +18,7 @@ Version 1.5
20
18
Version 1.5.0
21
19
=============
22
20
23
- **In Development **
21
+ **May 2024 **
24
22
25
23
Security
26
24
--------
@@ -59,6 +57,10 @@ Changed models
59
57
Changes impacting many modules
60
58
------------------------------
61
59
60
+ - |Fix | Raise `ValueError ` with an informative error message when passing 1D
61
+ sparse arrays to methods that expect 2D sparse inputs.
62
+ :pr: `28988 ` by :user: `Olivier Grisel <ogrisel> `.
63
+
62
64
- |API | The name of the input of the `inverse_transform ` method of estimators has been
63
65
standardized to `X `. As a consequence, `Xt ` is deprecated and will be removed in
64
66
version 1.7 in the following estimators: :class: `cluster.FeatureAgglomeration `,
@@ -67,10 +69,6 @@ Changes impacting many modules
67
69
:class: `pipeline.Pipeline ` and :class: `preprocessing.KBinsDiscretizer `.
68
70
:pr: `28756 ` by :user: `Will Dean <wd60622> `.
69
71
70
- - |Fix | Raise `ValueError ` with an informative error message when passing 1D
71
- sparse arrays to methods that expect 2D sparse inputs.
72
- :pr: `28988 ` by :user: `Olivier Grisel <ogrisel> `.
73
-
74
72
Support for Array API
75
73
---------------------
76
74
@@ -82,8 +80,8 @@ See :ref:`array_api` for more details.
82
80
**Functions: **
83
81
84
82
- :func: `sklearn.metrics.r2_score ` now supports Array API compliant inputs.
85
- :pr: `27904 ` by :user: `Eric Lindgren <elindgren> `, `Franck Charras <fcharras> `,
86
- `Olivier Grisel <ogrisel> ` and `Tim Head <betatim> `.
83
+ :pr: `27904 ` by :user: `Eric Lindgren <elindgren> `, :user: `Franck Charras <fcharras> `,
84
+ :user: `Olivier Grisel <ogrisel> ` and :user: `Tim Head <betatim> `.
87
85
88
86
**Classes: **
89
87
@@ -103,8 +101,8 @@ Unless we discover a major blocker, setuptools support will be dropped in
103
101
scikit-learn 1.6. The 1.5.x releases will support building scikit-learn with
104
102
setuptools.
105
103
106
- Meson support for building scikit-learn was added in :pr: `28040 ` by :user: ` Loïc
107
- Estève <lesteve> `
104
+ Meson support for building scikit-learn was added in :pr: `28040 ` by
105
+ :user: ` Loïc Estève <lesteve> `
108
106
109
107
Metadata Routing
110
108
----------------
@@ -120,7 +118,8 @@ more details.
120
118
now support metadata routing. The fit methods now
121
119
accept ``**fit_params `` which are passed to the underlying estimators
122
120
via their `fit ` methods.
123
- :pr: `28432 ` by :user: `Adam Li <adam2392> ` and :user: `Benjamin Bossan <BenjaminBossan> `.
121
+ :pr: `28432 ` by :user: `Adam Li <adam2392> ` and
122
+ :user: `Benjamin Bossan <BenjaminBossan> `.
124
123
125
124
- |Feature | :class: `linear_model.RidgeCV ` and
126
125
:class: `linear_model.RidgeClassifierCV ` now support metadata routing in
@@ -144,8 +143,8 @@ more details.
144
143
145
144
- |Feature | :class: `pipeline.FeatureUnion ` now supports metadata routing in its
146
145
``fit `` and ``fit_transform `` methods and route metadata to the underlying
147
- transformers' ``fit `` and ``fit_transform ``. :pr: ` 28205 ` by :user: ` Stefanie
148
- Senger <StefanieSenger> `.
146
+ transformers' ``fit `` and ``fit_transform ``.
147
+ :pr: ` 28205 ` by :user: ` Stefanie Senger <StefanieSenger> `.
149
148
150
149
- |Fix | Fix an issue when resolving default routing requests set via class
151
150
attributes.
@@ -156,8 +155,8 @@ more details.
156
155
:pr: `28651 ` by `Adrin Jalali `_.
157
156
158
157
- |FIX | Prevent a `RecursionError ` when estimators with the default `scoring `
159
- param (`None `) route metadata. :pr: ` 28712 ` by :user: ` Stefanie Senger
160
- <StefanieSenger> `.
158
+ param (`None `) route metadata.
159
+ :pr: ` 28712 ` by :user: ` Stefanie Senger <StefanieSenger> `.
161
160
162
161
Changelog
163
162
---------
@@ -217,19 +216,20 @@ Changelog
217
216
:mod: `sklearn.cross_decomposition `
218
217
..................................
219
218
220
- - |API | Deprecates `Y ` in favor of `y ` in the methods fit, transform and inverse_transform of:
219
+ - |Fix | The `coef_ ` fitted attribute of :class: `cross_decomposition.PLSRegression `
220
+ now takes into account both the scale of `X ` and `Y ` when `scale=True `. Note that
221
+ the previous predicted values were not affected by this bug.
222
+ :pr: `28612 ` by :user: `Guillaume Lemaitre <glemaitre> `.
223
+
224
+ - |API | Deprecates `Y ` in favor of `y ` in the methods fit, transform and
225
+ inverse_transform of:
221
226
:class: `cross_decomposition.PLSRegression `.
222
227
:class: `cross_decomposition.PLSCanonical `,
223
228
:class: `cross_decomposition.CCA `,
224
229
and :class: `cross_decomposition.PLSSVD `.
225
230
`Y ` will be removed in version 1.7.
226
231
:pr: `28604 ` by :user: `David Leon <davidleon123> `.
227
232
228
- - |Fix | The `coef_ ` fitted attribute of :class: `cross_decomposition.PLSRegression `
229
- now takes into account both the scale of `X ` and `Y ` when `scale=True `. Note that
230
- the previous predicted values were not affected by this bug.
231
- :pr: `28612 ` by :user: `Guillaume Lemaitre <glemaitre> `.
232
-
233
233
:mod: `sklearn.datasets `
234
234
.......................
235
235
@@ -245,7 +245,8 @@ Changelog
245
245
:func: `datasets.fetch_rcv1 `,
246
246
and :func: `datasets.fetch_species_distributions `.
247
247
By default, the functions will retry up to 3 times in case of network failures.
248
- :pr: `28160 ` by :user: `Zhehao Liu <MaxwellLZH> ` and :user: `Filip Karlo Došilović <fkdosilovic> `.
248
+ :pr: `28160 ` by :user: `Zhehao Liu <MaxwellLZH> ` and
249
+ :user: `Filip Karlo Došilović <fkdosilovic> `.
249
250
250
251
:mod: `sklearn.decomposition `
251
252
............................
@@ -350,13 +351,8 @@ Changelog
350
351
351
352
- |Fix | :class: `linear_model.ElasticNet `, :class: `linear_model.ElasticNetCV `,
352
353
:class: `linear_model.Lasso ` and :class: `linear_model.LassoCV ` now explicitly don't
353
- accept large sparse data formats. :pr: `27576 ` by :user: `Stefanie Senger
354
- <StefanieSenger> `.
355
-
356
- - |API | :class: `linear_model.RidgeCV ` and :class: `linear_model.RidgeClassifierCV `
357
- will now allow `alpha=0 ` when `cv != None `, which is consistent with
358
- :class: `linear_model.Ridge ` and :class: `linear_model.RidgeClassifier `.
359
- :pr: `28425 ` by :user: `Lucy Liu <lucyleeow> `.
354
+ accept large sparse data formats.
355
+ :pr: `27576 ` by :user: `Stefanie Senger <StefanieSenger> `.
360
356
361
357
- |Fix | :class: `linear_model.RidgeCV ` and :class: `RidgeClassifierCV ` correctly pass
362
358
`sample_weight ` to the underlying scorer when `cv ` is None.
@@ -366,6 +362,11 @@ Changelog
366
362
will now always be `None ` when `tol ` is set, as `n_nonzero_coefs ` is ignored in
367
363
this case. :pr: `28557 ` by :user: `Lucy Liu <lucyleeow> `.
368
364
365
+ - |API | :class: `linear_model.RidgeCV ` and :class: `linear_model.RidgeClassifierCV `
366
+ will now allow `alpha=0 ` when `cv != None `, which is consistent with
367
+ :class: `linear_model.Ridge ` and :class: `linear_model.RidgeClassifier `.
368
+ :pr: `28425 ` by :user: `Lucy Liu <lucyleeow> `.
369
+
369
370
- |API | Passing `average=0 ` to disable averaging is deprecated in
370
371
:class: `linear_model.PassiveAggressiveClassifier `,
371
372
:class: `linear_model.PassiveAggressiveRegressor `,
@@ -382,7 +383,8 @@ Changelog
382
383
:pr: `28703 ` by :user: `Christian Lorentzen <lorentzenchr> `.
383
384
384
385
- |API | `store_cv_values ` and `cv_values_ ` are deprecated in favor of
385
- `store_cv_results ` and `cv_results_ ` in `RidgeCV ` and `RidgeClassifierCV `.
386
+ `store_cv_results ` and `cv_results_ ` in `~linear_model.RidgeCV ` and
387
+ `~linear_model.RidgeClassifierCV `.
386
388
:pr: `28915 ` by :user: `Lucy Liu <lucyleeow> `.
387
389
388
390
:mod: `sklearn.manifold `
@@ -401,8 +403,15 @@ Changelog
401
403
:pr: `27456 ` by :user: `Venkatachalam N <venkyyuvy> `, :user: `Kshitij Mathur <Kshitij68> `
402
404
and :user: `Julian Libiseller-Egger <julibeg> `.
403
405
406
+ - |Feature | :func: `sklearn.metrics.check_scoring ` now returns a multi-metric scorer
407
+ when `scoring ` as a `dict `, `set `, `tuple `, or `list `. :pr: `28360 ` by `Thomas Fan `_.
408
+
409
+ - |Feature | :func: `metrics.d2_log_loss_score ` has been added which
410
+ calculates the D^2 score for the log loss.
411
+ :pr: `28351 ` by :user: `Omar Salman <OmarManzoor> `.
412
+
404
413
- |Efficiency | Improve efficiency of functions :func: `~metrics.brier_score_loss `,
405
- :func: `~metrics .calibration_curve `, :func: `~metrics.det_curve `,
414
+ :func: `~calibration .calibration_curve `, :func: `~metrics.det_curve `,
406
415
:func: `~metrics.precision_recall_curve `,
407
416
:func: `~metrics.roc_curve ` when `pos_label ` argument is specified.
408
417
Also improve efficiency of methods `from_estimator `
@@ -411,9 +420,6 @@ Changelog
411
420
:class: `~calibration.CalibrationDisplay `.
412
421
:pr: `28051 ` by :user: `Pierre de Fréminville <pidefrem> `.
413
422
414
- - |Feature | :func: `sklearn.metrics.check_scoring ` now returns a multi-metric scorer
415
- when `scoring ` as a `dict `, `set `, `tuple `, or `list `. :pr: `28360 ` by `Thomas Fan `_.
416
-
417
423
- |Fix |:class: `metrics.classification_report ` now shows only accuracy and not
418
424
micro-average when input is a subset of labels.
419
425
:pr: `28399 ` by :user: `Vineet Joshi <vjoshi253> `.
@@ -422,8 +428,8 @@ Changelog
422
428
computation. This is likely to affect neighbor-based algorithms.
423
429
:pr: `28692 ` by :user: `Loïc Estève <lesteve> `.
424
430
425
- - |API | :func: `metrics.precision_recall_curve ` deprecated the keyword argument ` probas_pred `
426
- in favor of `y_score `. `probas_pred ` will be removed in version 1.7.
431
+ - |API | :func: `metrics.precision_recall_curve ` deprecated the keyword argument
432
+ ` probas_pred ` in favor of `y_score `. `probas_pred ` will be removed in version 1.7.
427
433
:pr: `28092 ` by :user: `Adam Li <adam2392> `.
428
434
429
435
- |API | :func: `metrics.brier_score_loss ` deprecated the keyword argument `y_prob `
@@ -434,10 +440,6 @@ Changelog
434
440
is deprecated and will raise an error in v1.7.
435
441
:pr: `18555 ` by :user: `Kaushik Amar Das <cozek> `.
436
442
437
- - |Feature | :func: `metrics.d2_log_loss_score ` has been added which
438
- calculates the D^2 score for the log loss.
439
- :pr: `28351 ` by :user: `Omar Salman <OmarManzoor> `.
440
-
441
443
:mod: `sklearn.mixture `
442
444
......................
443
445
@@ -460,22 +462,22 @@ Changelog
460
462
raises a warning when groups are passed in to :term: `split `. :pr: `28210 ` by
461
463
`Thomas Fan `_.
462
464
465
+ - |Enhancement | The HTML diagram representation of
466
+ :class: `~model_selection.GridSearchCV `,
467
+ :class: `~model_selection.RandomizedSearchCV `,
468
+ :class: `~model_selection.HalvingGridSearchCV `, and
469
+ :class: `~model_selection.HalvingRandomSearchCV ` will show the best estimator when
470
+ `refit=True `. :pr: `28722 ` by :user: `Yao Xiao <Charlie-XIAO> ` and `Thomas Fan `_.
471
+
463
472
- |Fix | the ``cv_results_ `` attribute (of :class: `model_selection.GridSearchCV `) now
464
473
returns masked arrays of the appropriate NumPy dtype, as opposed to always returning
465
474
dtype ``object ``. :pr: `28352 ` by :user: `Marco Gorelli<MarcoGorelli> `.
466
475
467
- - |Fix | :func: `sklearn. model_selection.train_test_score ` works with Array API inputs.
476
+ - |Fix | :func: `model_selection.train_test_split ` works with Array API inputs.
468
477
Previously indexing was not handled correctly leading to exceptions when using strict
469
478
implementations of the Array API like CuPY.
470
479
:pr: `28407 ` by :user: `Tim Head <betatim> `.
471
480
472
- - |Enhancement | The HTML diagram representation of
473
- :class: `~model_selection.GridSearchCV `,
474
- :class: `~model_selection.RandomizedSearchCV `,
475
- :class: `~model_selection.HalvingGridSearchCV `, and
476
- :class: `~model_selection.HalvingRandomSearchCV ` will show the best estimator when
477
- `refit=True `. :pr: `28722 ` by :user: `Yao Xiao <Charlie-XIAO> ` and `Thomas Fan `_.
478
-
479
481
:mod: `sklearn.multioutput `
480
482
..........................
481
483
@@ -518,6 +520,10 @@ Changelog
518
520
:mod: `sklearn.utils `
519
521
....................
520
522
523
+ - |Fix | :func: `~utils._safe_indexing ` now works correctly for polars DataFrame when
524
+ `axis=0 ` and supports indexing polars Series.
525
+ :pr: `28521 ` by :user: `Yao Xiao <Charlie-XIAO> `.
526
+
521
527
- |API | :data: `utils.IS_PYPY ` is deprecated and will be removed in version 1.7.
522
528
:pr: `28768 ` by :user: `Jérémie du Boisberranger <jeremiedbb> `.
523
529
@@ -529,15 +535,11 @@ Changelog
529
535
`joblib.register_parallel_backend ` instead.
530
536
:pr: `28847 ` by :user: `Jérémie du Boisberranger <jeremiedbb> `.
531
537
532
- - |API | Raise informative warning message in :func: `type_of_target ` when
533
- represented as bytes. For classifiers and classification metrics, labels encoded
538
+ - |API | Raise informative warning message in :func: `~utils.multiclass. type_of_target `
539
+ when represented as bytes. For classifiers and classification metrics, labels encoded
534
540
as bytes is deprecated and will raise an error in v1.7.
535
541
:pr: `18555 ` by :user: `Kaushik Amar Das <cozek> `.
536
542
537
- - |Fix | :func: `~utils._safe_indexing ` now works correctly for polars DataFrame when
538
- `axis=0 ` and supports indexing polars Series.
539
- :pr: `28521 ` by :user: `Yao Xiao <Charlie-XIAO> `.
540
-
541
543
- |API | :func: `utils.estimator_checks.check_estimator_sparse_data ` was split into two
542
544
functions: :func: `utils.estimator_checks.check_estimator_sparse_matrix ` and
543
545
:func: `utils.estimator_checks.check_estimator_sparse_array `.
@@ -548,4 +550,29 @@ Changelog
548
550
Thanks to everyone who has contributed to the maintenance and improvement of
549
551
the project since version 1.4, including:
550
552
551
- TODO: update at the time of the release.
553
+ 101AlexMartin, Abdulaziz Aloqeely, Adam J. Stewart, Adam Li, Adarsh Wase, Adrin
554
+ Jalali, Advik Sinha, Akash Srivastava, Akihiro Kuno, Alan Guedes, Alexis
555
+ IMBERT, Ana Paula Gomes, Anderson Nelson, Andrei Dzis, Arnaud Capitaine, Arturo
556
+ Amor, Aswathavicky, Bharat Raghunathan, Brendan Lu, Bruno, Cemlyn, Christian
557
+ Lorentzen, Christian Veenhuis, Cindy Liang, Claudio Salvatore Arcidiacono,
558
+ Connor Boyle, Conrad Stevens, crispinlogan, davidleon123, DerWeh, Dipan Banik,
559
+ Duarte São José, DUONG, Eddie Bergman, Edoardo Abati, Egehan Gunduz, Emad
560
+ Izadifar, Erich Schubert, Filip Karlo Došilović, Franck Charras, Gael
561
+ Varoquaux, Gönül Aycı, Guillaume Lemaitre, Gyeongjae Choi, Harmanan Kohli,
562
+ Hong Xiang Yue, Ian Faust, itsaphel, Ivan Wiryadi, Jack Bowyer, Javier Marin
563
+ Tur, Jérémie du Boisberranger, Jérôme Dockès, Jiawei Zhang, Joel Nothman,
564
+ Johanna Bayer, John Cant, John Hopfensperger, jpcars, jpienaar-tuks, Julian
565
+ Libiseller-Egger, Julien Jerphanion, KanchiMoe, Kaushik Amar Das, keyber,
566
+ Koustav Ghosh, kraktus, Krsto Proroković, ldwy4, LeoGrin, lihaitao, Linus
567
+ Sommer, Loic Esteve, Lucy Liu, Lukas Geiger, manasimj, Manuel Labbé, Manuel
568
+ Morales, Marco Edward Gorelli, Maren Westermann, Marija Vlajic, Mark Elliot,
569
+ Mateusz Sokół, Mavs, Michael Higgins, Michael Mayer, miguelcsilva, Miki
570
+ Watanabe, Mohammed Hamdy, myenugula, Nathan Goldbaum, Naziya Mahimkar, Neto,
571
+ Olivier Grisel, Omar Salman, Patrick Wang, Pierre de Fréminville, Priyash
572
+ Shah, Puneeth K, Rahil Parikh, raisadz, Raj Pulapakura, Ralf Gommers, Ralph
573
+ Urlus, Randolf Scholz, Reshama Shaikh, Richard Barnes, Rodrigo Romero, Saad
574
+ Mahmood, Salim Dohri, Sandip Dutta, SarahRemus, scikit-learn-bot, Shaharyar
575
+ Choudhry, Shubham, sperret6, Stefanie Senger, Suha Siddiqui, Thanh Lam DANG,
576
+ thebabush, Thomas J. Fan, Thomas Lazarus, Thomas Li, Tialo, Tim Head, Tuhin
577
+ Sharma, VarunChaduvula, Vineet Joshi, virchan, Waël Boukhobza, Weyb, Will
578
+ Dean, Xavier Beltran, Xiao Yuan, Xuefeng Xu, Yao Xiao
0 commit comments