|
| 1 | +.. include:: _contributors.rst |
| 2 | + |
| 3 | +.. currentmodule:: sklearn |
| 4 | + |
| 5 | +.. _changes_1_2: |
| 6 | + |
| 7 | +Version 1.2.0 |
| 8 | +============= |
| 9 | + |
| 10 | +**In Development** |
| 11 | + |
| 12 | +.. include:: changelog_legend.inc |
| 13 | + |
| 14 | +Changed models |
| 15 | +-------------- |
| 16 | + |
| 17 | +The following estimators and functions, when fit with the same data and |
| 18 | +parameters, may produce different models from the previous version. This often |
| 19 | +occurs due to changes in the modelling logic (bug fixes or enhancements), or in |
| 20 | +random sampling procedures. |
| 21 | + |
| 22 | +- |Fix| :class:`manifold.TSNE` now throws a `ValueError` when fit with |
| 23 | + `perplexity>=n_samples` to ensure mathematical correctness of the algorithm. |
| 24 | + :pr:`10805` by :user:`Mathias Andersen <MrMathias>` and |
| 25 | + :pr:`23471` by :user:`Meekail Zain <micky774>` |
| 26 | + |
| 27 | +Changes impacting all modules |
| 28 | +----------------------------- |
| 29 | + |
| 30 | +- |Enhancement| Finiteness checks (detection of NaN and infinite values) in all |
| 31 | + estimators are now significantly more efficient for float32 data by leveraging |
| 32 | + NumPy's SIMD optimized primitives. |
| 33 | + :pr:`23446` by :user:`Meekail Zain <micky774>` |
| 34 | + |
| 35 | +Changelog |
| 36 | +--------- |
| 37 | + |
| 38 | +.. |
| 39 | + Entries should be grouped by module (in alphabetic order) and prefixed with |
| 40 | + one of the labels: |MajorFeature|, |Feature|, |Efficiency|, |Enhancement|, |
| 41 | + |Fix| or |API| (see whats_new.rst for descriptions). |
| 42 | + Entries should be ordered by those labels (e.g. |Fix| after |Efficiency|). |
| 43 | + Changes not specific to a module should be listed under *Multiple Modules* |
| 44 | + or *Miscellaneous*. |
| 45 | + Entries should end with: |
| 46 | + :pr:`123456` by :user:`Joe Bloggs <joeongithub>`. |
| 47 | + where 123456 is the *pull request* number, not the issue number. |
| 48 | +
|
| 49 | +:mod:`sklearn.cluster` |
| 50 | +...................... |
| 51 | + |
| 52 | +- |Enhancement| The `predict` and `fit_predict` methods of :class:`cluster.OPTICS` now |
| 53 | + accept sparse data type for input data. :pr:`14736` by :user:`Hunt Zhan <huntzhan>`, |
| 54 | + :pr:`20802` by :user:`Brandon Pokorny <Clickedbigfoot>`, |
| 55 | + and :pr:`22965` by :user:`Meekail Zain <micky774>`. |
| 56 | + |
| 57 | +- |Enhancement| :class:`cluster.Birch` now preserves dtype for `numpy.float32` |
| 58 | + inputs. :pr:`22968` by `Meekail Zain <micky774>`. |
| 59 | + |
| 60 | +:mod:`sklearn.ensemble` |
| 61 | +....................... |
| 62 | + |
| 63 | +- |Efficiency| Improve runtime performance of :class:`ensemble.IsolationForest` |
| 64 | + by avoiding data copies. :pr:`23252` by :user:`Zhehao Liu <MaxwellLZH>`. |
| 65 | + |
| 66 | +:mod:`sklearn.decomposition` |
| 67 | +............................ |
| 68 | + |
| 69 | +- |Enhancement| :class:`decomposition.FastICA` now allows the user to select |
| 70 | + how whitening is performed through the new `whiten_solver` parameter, which |
| 71 | + supports `svd` and `eigh`. `whiten_solver` defaults to `svd` although `eigh` |
| 72 | + may be faster and more memory efficient in cases where |
| 73 | + `num_features > num_samples`. An additional `sign_flip` parameter is added. |
| 74 | + When `sign_flip=True`, then the output of both solvers will be reconciled |
| 75 | + during `fit` so that their outputs match. This may change the output of the |
| 76 | + default solver, and hence may not be backwards compatible. |
| 77 | + :pr:`11860` by :user:`Pierre Ablin <pierreablin>`, |
| 78 | + :pr:`22527` by :user:`Meekail Zain <micky774>` and `Thomas Fan`_. |
| 79 | + |
| 80 | +:mod:`sklearn.feature_selection` |
| 81 | +................................ |
| 82 | +- |Fix| :class:`feature_selection.SelectFromModel` defaults to selection |
| 83 | + threshold 1e-5 when the estimator is either :class:`linear_model.ElasticNet` |
| 84 | + or :class:`linear_model.ElasticNetCV` with `l1_ratio` equals 1 or |
| 85 | + :class:`linear_model.LassoCV`. :pr:`23636` by :user:`Hao Chun Chang |
| 86 | + <haochunchang>` |
| 87 | + |
| 88 | +:mod:`sklearn.impute` |
| 89 | +..................... |
| 90 | + |
| 91 | +- |Fix| :class:`impute.SimpleImputer` uses the dtype seen in `fit` for |
| 92 | + `transform` when the dtype is object. :pr:`22063` by `Thomas Fan`_. |
| 93 | + |
| 94 | +:mod:`sklearn.linear_model` |
| 95 | +........................... |
| 96 | + |
| 97 | +- |Fix| Use dtype-aware tolerances for the validation of gram matrices (passed by users |
| 98 | + or precomputed). :pr:`22059` by :user:`Malte S. Kurz <MalteKurz>`. |
| 99 | + |
| 100 | +- |Fix| Fixed an error in :class:`linear_model.LogisticRegression` with |
| 101 | + `solver="newton-cg"`, `fit_intercept=True`, and a single feature. :pr:`23608` |
| 102 | + by `Tom Dupre la Tour`_. |
| 103 | + |
| 104 | +:mod:`sklearn.metrics` |
| 105 | +...................... |
| 106 | + |
| 107 | +- |Feature| :func:`class_likelihood_ratios` is added to compute the positive and |
| 108 | + negative likelihood ratios derived from the confusion matrix |
| 109 | + of a binary classification problem. :pr:`22518` by |
| 110 | + :user:`Arturo Amor <ArturoAmorQ>`. |
| 111 | + |
| 112 | +- |Fix| Fixed error message of :class:`metrics.coverage_error` for 1D array input. |
| 113 | + :pr:`23548` by :user:`Hao Chun Chang <haochunchang>`. |
| 114 | + |
| 115 | +:mod:`sklearn.neighbors` |
| 116 | +........................ |
| 117 | + |
| 118 | +- |Enhancement| :class:`neighbors.KernelDensity` bandwidth parameter now accepts |
| 119 | + definition using Scott's and Silvermann's estimation methods. |
| 120 | + :pr:`10468` by :user:`Ruben <icfly2>` and :pr:`22993` by |
| 121 | + :user:`Jovan Stojanovic <jovan-stojanovic>`. |
| 122 | + |
| 123 | +:mod:`sklearn.feature_selection` |
| 124 | +................................ |
| 125 | + |
| 126 | +- |Fix| The `partial_fit` method of :class:`feature_selection.SelectFromModel` |
| 127 | + now conducts validation for `max_features` and `feature_names_in` parameters. |
| 128 | + :pr:`23299` by :user:`Long Bao <lorentzbao>`. |
| 129 | + |
| 130 | +:mod:`sklearn.tree` |
| 131 | +................... |
| 132 | + |
| 133 | +- |Fix| Fixed invalid memory access bug during fit in |
| 134 | + :class:`tree.DecisionTreeRegressor` and :class:`tree.DecisionTreeClassifier`. |
| 135 | + :pr:`23273` by `Thomas Fan`_. |
| 136 | + |
| 137 | +:mod:`sklearn.utils` |
| 138 | +.................... |
| 139 | + |
| 140 | +- |Enhancement| :func:`utils.extmath.randomized_svd` now accepts an argument, |
| 141 | + `lapack_svd_driver`, to specify the lapack driver used in the internal |
| 142 | + deterministic SVD used by the randomized SVD algorithm. |
| 143 | + :pr:`20617` by :user:`Srinath Kailasa <skailasa>` |
| 144 | + |
| 145 | +:mod:`sklearn.manifold` |
| 146 | +....................... |
| 147 | + |
| 148 | +- |Fix| :class:`manifold.TSNE` now throws a `ValueError` when fit with |
| 149 | + `perplexity>=n_samples` to ensure mathematical correctness of the algorithm. |
| 150 | + :pr:`10805` by :user:`Mathias Andersen <MrMathias>` and |
| 151 | + :pr:`23471` by :user:`Meekail Zain <micky774>` |
| 152 | + |
| 153 | +Code and Documentation Contributors |
| 154 | +----------------------------------- |
| 155 | + |
| 156 | +Thanks to everyone who has contributed to the maintenance and improvement of |
| 157 | +the project since version 1.1, including: |
| 158 | + |
| 159 | +TODO: update at the time of the release. |
0 commit comments