scikit-learn sklearn contributors rst Version 1 0 releasenotes10

Answer:
.. include:: _contributors.rst

.. currentmodule:: sklearn

.. _release_notes_1_0:

===========
Version 1.0
===========

For a short description of the main highlights of the release, please refer to
:ref:`sphx_glr_auto_examples_release_highlights_plot_release_highlights_1_0_0.py`.

.. include:: changelog_legend.inc

.. _changes_1_0_2:

Version 1.0.2
=============

**December 2021**

- |Fix| :class:`cluster.Birch`,
  :class:`feature_selection.RFECV`, :class:`ensemble.RandomForestRegressor`,
  :class:`ensemble.RandomForestClassifier`,
  :class:`ensemble.GradientBoostingRegressor`, and
  :class:`ensemble.GradientBoostingClassifier` do not raise warning when fitted
  on a pandas DataFrame anymore. :pr:`21578` by `Thomas Fan`_.

Changelog
---------

:mod:`sklearn.cluster`
......................

- |Fix| Fixed an infinite loop in :func:`cluster.SpectralClustering` by
  moving an iteration counter from try to except.
  :pr:`21271` by :user:`Tyler Martin <martintb>`.

:mod:`sklearn.datasets`
.......................

- |Fix| :func:`datasets.fetch_openml` is now thread safe. Data is first
  downloaded to a temporary subfolder and then renamed.
  :pr:`21833` by :user:`Siavash Rezazadeh <siavrez>`.

:mod:`sklearn.decomposition`
............................

- |Fix| Fixed the constraint on the objective function of
  :class:`decomposition.DictionaryLearning`,
  :class:`decomposition.MiniBatchDictionaryLearning`, :class:`decomposition.SparsePCA`
  and :class:`decomposition.MiniBatchSparsePCA` to be convex and match the referenced
  article. :pr:`19210` by :user:`Jérémie du Boisberranger <jeremiedbb>`.

:mod:`sklearn.ensemble`
.......................

- |Fix| :class:`ensemble.RandomForestClassifier`,
  :class:`ensemble.RandomForestRegressor`,
  :class:`ensemble.ExtraTreesClassifier`, :class:`ensemble.ExtraTreesRegressor`,
  and :class:`ensemble.RandomTreesEmbedding` now raise a ``ValueError`` when
  ``bootstrap=False`` and ``max_samples`` is not ``None``.
  :pr:`21295` :user:`Haoyin Xu <PSSF23>`.

- |Fix| Solve a bug in :class:`ensemble.GradientBoostingClassifier` where the
  exponential loss was computing the positive gradient instead of the
  negative one.
  :pr:`22050` by :user:`Guillaume Lemaitre <glemaitre>`.

:mod:`sklearn.feature_selection`
................................

- |Fix| Fixed :class:`feature_selection.SelectFromModel` by improving support
  for base estimators that do not set `feature_names_in_`. :pr:`21991` by
  `Thomas Fan`_.

:mod:`sklearn.impute`
.....................

- |Fix| Fix a bug in :class:`linear_model.RidgeClassifierCV` where the method
  `predict` was performing an `argmax` on the scores obtained from
  `decision_function` instead of returning the multilabel indicator matrix.
  :pr:`19869` by :user:`Guillaume Lemaitre <glemaitre>`.

:mod:`sklearn.linear_model`
...........................

- |Fix| :class:`linear_model.LassoLarsIC` now correctly computes AIC
  and BIC. An error is now raised when `n_features > n_samples` and
  when the noise variance is not provided.
  :pr:`21481` by :user:`Guillaume Lemaitre <glemaitre>` and
  :user:`Andrés Babino <ababino>`.

:mod:`sklearn.manifold`
.......................

- |Fix| Fixed an unnecessary error when fitting :class:`manifold.Isomap` with a
  precomputed dense distance matrix where the neighbors graph has multiple
  disconnected components. :pr:`21915` by `Tom Dupre la Tour`_.

:mod:`sklearn.metrics`
......................

- |Fix| All :class:`sklearn.metrics.DistanceMetric` subclasses now correctly support
  read-only buffer attributes.
  This fixes a regression introduced in 1.0.0 with respect to 0.24.2.
  :pr:`21694` by :user:`Julien Jerphanion <jjerphan>`.

- |Fix| All `sklearn.metrics.MinkowskiDistance` now accepts a weight
  parameter that makes it possible to write code that behaves consistently both
  with scipy 1.8 and earlier versions. In turns this means that all
  neighbors-based estimators (except those that use `algorithm="kd_tree"`) now
  accept a weight parameter with `metric="minknowski"` to yield results that
  are always consistent with `scipy.spatial.distance.cdist`.
  :pr:`21741` by :user:`Olivier Grisel <ogrisel>`.

:mod:`sklearn.multiclass`
.........................

- |Fix| :meth:`multiclass.OneVsRestClassifier.predict_proba` does not error when
  fitted on constant integer targets. :pr:`21871` by `Thomas Fan`_.

:mod:`sklearn.neighbors`
........................

- |Fix| :class:`neighbors.KDTree` and :class:`neighbors.BallTree` correctly supports
  read-only buffer attributes. :pr:`21845` by `Thomas Fan`_.

:mod:`sklearn.preprocessing`
............................

- |Fix| Fixes compatibility bug with NumPy 1.22 in :class:`preprocessing.OneHotEncoder`.
  :pr:`21517` by `Thomas Fan`_.

:mod:`sklearn.tree`
...................

- |Fix| Prevents :func:`tree.plot_tree` from drawing out of the boundary of
  the figure. :pr:`21917` by `Thomas Fan`_.

- |Fix| Support loading pickles of decision tree models when the pickle has
  been generated on a platform with a different bitness. A typical example is
  to train and pickle the model on 64 bit machine and load the model on a 32
  bit machine for prediction. :pr:`21552` by :user:`Loïc Estève <lesteve>`.

:mod:`sklearn.utils`
....................

- |Fix| :func:`utils.estimator_html_repr` now escapes all the estimator
  descriptions in the generated HTML. :pr:`21493` by
  :user:`Aurélien Geron <ageron>`.

.. _changes_1_0_1:

Version 1.0.1
=============

**October 2021**

Fixed models
------------

- |Fix| Non-fit methods in the following classes do not raise a UserWarning
  when fitted on DataFrames with valid feature names:
  :class:`covariance.EllipticEnvelope`, :class:`ensemble.IsolationForest`,
  :class:`ensemble.AdaBoostClassifier`, :class:`neighbors.KNeighborsClassifier`,
  :class:`neighbors.KNeighborsRegressor`,
  :class:`neighbors.RadiusNeighborsClassifier`,
  :class:`neighbors.RadiusNeighborsRegressor`. :pr:`21199` by `Thomas Fan`_.

:mod:`sklearn.calibration`
..........................

- |Fix| Fixed :class:`calibration.CalibratedClassifierCV` to take into account
  `sample_weight` when computing the base estimator prediction when
  `ensemble=False`.
  :pr:`20638` by :user:`Julien Bohné <JulienB-78>`.

- |Fix| Fixed a bug in :class:`calibration.CalibratedClassifierCV` with
  `method="sigmoid"` that was ignoring the `sample_weight` when computing the
  the Bayesian priors.
  :pr:`21179` by :user:`Guillaume Lemaitre <glemaitre>`.

:mod:`sklearn.cluster`
......................

- |Fix| Fixed a bug in :class:`cluster.KMeans`, ensuring reproducibility and equivalence
  between sparse and dense input. :pr:`21195`
  by :user:`Jérémie du Boisberranger <jeremiedbb>`.

:mod:`sklearn.ensemble`
.......................

- |Fix| Fixed a bug that could produce a segfault in rare cases for
  :class:`ensemble.HistGradientBoostingClassifier` and
  :class:`ensemble.HistGradientBoostingRegressor`.
  :pr:`21130` :user:`Christian Lorentzen <lorentzenchr>`.

:mod:`sklearn.gaussian_process`
...............................

- |Fix| Compute `y_std` properly with multi-target in
  :class:`sklearn.gaussian_process.GaussianProcessRegressor` allowing
  proper normalization in multi-target scene.
  :pr:`20761` by :user:`Patrick de C. T. R. Ferreira <patrickctrf>`.

:mod:`sklearn.feature_extraction`
.................................

- |Efficiency| Fixed an efficiency regression introduced in version 1.0.0 in the
  `transform` method of :class:`feature_extraction.text.CountVectorizer` which no
  longer checks for uppercase characters in the provided vocabulary. :pr:`21251`
  by :user:`Jérémie du Boisberranger <jeremiedbb>`.

- |Fix| Fixed a bug in :class:`feature_extraction.text.CountVectorizer` and
  :class:`feature_extraction.text.TfidfVectorizer` by raising an
  error when 'min_idf' or 'max_idf' are floating-point numbers greater than 1.
  :pr:`20752` by :user:`Alek Lefebvre <AlekLefebvre>`.

:mod:`sklearn.linear_model`
...........................

- |Fix| Improves stability of :class:`linear_model.LassoLars` for different
  versions of openblas. :pr:`21340` by `Thomas Fan`_.

- |Fix| :class:`linear_model.LogisticRegression` now raises a better error
  message when the solver does not support sparse matrices with int64 indices.
  :pr:`21093` by `Tom Dupre la Tour`_.

:mod:`sklearn.neighbors`
........................

- |Fix| :class:`neighbors.KNeighborsClassifier`,
  :class:`neighbors.KNeighborsRegressor`,
  :class:`neighbors.RadiusNeighborsClassifier`,
  :class:`neighbors.RadiusNeighborsRegressor` with `metric="precomputed"` raises
  an error for `bsr` and `dok` sparse matrices in methods: `fit`, `kneighbors`
  and `radius_neighbors`, due to handling of explicit zeros in `bsr` and `dok`
  :term:`sparse graph` formats. :pr:`21199` by `Thomas Fan`_.

:mod:`sklearn.pipeline`
.......................

- |Fix| :meth:`pipeline.Pipeline.get_feature_names_out` correctly passes feature
  names out from one step of a pipeline to the next. :pr:`21351` by
  `Thomas Fan`_.

:mod:`sklearn.svm`
..................

- |Fix| :class:`svm.SVC` and :class:`svm.SVR` check for an inconsistency
  in its internal representation and raise an error instead of segfaulting.
  This fix also resolves
  `CVE-2020-28975 <https://nvd.nist.gov/vuln/detail/CVE-2020-28975>`__.
  :pr:`21336` by `Thomas Fan`_.

:mod:`sklearn.utils`
....................

- |Enhancement| `utils.validation._check_sample_weight` can perform a
  non-negativity check on the sample weights. It can be turned on
  using the only_non_negative bool parameter.
  Estimators that check for non-negative weights are updated:
  :func:`linear_model.LinearRegression` (here the previous
  error message was misleading),
  :func:`ensemble.AdaBoostClassifier`,
  :func:`ensemble.AdaBoostRegressor`,
  :func:`neighbors.KernelDensity`.
  :pr:`20880` by :user:`Guillaume Lemaitre <glemaitre>`
  and :user:`András Simon <simonandras>`.

- |Fix| Solve a bug in ``sklearn.utils.metaestimators.if_delegate_has_method``
  where the underlying check for an attribute did not work with NumPy arrays.
  :pr:`21145` by :user:`Zahlii <Zahlii>`.

Miscellaneous
.............

- |Fix| Fitting an estimator on a dataset that has no feature names, that was previously
  fitted on a dataset with feature names no longer keeps the old feature names stored in
  the `feature_names_in_` attribute. :pr:`21389` by
  :user:`Jérémie du Boisberranger <jeremiedbb>`.

.. _changes_1_0:

Version 1.0.0
=============

**September 2021**

Minimal dependencies
--------------------

Version 1.0.0 of scikit-learn requires python 3.7+, numpy 1.14.6+ and
scipy 1.1.0+. Optional minimal dependency is matplotlib 2.2.2+.

Enforcing keyword-only arguments
--------------------------------

In an effort to promote clear and non-ambiguous use of the library, most
constructor and function parameters must now be passed as keyword arguments
(i.e. using the `param=value` syntax) instead of positional. If a keyword-only
parameter is used as positional, a `TypeError` is now raised.
:issue:`15005` :pr:`20002` by `Joel Nothman`_, `Adrin Jalali`_, `Thomas Fan`_,
`Nicolas Hug`_, and `Tom Dupre la Tour`_. See `SLEP009
<https://scikit-learn-enhancement-proposals.readthedocs.io/en/latest/slep009/proposal.html>`_
for more details.

Changed models
--------------

The following estimators and functions, when fit with the same data and
parameters, may produce different models from the previous version. This often
occurs due to changes in the modelling logic (bug fixes or enhancements), or in
random sampling procedures.

- |Fix| :class:`manifold.TSNE` now avoids numerical underflow issues during
  affinity matrix computation.

- |Fix| :class:`manifold.Isomap` now connects disconnected components of the
  neighbors graph along some minimum distance pairs, instead of changing
  every infinite distances to zero.

- |Fix| The splitting criterion of :class:`tree.DecisionTreeClassifier` and
  :class:`tree.DecisionTreeRegressor` can be impacted by a fix in the handling
  of rounding errors. Previously some extra spurious splits could occur.

- |Fix| :func:`model_selection.train_test_split` with a `stratify` parameter
  and :class:`model_selection.StratifiedShuffleSplit` may lead to slightly
  different results.

Details are listed in the changelog below.

(While we are trying to better inform users by providing this information, we
cannot assure that this list is complete.)

Changelog
---------

..
    Entries should be grouped by module (in alphabetic order) and prefixed with
    one of the labels: |MajorFeature|, |Feature|, |Efficiency|, |Enhancement|,
    |Fix| or |API| (see whats_new.rst for descriptions).
    Entries should be ordered by those labels (e.g. |Fix| after |Efficiency|).
    Changes not specific to a module should be listed under *Multiple Modules*
    or *Miscellaneous*.
    Entries should end with:
    :pr:`123456` by :user:`Joe Bloggs <joeongithub>`.
    where 123456 is the *pull request* number, not the issue number.

- |API| The option for using the squared error via ``loss`` and
  ``criterion`` parameters was made more consistent. The preferred way is by
  setting the value to `"squared_error"`. Old option names are still valid,
  produce the same models, but are deprecated and will be removed in version
  1.2.
  :pr:`19310` by :user:`Christian Lorentzen <lorentzenchr>`.

  - For :class:`ensemble.ExtraTreesRegressor`, `criterion="mse"` is deprecated,
    use `"squared_error"` instead which is now the default.

  - For :class:`ensemble.GradientBoostingRegressor`, `loss="ls"` is deprecated,
    use `"squared_error"` instead which is now the default.

  - For :class:`ensemble.RandomForestRegressor`, `criterion="mse"` is deprecated,
    use `"squared_error"` instead which is now the default.

  - For :class:`ensemble.HistGradientBoostingRegressor`, `loss="least_squares"`
    is deprecated, use `"squared_error"` instead which is now the default.

  - For :class:`linear_model.RANSACRegressor`, `loss="squared_loss"` is
    deprecated, use `"squared_error"` instead.

  - For :class:`linear_model.SGDRegressor`, `loss="squared_loss"` is
    deprecated, use `"squared_error"` instead which is now the default.

  - For :class:`tree.DecisionTreeRegressor`, `criterion="mse"` is deprecated,
    use `"squared_error"` instead which is now the default.

  - For :class:`tree.ExtraTreeRegressor`, `criterion="mse"` is deprecated,
    use `"squared_error"` instead which is now the default.

- |API| The option for using the absolute error via ``loss`` and
  ``criterion`` parameters was made more consistent. The preferred way is by
  setting the value to `"absolute_error"`. Old option names are still valid,
  produce the same models, but are deprecated and will be removed in version
  1.2.
  :pr:`19733` by :user:`Christian Lorentzen <lorentzenchr>`.

  - For :class:`ensemble.ExtraTreesRegressor`, `criterion="mae"` is deprecated,
    use `"absolute_error"` instead.

  - For :class:`ensemble.GradientBoostingRegressor`, `loss="lad"` is deprecated,
    use `"absolute_error"` instead.

  - For :class:`ensemble.RandomForestRegressor`, `criterion="mae"` is deprecated,
    use `"absolute_error"` instead.

  - For :class:`ensemble.HistGradientBoostingRegressor`,
    `loss="least_absolute_deviation"` is deprecated, use `"absolute_error"`
    instead.

  - For :class:`linear_model.RANSACRegressor`, `loss="absolute_loss"` is
    deprecated, use `"absolute_error"` instead which is now the default.

  - For :class:`tree.DecisionTreeRegressor`, `criterion="mae"` is deprecated,
    use `"absolute_error"` instead.

  - For :class:`tree.ExtraTreeRegressor`, `criterion="mae"` is deprecated,
    use `"absolute_error"` instead.

- |API| `np.matrix` usage is deprecated in 1.0 and will raise a `TypeError` in
  1.2. :pr:`20165` by `Thomas Fan`_.

- |API| :term:`get_feature_names_out` has been added to the transformer API
  to get the names of the output features. `get_feature_names` has in
  turn been deprecated. :pr:`18444` by `Thomas Fan`_.

- |API| All estimators store `feature_names_in_` when fitted on pandas Dataframes.
  These feature names are compared to names seen in non-`fit` methods, e.g.
  `transform` and will raise a `FutureWarning` if they are not consistent.
  These ``FutureWarning`` s will become ``ValueError`` s in 1.2. :pr:`18010` by
  `Thomas Fan`_.

:mod:`sklearn.base`
...................

- |Fix| :func:`config_context` is now threadsafe. :pr:`18736` by `Thomas Fan`_.

:mod:`sklearn.calibration`
..........................

- |Feature| :func:`calibration.CalibrationDisplay` added to plot
  calibration curves. :pr:`17443` by :user:`Lucy Liu <lucyleeow>`.

- |Fix| The ``predict`` and ``predict_proba`` methods of
  :class:`calibration.CalibratedClassifierCV` can now properly be used on
  prefitted pipelines. :pr:`19641` by :user:`Alek Lefebvre <AlekLefebvre>`.

- |Fix| Fixed an error when using a :class:`ensemble.VotingClassifier`
  as `base_estimator` in :class:`calibration.CalibratedClassifierCV`.
  :pr:`20087` by :user:`Clément Fauchereau <clement-f>`.

:mod:`sklearn.cluster`
......................

- |Efficiency| The ``"k-means++"`` initialization of :class:`cluster.KMeans`
  and :class:`cluster.MiniBatchKMeans` is now faster, especially in multicore
  settings. :pr:`19002` by :user:`Jon Crall <Erotemic>` and :user:`Jérémie du
  Boisberranger <jeremiedbb>`.

- |Efficiency| :class:`cluster.KMeans` with `algorithm='elkan'` is now faster
  in multicore settings. :pr:`19052` by
  :user:`Yusuke Nagasaka <YusukeNagasaka>`.

- |Efficiency| :class:`cluster.MiniBatchKMeans` is now faster in multicore
  settings. :pr:`17622` by :user:`Jérémie du Boisberranger <jeremiedbb>`.

- |Efficiency| :class:`cluster.OPTICS` can now cache the output of the
  computation of the tree, using the `memory` parameter.  :pr:`19024` by
  :user:`Frankie Robertson <frankier>`.

- |Enhancement| The `predict` and `fit_predict` methods of
  :class:`cluster.AffinityPropagation` now accept sparse data type for input
  data.
  :pr:`20117` by :user:`Venkatachalam Natchiappan <venkyyuvy>`

- |Fix| Fixed a bug in :class:`cluster.MiniBatchKMeans` where the sample
  weights were partially ignored when the input is sparse. :pr:`17622` by
  :user:`Jérémie du Boisberranger <jeremiedbb>`.

- |Fix| Improved convergence detection based on center change in
  :class:`cluster.MiniBatchKMeans` which was almost never achievable.
  :pr:`17622` by :user:`Jérémie du Boisberranger <jeremiedbb>`.

- |FIX| :class:`cluster.AgglomerativeClustering` now supports readonly
  memory-mapped datasets.
  :pr:`19883` by :user:`Julien Jerphanion <jjerphan>`.

- |Fix| :class:`cluster.AgglomerativeClustering` correctly connects components
  when connectivity and affinity are both precomputed and the number
  of connected components is greater than 1. :pr:`20597` by
  `Thomas Fan`_.

- |Fix| :class:`cluster.FeatureAgglomeration` does not accept a ``**params`` kwarg in
  the ``fit`` function anymore, resulting in a more concise error message. :pr:`20899`
  by :user:`Adam Li <adam2392>`.

- |Fix| Fixed a bug in :class:`cluster.KMeans`, ensuring reproducibility and equivalence
  between sparse and dense input. :pr:`20200`
  by :user:`Jérémie du Boisberranger <jeremiedbb>`.

- |API| :class:`cluster.Birch` attributes, `fit_` and `partial_fit_`, are
  deprecated and will be removed in 1.2. :pr:`19297` by `Thomas Fan`_.

- |API| the default value for the `batch_size` parameter of
  :class:`cluster.MiniBatchKMeans` was changed from 100 to 1024 due to
  efficiency reasons. The `n_iter_` attribute of
  :class:`cluster.MiniBatchKMeans` now reports the number of started epochs and
  the `n_steps_` attribute reports the number of mini batches processed.
  :pr:`17622` by :user:`Jérémie du Boisberranger <jeremiedbb>`.

- |API| :func:`cluster.spectral_clustering` raises an improved error when passed
  a `np.matrix`. :pr:`20560` by `Thomas Fan`_.

:mod:`sklearn.compose`
......................

- |Enhancement| :class:`compose.ColumnTransformer` now records the output
  of each transformer in `output_indices_`. :pr:`18393` by
  :user:`Luca Bittarello <lbittarello>`.

- |Enhancement| :class:`compose.ColumnTransformer` now allows DataFrame input to
  have its columns appear in a changed order in `transform`. Further, columns that
  are dropped will not be required in transform, and additional columns will be
  ignored if `remainder='drop'`. :pr:`19263` by `Thomas Fan`_.

- |Enhancement| Adds `**predict_params` keyword argument to
  :meth:`compose.TransformedTargetRegressor.predict` that passes keyword
  argument to the regressor.
  :pr:`19244` by :user:`Ricardo <ricardojnf>`.

- |FIX| `compose.ColumnTransformer.get_feature_names` supports
  non-string feature names returned by any of its transformers. However, note
  that ``get_feature_names`` is deprecated, use ``get_feature_names_out``
  instead. :pr:`18459` by :user:`Albert Villanova del Moral <albertvillanova>`
  and :user:`Alonso Silva Allende <alonsosilvaallende>`.

- |Fix| :class:`compose.TransformedTargetRegressor` now takes nD targets with
  an adequate transformer.
  :pr:`18898` by :user:`Oras Phongpanagnam <panangam>`.

- |API| Adds `verbose_feature_names_out` to :class:`compose.ColumnTransformer`.
  This flag controls the prefixing of feature names out in
  :term:`get_feature_names_out`. :pr:`18444` and :pr:`21080` by `Thomas Fan`_.

:mod:`sklearn.covariance`
.........................

- |Fix| Adds arrays check to :func:`covariance.ledoit_wolf` and
  :func:`covariance.ledoit_wolf_shrinkage`. :pr:`20416` by :user:`Hugo Defois
  <defoishugo>`.

- |API| Deprecates the following keys in `cv_results_`: `'mean_score'`,
  `'std_score'`, and `'split(k)_score'` in favor of `'mean_test_score'`
  `'std_test_score'`, and `'split(k)_test_score'`. :pr:`20583` by `Thomas Fan`_.

:mod:`sklearn.datasets`
.......................

- |Enhancement| :func:`datasets.fetch_openml` now supports categories with
  missing values when returning a pandas dataframe. :pr:`19365` by
  `Thomas Fan`_ and :user:`Amanda Dsouza <amy12xx>` and
  :user:`EL-ATEIF Sara <elateifsara>`.

- |Enhancement| :func:`datasets.fetch_kddcup99` raises a better message
  when the cached file is invalid. :pr:`19669` `Thomas Fan`_.

- |Enhancement| Replace usages of ``__file__`` related to resource file I/O
  with ``importlib.resources`` to avoid the assumption that these resource
  files (e.g. ``iris.csv``) already exist on a filesystem, and by extension
  to enable compatibility with tools such as ``PyOxidizer``.
  :pr:`20297` by :user:`Jack Liu <jackzyliu>`.

- |Fix| Shorten data file names in the openml tests to better support
  installing on Windows and its default 260 character limit on file names.
  :pr:`20209` by `Thomas Fan`_.

- |Fix| :func:`datasets.fetch_kddcup99` returns dataframes when
  `return_X_y=True` and `as_frame=True`. :pr:`19011` by `Thomas Fan`_.

- |API| Deprecates `datasets.load_boston` in 1.0 and it will be removed
  in 1.2. Alternative code snippets to load similar datasets are provided.
  Please report to the docstring of the function for details.
  :pr:`20729` by `Guillaume Lemaitre`_.

:mod:`sklearn.decomposition`
............................

- |Enhancement| added a new approximate solver (randomized SVD, available with
  `eigen_solver='randomized'`) to :class:`decomposition.KernelPCA`. This
  significantly accelerates computation when the number of samples is much
  larger than the desired number of components.
  :pr:`12069` by :user:`Sylvain Marié <smarie>`.

- |Fix| Fixes incorrect multiple data-conversion warnings when clustering
  boolean data. :pr:`19046` by :user:`Surya Prakash <jdsurya>`.

- |Fix| Fixed :func:`decomposition.dict_learning`, used by
  :class:`decomposition.DictionaryLearning`, to ensure determinism of the
  output. Achieved by flipping signs of the SVD output which is used to
  initialize the code. :pr:`18433` by :user:`Bruno Charron <brcharron>`.

- |Fix| Fixed a bug in :class:`decomposition.MiniBatchDictionaryLearning`,
  :class:`decomposition.MiniBatchSparsePCA` and
  :func:`decomposition.dict_learning_online` where the update of the dictionary
  was incorrect. :pr:`19198` by :user:`Jérémie du Boisberranger <jeremiedbb>`.

- |Fix| Fixed a bug in :class:`decomposition.DictionaryLearning`,
  :class:`decomposition.SparsePCA`,
  :class:`decomposition.MiniBatchDictionaryLearning`,
  :class:`decomposition.MiniBatchSparsePCA`,
  :func:`decomposition.dict_learning` and
  :func:`decomposition.dict_learning_online` where the restart of unused atoms
  during the dictionary update was not working as expected. :pr:`19198` by
  :user:`Jérémie du Boisberranger <jeremiedbb>`.

- |API| In :class:`decomposition.DictionaryLearning`,
  :class:`decomposition.MiniBatchDictionaryLearning`,
  :func:`decomposition.dict_learning` and
  :func:`decomposition.dict_learning_online`, `transform_alpha` will be equal
  to `alpha` instead of 1.0 by default starting from version 1.2 :pr:`19159` by
  :user:`Benoît Malézieux <bmalezieux>`.

- |API| Rename variable names in :class:`decomposition.KernelPCA` to improve
  readability. `lambdas_` and `alphas_` are renamed to `eigenvalues_`
  and `eigenvectors_`, respectively. `lambdas_` and `alphas_` are
  deprecated and will be removed in 1.2.
  :pr:`19908` by :user:`Kei Ishikawa <kstoneriv3>`.

- |API| The `alpha` and `regularization` parameters of :class:`decomposition.NMF` and
  :func:`decomposition.non_negative_factorization` are deprecated and will be removed
  in 1.2. Use the new parameters `alpha_W` and `alpha_H` instead. :pr:`20512` by
  :user:`Jérémie du Boisberranger <jeremiedbb>`.

:mod:`sklearn.dummy`
....................

- |API| Attribute `n_features_in_` in :class:`dummy.DummyRegressor` and
  :class:`dummy.DummyRegressor` is deprecated and will be removed in 1.2.
  :pr:`20960` by `Thomas Fan`_.

:mod:`sklearn.ensemble`
.......................

- |Enhancement| :class:`~sklearn.ensemble.HistGradientBoostingClassifier` and
  :class:`~sklearn.ensemble.HistGradientBoostingRegressor` take cgroups quotas
  into account when deciding the number of threads used by OpenMP. This
  avoids performance problems caused by over-subscription when using those
  classes in a docker container for instance. :pr:`20477`
  by `Thomas Fan`_.

- |Enhancement| :class:`~sklearn.ensemble.HistGradientBoostingClassifier` and
  :class:`~sklearn.ensemble.HistGradientBoostingRegressor` are no longer
  experimental. They are now considered stable and are subject to the same
  deprecation cycles as all other estimators. :pr:`19799` by `Nicolas Hug`_.

- |Enhancement| Improve the HTML rendering of the
  :class:`ensemble.StackingClassifier` and :class:`ensemble.StackingRegressor`.
  :pr:`19564` by `Thomas Fan`_.

- |Enhancement| Added Poisson criterion to
  :class:`ensemble.RandomForestRegressor`. :pr:`19836` by :user:`Brian Sun
  <bsun94>`.

- |Fix| Do not allow to compute out-of-bag (OOB) score in
  :class:`ensemble.RandomForestClassifier` and
  :class:`ensemble.ExtraTreesClassifier` with multiclass-multioutput target
  since scikit-learn does not provide any metric supporting this type of
  target. Additional private refactoring was performed.
  :pr:`19162` by :user:`Guillaume Lemaitre <glemaitre>`.

- |Fix| Improve numerical precision for weights boosting in
  :class:`ensemble.AdaBoostClassifier` and :class:`ensemble.AdaBoostRegressor`
  to avoid underflows.
  :pr:`10096` by :user:`Fenil Suchak <fenilsuchak>`.

- |Fix| Fixed the range of the argument ``max_samples`` to be ``(0.0, 1.0]``
  in :class:`ensemble.RandomForestClassifier`,
  :class:`ensemble.RandomForestRegressor`, where `max_samples=1.0` is
  interpreted as using all `n_samples` for bootstrapping. :pr:`20159` by
  :user:`murata-yu`.

- |Fix| Fixed a bug in :class:`ensemble.AdaBoostClassifier` and
  :class:`ensemble.AdaBoostRegressor` where the `sample_weight` parameter
  got overwritten during `fit`.
  :pr:`20534` by :user:`Guillaume Lemaitre <glemaitre>`.

- |API| Removes `tol=None` option in
  :class:`ensemble.HistGradientBoostingClassifier` and
  :class:`ensemble.HistGradientBoostingRegressor`. Please use `tol=0` for
  the same behavior. :pr:`19296` by `Thomas Fan`_.

:mod:`sklearn.feature_extraction`
.................................

- |Fix| Fixed a bug in :class:`feature_extraction.text.HashingVectorizer`
  where some input strings would result in negative indices in the transformed
  data. :pr:`19035` by :user:`Liu Yu <ly648499246>`.

- |Fix| Fixed a bug in :class:`feature_extraction.DictVectorizer` by raising an
  error with unsupported value type.
  :pr:`19520` by :user:`Jeff Zhao <kamiyaa>`.

- |Fix| Fixed a bug in :func:`feature_extraction.image.img_to_graph`
  and :func:`feature_extraction.image.grid_to_graph` where singleton connected
  components were not handled properly, resulting in a wrong vertex indexing.
  :pr:`18964` by `Bertrand Thirion`_.

- |Fix| Raise a warning in :class:`feature_extraction.text.CountVectorizer`
  with `lowercase=True` when there are vocabulary entries with uppercase
  characters to avoid silent misses in the resulting feature vectors.
  :pr:`19401` by :user:`Zito Relova <zitorelova>`

:mod:`sklearn.feature_selection`
................................

- |Feature| :func:`feature_selection.r_regression` computes Pearson's R
  correlation coefficients between the features and the target.
  :pr:`17169` by :user:`Dmytro Lituiev <DSLituiev>`
  and :user:`Julien Jerphanion <jjerphan>`.

- |Enhancement| :func:`feature_selection.RFE.fit` accepts additional estimator
  parameters that are passed directly to the estimator's `fit` method.
  :pr:`20380` by :user:`Iván Pulido <ijpulidos>`, :user:`Felipe Bidu <fbidu>`,
  :user:`Gil Rutter <g-rutter>`, and :user:`Adrin Jalali <adrinjalali>`.

- |FIX| Fix a bug in :func:`isotonic.isotonic_regression` where the
  `sample_weight` passed by a user were overwritten during ``fit``.
  :pr:`20515` by :user:`Carsten Allefeld <allefeld>`.

- |Fix| Change :func:`feature_selection.SequentialFeatureSelector` to
  allow for unsupervised modelling so that the `fit` signature need not
  do any `y` validation and allow for `y=None`.
  :pr:`19568` by :user:`Shyam Desai <ShyamDesai>`.

- |API| Raises an error in :class:`feature_selection.VarianceThreshold`
  when the variance threshold is negative.
  :pr:`20207` by :user:`Tomohiro Endo <europeanplaice>`

- |API| Deprecates `grid_scores_` in favor of split scores in `cv_results_` in
  :class:`feature_selection.RFECV`. `grid_scores_` will be removed in
  version 1.2.
  :pr:`20161` by :user:`Shuhei Kayawari <wowry>` and :user:`arka204`.

:mod:`sklearn.inspection`
.........................

- |Enhancement| Add `max_samples` parameter in
  :func:`inspection.permutation_importance`. It enables to draw a subset of the
  samples to compute the permutation importance. This is useful to keep the
  method tractable when evaluating feature importance on large datasets.
  :pr:`20431` by :user:`Oliver Pfaffel <o1iv3r>`.

- |Enhancement| Add kwargs to format ICE and PD lines separately in partial
  dependence plots `inspection.plot_partial_dependence` and
  :meth:`inspection.PartialDependenceDisplay.plot`. :pr:`19428` by :user:`Mehdi
  Hamoumi <mhham>`.

- |Fix| Allow multiple scorers input to
  :func:`inspection.permutation_importance`. :pr:`19411` by :user:`Simona
  Maggio <simonamaggio>`.

- |API| :class:`inspection.PartialDependenceDisplay` exposes a class method:
  :func:`~inspection.PartialDependenceDisplay.from_estimator`.
  `inspection.plot_partial_dependence` is deprecated in favor of the
  class method and will be removed in 1.2. :pr:`20959` by `Thomas Fan`_.

:mod:`sklearn.kernel_approximation`
...................................

- |Fix| Fix a bug in :class:`kernel_approximation.Nystroem`
  where the attribute `component_indices_` did not correspond to the subset of
  sample indices used to generate the approximated kernel. :pr:`20554` by
  :user:`Xiangyin Kong <kxytim>`.

:mod:`sklearn.linear_model`
...........................

- |MajorFeature| Added :class:`linear_model.QuantileRegressor` which implements
  linear quantile regression with L1 penalty.
  :pr:`9978` by :user:`David Dale <avidale>` and
  :user:`Christian Lorentzen <lorentzenchr>`.

- |Feature| The new :class:`linear_model.SGDOneClassSVM` provides an SGD
  implementation of the linear One-Class SVM. Combined with kernel
  approximation techniques, this implementation approximates the solution of
  a kernelized One Class SVM while benefitting from a linear
  complexity in the number of samples.
  :pr:`10027` by :user:`Albert Thomas <albertcthomas>`.

- |Feature| Added `sample_weight` parameter to
  :class:`linear_model.LassoCV` and :class:`linear_model.ElasticNetCV`.
  :pr:`16449` by :user:`Christian Lorentzen <lorentzenchr>`.

- |Feature| Added new solver `lbfgs` (available with `solver="lbfgs"`)
  and `positive` argument to :class:`linear_model.Ridge`. When `positive` is
  set to `True`, forces the coefficients to be positive (only supported by
  `lbfgs`). :pr:`20231` by :user:`Toshihiro Nakae <tnakae>`.

- |Efficiency| The implementation of :class:`linear_model.LogisticRegression`
  has been optimised for dense matrices when using `solver='newton-cg'` and
  `multi_class!='multinomial'`.
  :pr:`19571` by :user:`Julien Jerphanion <jjerphan>`.

- |Enhancement| `fit` method preserves dtype for numpy.float32 in
  :class:`linear_model.Lars`, :class:`linear_model.LassoLars`,
  :class:`linear_model.LassoLars`, :class:`linear_model.LarsCV` and
  :class:`linear_model.LassoLarsCV`. :pr:`20155` by :user:`Takeshi Oura
  <takoika>`.

- |Enhancement| Validate user-supplied gram matrix passed to linear models
  via the `precompute` argument. :pr:`19004` by :user:`Adam Midvidy <amidvidy>`.

- |Fix| :meth:`linear_model.ElasticNet.fit` no longer modifies `sample_weight`
  in place. :pr:`19055` by `Thomas Fan`_.

- |Fix| :class:`linear_model.Lasso` and :class:`linear_model.ElasticNet` no
  longer have a `dual_gap_` not corresponding to their objective. :pr:`19172`
  by :user:`Mathurin Massias <mathurinm>`

- |Fix| `sample_weight` are now fully taken into account in linear models
  when `normalize=True` for both feature centering and feature
  scaling.
  :pr:`19426` by :user:`Alexandre Gramfort <agramfort>` and
  :user:`Maria Telenczuk <maikia>`.

- |Fix| Points with residuals equal to  ``residual_threshold`` are now considered
  as inliers for :class:`linear_model.RANSACRegressor`. This allows fitting
  a model perfectly on some datasets when `residual_threshold=0`.
  :pr:`19499` by :user:`Gregory Strubel <gregorystrubel>`.

- |Fix| Sample weight invariance for :class:`linear_model.Ridge` was fixed in
  :pr:`19616` by :user:`Oliver Grisel <ogrisel>` and :user:`Christian Lorentzen
  <lorentzenchr>`.

- |Fix| The dictionary `params` in :func:`linear_model.enet_path` and
  :func:`linear_model.lasso_path` should only contain parameter of the
  coordinate descent solver. Otherwise, an error will be raised.
  :pr:`19391` by :user:`Shao Yang Hong <hongshaoyang>`.

- |API| Raise a warning in :class:`linear_model.RANSACRegressor` that from
  version 1.2, `min_samples` need to be set explicitly for models other than
  :class:`linear_model.LinearRegression`. :pr:`19390` by :user:`Shao Yang Hong
  <hongshaoyang>`.

- |API|: The parameter ``normalize`` of :class:`linear_model.LinearRegression`
  is deprecated and will be removed in 1.2. Motivation for this deprecation:
  ``normalize`` parameter did not take any effect if ``fit_intercept`` was set
  to False and therefore was deemed confusing. The behavior of the deprecated
  ``LinearModel(normalize=True)`` can be reproduced with a
  :class:`~sklearn.pipeline.Pipeline` with ``LinearModel`` (where
  ``LinearModel`` is :class:`~linear_model.LinearRegression`,
  :class:`~linear_model.Ridge`, :class:`~linear_model.RidgeClassifier`,
  :class:`~linear_model.RidgeCV` or :class:`~linear_model.RidgeClassifierCV`)
  as follows: ``make_pipeline(StandardScaler(with_mean=False),
  LinearModel())``. The ``normalize`` parameter in
  :class:`~linear_model.LinearRegression` was deprecated in :pr:`17743` by
  :user:`Maria Telenczuk <maikia>` and :user:`Alexandre Gramfort <agramfort>`.
  Same for :class:`~linear_model.Ridge`,
  :class:`~linear_model.RidgeClassifier`, :class:`~linear_model.RidgeCV`, and
  :class:`~linear_model.RidgeClassifierCV`, in: :pr:`17772` by :user:`Maria
  Telenczuk <maikia>` and :user:`Alexandre Gramfort <agramfort>`. Same for
  :class:`~linear_model.BayesianRidge`, :class:`~linear_model.ARDRegression`
  in: :pr:`17746` by :user:`Maria Telenczuk <maikia>`. Same for
  :class:`~linear_model.Lasso`, :class:`~linear_model.LassoCV`,
  :class:`~linear_model.ElasticNet`, :class:`~linear_model.ElasticNetCV`,
  :class:`~linear_model.MultiTaskLasso`,
  :class:`~linear_model.MultiTaskLassoCV`,
  :class:`~linear_model.MultiTaskElasticNet`,
  :class:`~linear_model.MultiTaskElasticNetCV`, in: :pr:`17785` by :user:`Maria
  Telenczuk <maikia>` and :user:`Alexandre Gramfort <agramfort>`.

- |API| The ``normalize`` parameter of
  :class:`~linear_model.OrthogonalMatchingPursuit` and
  :class:`~linear_model.OrthogonalMatchingPursuitCV` will default to False in
  1.2 and will be removed in 1.4. :pr:`17750` by :user:`Maria Telenczuk
  <maikia>` and :user:`Alexandre Gramfort <agramfort>`. Same for
  :class:`~linear_model.Lars` :class:`~linear_model.LarsCV`
  :class:`~linear_model.LassoLars` :class:`~linear_model.LassoLarsCV`
  :class:`~linear_model.LassoLarsIC`, in :pr:`17769` by :user:`Maria Telenczuk
  <maikia>` and :user:`Alexandre Gramfort <agramfort>`.

- |API| Keyword validation has moved from `__init__` and `set_params` to `fit`
  for the following estimators conforming to scikit-learn's conventions:
  :class:`~linear_model.SGDClassifier`,
  :class:`~linear_model.SGDRegressor`,
  :class:`~linear_model.SGDOneClassSVM`,
  :class:`~linear_model.PassiveAggressiveClassifier`, and
  :class:`~linear_model.PassiveAggressiveRegressor`.
  :pr:`20683` by `Guillaume Lemaitre`_.

:mod:`sklearn.manifold`
.......................

- |Enhancement| Implement `'auto'` heuristic for the `learning_rate` in
  :class:`manifold.TSNE`. It will become default in 1.2. The default
  initialization will change to `pca` in 1.2. PCA initialization will
  be scaled to have standard deviation 1e-4 in 1.2.
  :pr:`19491` by :user:`Dmitry Kobak <dkobak>`.

- |Fix| Change numerical precision to prevent underflow issues
  during affinity matrix computation for :class:`manifold.TSNE`.
  :pr:`19472` by :user:`Dmitry Kobak <dkobak>`.

- |Fix| :class:`manifold.Isomap` now uses `scipy.sparse.csgraph.shortest_path`
  to compute the graph shortest path. It also connects disconnected components
  of the neighbors graph along some minimum distance pairs, instead of changing
  every infinite distances to zero. :pr:`20531` by `Roman Yurchak`_ and `Tom
  Dupre la Tour`_.

- |Fix| Decrease the numerical default tolerance in the lobpcg call
  in :func:`manifold.spectral_embedding` to prevent numerical instability.
  :pr:`21194` by :user:`Andrew Knyazev <lobpcg>`.

:mod:`sklearn.metrics`
......................

- |Feature| :func:`metrics.mean_pinball_loss` exposes the pinball loss for
  quantile regression. :pr:`19415` by :user:`Xavier Dupré <sdpython>`
  and :user:`Oliver Grisel <ogrisel>`.

- |Feature| :func:`metrics.d2_tweedie_score` calculates the D^2 regression
  score for Tweedie deviances with power parameter ``power``. This is a
  generalization of the `r2_score` and can be interpreted as percentage of
  Tweedie deviance explained.
  :pr:`17036` by :user:`Christian Lorentzen <lorentzenchr>`.

- |Feature|  :func:`metrics.mean_squared_log_error` now supports
  `squared=False`.
  :pr:`20326` by :user:`Uttam kumar <helper-uttam>`.

- |Efficiency| Improved speed of :func:`metrics.confusion_matrix` when labels
  are integral.
  :pr:`9843` by :user:`Jon Crall <Erotemic>`.

- |Enhancement| A fix to raise an error in :func:`metrics.hinge_loss` when
  ``pred_decision`` is 1d whereas it is a multiclass classification or when
  ``pred_decision`` parameter is not consistent with the ``labels`` parameter.
  :pr:`19643` by :user:`Pierre Attard <PierreAttard>`.

- |Fix| :meth:`metrics.ConfusionMatrixDisplay.plot` uses the correct max
  for colormap. :pr:`19784` by `Thomas Fan`_.

- |Fix| Samples with zero `sample_weight` values do not affect the results
  from :func:`metrics.det_curve`, :func:`metrics.precision_recall_curve`
  and :func:`metrics.roc_curve`.
  :pr:`18328` by :user:`Albert Villanova del Moral <albertvillanova>` and
  :user:`Alonso Silva Allende <alonsosilvaallende>`.

- |Fix| avoid overflow in :func:`metrics.adjusted_rand_score` with
  large amount of data. :pr:`20312` by :user:`Divyanshu Deoli
  <divyanshudeoli>`.

- |API| :class:`metrics.ConfusionMatrixDisplay` exposes two class methods
  :func:`~metrics.ConfusionMatrixDisplay.from_estimator` and
  :func:`~metrics.ConfusionMatrixDisplay.from_predictions` allowing to create
  a confusion matrix plot using an estimator or the predictions.
  `metrics.plot_confusion_matrix` is deprecated in favor of these two
  class methods and will be removed in 1.2.
  :pr:`18543` by `Guillaume Lemaitre`_.

- |API| :class:`metrics.PrecisionRecallDisplay` exposes two class methods
  :func:`~metrics.PrecisionRecallDisplay.from_estimator` and
  :func:`~metrics.PrecisionRecallDisplay.from_predictions` allowing to create
  a precision-recall curve using an estimator or the predictions.
  `metrics.plot_precision_recall_curve` is deprecated in favor of these
  two class methods and will be removed in 1.2.
  :pr:`20552` by `Guillaume Lemaitre`_.

- |API| :class:`metrics.DetCurveDisplay` exposes two class methods
  :func:`~metrics.DetCurveDisplay.from_estimator` and
  :func:`~metrics.DetCurveDisplay.from_predictions` allowing to create
  a confusion matrix plot using an estimator or the predictions.
  `metrics.plot_det_curve` is deprecated in favor of these two
  class methods and will be removed in 1.2.
  :pr:`19278` by `Guillaume Lemaitre`_.

:mod:`sklearn.mixture`
......................

- |Fix| Ensure that the best parameters are set appropriately
  in the case of divergency for :class:`mixture.GaussianMixture` and
  :class:`mixture.BayesianGaussianMixture`.
  :pr:`20030` by :user:`Tingshan Liu <tliu68>` and
  :user:`Benjamin Pedigo <bdpedigo>`.

:mod:`sklearn.model_selection`
..............................

- |Feature| added :class:`model_selection.StratifiedGroupKFold`, that combines
  :class:`model_selection.StratifiedKFold` and
  :class:`model_selection.GroupKFold`, providing an ability to split data
  preserving the distribution of classes in each split while keeping each
  group within a single split.
  :pr:`18649` by :user:`Leandro Hermida <hermidalc>` and
  :user:`Rodion Martynov <marrodion>`.

- |Enhancement| warn only once in the main process for per-split fit failures
  in cross-validation. :pr:`20619` by :user:`Loïc Estève <lesteve>`

- |Enhancement| The `model_selection.BaseShuffleSplit` base class is
  now public. :pr:`20056` by :user:`pabloduque0`.

- |Fix| Avoid premature overflow in :func:`model_selection.train_test_split`.
  :pr:`20904` by :user:`Tomasz Jakubek <t-jakubek>`.

:mod:`sklearn.naive_bayes`
..........................

- |Fix| The `fit` and `partial_fit` methods of the discrete naive Bayes
  classifiers (:class:`naive_bayes.BernoulliNB`,
  :class:`naive_bayes.CategoricalNB`, :class:`naive_bayes.ComplementNB`,
  and :class:`naive_bayes.MultinomialNB`) now correctly handle the degenerate
  case of a single class in the training set.
  :pr:`18925` by :user:`David Poznik <dpoznik>`.

- |API| The attribute ``sigma_`` is now deprecated in
  :class:`naive_bayes.GaussianNB` and will be removed in 1.2.
  Use ``var_`` instead.
  :pr:`18842` by :user:`Hong Shao Yang <hongshaoyang>`.

:mod:`sklearn.neighbors`
........................

- |Enhancement| The creation of :class:`neighbors.KDTree` and
  :class:`neighbors.BallTree` has been improved for their worst-cases time
  complexity from :math:`\mathcal{O}(n^2)` to :math:`\mathcal{O}(n)`.
  :pr:`19473` by :user:`jiefangxuanyan <jiefangxuanyan>` and
  :user:`Julien Jerphanion <jjerphan>`.

- |FIX| `neighbors.DistanceMetric` subclasses now support readonly
  memory-mapped datasets. :pr:`19883` by :user:`Julien Jerphanion <jjerphan>`.

- |FIX| :class:`neighbors.NearestNeighbors`, :class:`neighbors.KNeighborsClassifier`,
  :class:`neighbors.RadiusNeighborsClassifier`, :class:`neighbors.KNeighborsRegressor`
  and :class:`neighbors.RadiusNeighborsRegressor` do not validate `weights` in
  `__init__` and validates `weights` in `fit` instead. :pr:`20072` by
  :user:`Juan Carlos Alfaro Jiménez <alfaro96>`.

- |API| The parameter `kwargs` of :class:`neighbors.RadiusNeighborsClassifier` is
  deprecated and will be removed in 1.2.
  :pr:`20842` by :user:`Juan Martín Loyola <jmloyola>`.

:mod:`sklearn.neural_network`
.............................

- |Fix| :class:`neural_network.MLPClassifier` and
  :class:`neural_network.MLPRegressor` now correctly support continued training
  when loading from a pickled file. :pr:`19631` by `Thomas Fan`_.

:mod:`sklearn.pipeline`
.......................

- |API| The `predict_proba` and `predict_log_proba` methods of the
  :class:`pipeline.Pipeline` now support passing prediction kwargs to the final
  estimator. :pr:`19790` by :user:`Christopher Flynn <crflynn>`.

:mod:`sklearn.preprocessing`
............................

- |Feature| The new :class:`preprocessing.SplineTransformer` is a feature
  preprocessing tool for the generation of B-splines, parametrized by the
  polynomial ``degree`` of the splines, number of knots ``n_knots`` and knot
  positioning strategy ``knots``.
  :pr:`18368` by :user:`Christian Lorentzen <lorentzenchr>`.
  :class:`preprocessing.SplineTransformer` also supports periodic
  splines via the ``extrapolation`` argument.
  :pr:`19483` by :user:`Malte Londschien <mlondschien>`.
  :class:`preprocessing.SplineTransformer` supports sample weights for
  knot position strategy ``"quantile"``.
  :pr:`20526` by :user:`Malte Londschien <mlondschien>`.

- |Feature| :class:`preprocessing.OrdinalEncoder` supports passing through
  missing values by default. :pr:`19069` by `Thomas Fan`_.

- |Feature| :class:`preprocessing.OneHotEncoder` now supports
  `handle_unknown='ignore'` and dropping categories. :pr:`19041` by
  `Thomas Fan`_.

- |Feature| :class:`preprocessing.PolynomialFeatures` now supports passing
  a tuple to `degree`, i.e. `degree=(min_degree, max_degree)`.
  :pr:`20250` by :user:`Christian Lorentzen <lorentzenchr>`.

- |Efficiency| :class:`preprocessing.StandardScaler` is faster and more memory
  efficient. :pr:`20652` by `Thomas Fan`_.

- |Efficiency| Changed ``algorithm`` argument for :class:`cluster.KMeans` in
  :class:`preprocessing.KBinsDiscretizer` from ``auto`` to ``full``.
  :pr:`19934` by :user:`Gleb Levitskiy <GLevV>`.

- |Efficiency| The implementation of `fit` for
  :class:`preprocessing.PolynomialFeatures` transformer is now faster. This is
  especially noticeable on large sparse input. :pr:`19734` by :user:`Fred
  Robinson <frrad>`.

- |Fix| The :func:`preprocessing.StandardScaler.inverse_transform` method
  now raises error when the input data is 1D. :pr:`19752` by :user:`Zhehao Liu
  <Max1993Liu>`.

- |Fix| :func:`preprocessing.scale`, :class:`preprocessing.StandardScaler`
  and similar scalers detect near-constant features to avoid scaling them to
  very large values. This problem happens in particular when using a scaler on
  sparse data with a constant column with sample weights, in which case
  centering is typically disabled. :pr:`19527` by :user:`Oliver Grisel
  <ogrisel>` and :user:`Maria Telenczuk <maikia>` and :pr:`19788` by
  :user:`Jérémie du Boisberranger <jeremiedbb>`.

- |Fix| :meth:`preprocessing.StandardScaler.inverse_transform` now
  correctly handles integer dtypes. :pr:`19356` by :user:`makoeppel`.

- |Fix| :meth:`preprocessing.OrdinalEncoder.inverse_transform` is not
  supporting sparse matrix and raises the appropriate error message.
  :pr:`19879` by :user:`Guillaume Lemaitre <glemaitre>`.

- |Fix| The `fit` method of :class:`preprocessing.OrdinalEncoder` will not
  raise error when `handle_unknown='ignore'` and unknown categories are given
  to `fit`.
  :pr:`19906` by :user:`Zhehao Liu <MaxwellLZH>`.

- |Fix| Fix a regression in :class:`preprocessing.OrdinalEncoder` where large
  Python numeric would raise an error due to overflow when casted to C type
  (`np.float64` or `np.int64`).
  :pr:`20727` by `Guillaume Lemaitre`_.

- |Fix| :class:`preprocessing.FunctionTransformer` does not set `n_features_in_`
  based on the input to `inverse_transform`. :pr:`20961` by `Thomas Fan`_.

- |API| The `n_input_features_` attribute of
  :class:`preprocessing.PolynomialFeatures` is deprecated in favor of
  `n_features_in_` and will be removed in 1.2. :pr:`20240` by
  :user:`Jérémie du Boisberranger <jeremiedbb>`.

:mod:`sklearn.svm`
...................

- |API| The parameter `**params` of :func:`svm.OneClassSVM.fit` is
  deprecated and will be removed in 1.2.
  :pr:`20843` by :user:`Juan Martín Loyola <jmloyola>`.

:mod:`sklearn.tree`
...................

- |Enhancement| Add `fontname` argument in :func:`tree.export_graphviz`
  for non-English characters. :pr:`18959` by :user:`Zero <Zeroto521>`
  and :user:`wstates <wstates>`.

- |Fix| Improves compatibility of :func:`tree.plot_tree` with high DPI screens.
  :pr:`20023` by `Thomas Fan`_.

- |Fix| Fixed a bug in :class:`tree.DecisionTreeClassifier`,
  :class:`tree.DecisionTreeRegressor` where a node could be split whereas it
  should not have been due to incorrect handling of rounding errors.
  :pr:`19336` by :user:`Jérémie du Boisberranger <jeremiedbb>`.

- |API| The `n_features_` attribute of :class:`tree.DecisionTreeClassifier`,
  :class:`tree.DecisionTreeRegressor`, :class:`tree.ExtraTreeClassifier` and
  :class:`tree.ExtraTreeRegressor` is deprecated in favor of `n_features_in_`
  and will be removed in 1.2. :pr:`20272` by
  :user:`Jérémie du Boisberranger <jeremiedbb>`.

:mod:`sklearn.utils`
....................

- |Enhancement| Deprecated the default value of the `random_state=0` in
  :func:`~sklearn.utils.extmath.randomized_svd`. Starting in 1.2,
  the default value of `random_state` will be set to `None`.
  :pr:`19459` by :user:`Cindy Bezuidenhout <cinbez>` and
  :user:`Clifford Akai-Nettey<cliffordEmmanuel>`.

- |Enhancement| Added helper decorator :func:`utils.metaestimators.available_if`
  to provide flexibility in metaestimators making methods available or
  unavailable on the basis of state, in a more readable way.
  :pr:`19948` by `Joel Nothman`_.

- |Enhancement| :func:`utils.validation.check_is_fitted` now uses
  ``__sklearn_is_fitted__`` if available, instead of checking for attributes
  ending with an underscore. This also makes :class:`pipeline.Pipeline` and
  :class:`preprocessing.FunctionTransformer` pass
  ``check_is_fitted(estimator)``. :pr:`20657` by `Adrin Jalali`_.

- |Fix| Fixed a bug in :func:`utils.sparsefuncs.mean_variance_axis` where the
  precision of the computed variance was very poor when the real variance is
  exactly zero. :pr:`19766` by :user:`Jérémie du Boisberranger <jeremiedbb>`.

- |Fix| The docstrings of properties that are decorated with
  :func:`utils.deprecated` are now properly wrapped. :pr:`20385` by `Thomas
  Fan`_.

- |Fix| `utils.stats._weighted_percentile` now correctly ignores
  zero-weighted observations smaller than the smallest observation with
  positive weight for ``percentile=0``. Affected classes are
  :class:`dummy.DummyRegressor` for ``quantile=0`` and
  `ensemble.HuberLossFunction` and `ensemble.HuberLossFunction`
  for ``alpha=0``. :pr:`20528` by :user:`Malte Londschien <mlondschien>`.

- |Fix| :func:`utils._safe_indexing` explicitly takes a dataframe copy when
  integer indices are provided avoiding to raise a warning from Pandas. This
  warning was previously raised in resampling utilities and functions using
  those utilities (e.g. :func:`model_selection.train_test_split`,
  :func:`model_selection.cross_validate`,
  :func:`model_selection.cross_val_score`,
  :func:`model_selection.cross_val_predict`).
  :pr:`20673` by :user:`Joris Van den Bossche  <jorisvandenbossche>`.

- |Fix| Fix a regression in `utils.is_scalar_nan` where large Python
  numbers would raise an error due to overflow in C types (`np.float64` or
  `np.int64`).
  :pr:`20727` by `Guillaume Lemaitre`_.

- |Fix| Support for `np.matrix` is deprecated in
  :func:`~sklearn.utils.check_array` in 1.0 and will raise a `TypeError` in
  1.2. :pr:`20165` by `Thomas Fan`_.

- |API| `utils._testing.assert_warns` and `utils._testing.assert_warns_message`
  are deprecated in 1.0 and will be removed in 1.2. Used `pytest.warns` context
  manager instead. Note that these functions were not documented and part from
  the public API. :pr:`20521` by :user:`Olivier Grisel <ogrisel>`.

- |API| Fixed several bugs in `utils.graph.graph_shortest_path`, which is
  now deprecated. Use `scipy.sparse.csgraph.shortest_path` instead. :pr:`20531`
  by `Tom Dupre la Tour`_.

.. rubric:: Code and documentation contributors

Thanks to everyone who has contributed to the maintenance and improvement of
the project since version 0.24, including:

Abdulelah S. Al Mesfer, Abhinav Gupta, Adam J. Stewart, Adam Li, Adam Midvidy,
Adrian Garcia Badaracco, Adrian Sadłocha, Adrin Jalali, Agamemnon Krasoulis,
Alberto Rubiales, Albert Thomas, Albert Villanova del Moral, Alek Lefebvre,
Alessia Marcolini, Alexandr Fonari, Alihan Zihna, Aline Ribeiro de Almeida,
Amanda, Amanda Dsouza, Amol Deshmukh, Ana Pessoa, Anavelyz, Andreas Mueller,
Andrew Delong, Ashish, Ashvith Shetty, Atsushi Nukariya, Aurélien Geron, Avi
Gupta, Ayush Singh, baam, BaptBillard, Benjamin Pedigo, Bertrand Thirion,
Bharat Raghunathan, bmalezieux, Brian Rice, Brian Sun, Bruno Charron, Bryan
Chen, bumblebee, caherrera-meli, Carsten Allefeld, CeeThinwa, Chiara Marmo,
chrissobel, Christian Lorentzen, Christopher Yeh, Chuliang Xiao, Clément
Fauchereau, cliffordEmmanuel, Conner Shen, Connor Tann, David Dale, David Katz,
David Poznik, Dimitri Papadopoulos Orfanos, Divyanshu Deoli, dmallia17,
Dmitry Kobak, DS_anas, Eduardo Jardim, EdwinWenink, EL-ATEIF Sara, Eleni
Markou, EricEllwanger, Eric Fiegel, Erich Schubert, Ezri-Mudde, Fatos Morina,
Felipe Rodrigues, Felix Hafner, Fenil Suchak, flyingdutchman23, Flynn, Fortune
Uwha, Francois Berenger, Frankie Robertson, Frans Larsson, Frederick Robinson,
frellwan, Gabriel S Vicente, Gael Varoquaux, genvalen, Geoffrey Thomas,
geroldcsendes, Gleb Levitskiy, Glen, Glòria Macià Muñoz, gregorystrubel,
groceryheist, Guillaume Lemaitre, guiweber, Haidar Almubarak, Hans Moritz
Günther, Haoyin Xu, Harris Mirza, Harry Wei, Harutaka Kawamura, Hassan
Alsawadi, Helder Geovane Gomes de Lima, Hugo DEFOIS, Igor Ilic, Ikko Ashimine,
Isaack Mungui, Ishaan Bhat, Ishan Mishra, Iván Pulido, iwhalvic, J Alexander,
Jack Liu, James Alan Preiss, James Budarz, James Lamb, Jannik, Jeff Zhao,
Jennifer Maldonado, Jérémie du Boisberranger, Jesse Lima, Jianzhu Guo, jnboehm,
Joel Nothman, JohanWork, John Paton, Jonathan Schneider, Jon Crall, Jon Haitz
Legarreta Gorroño, Joris Van den Bossche, José Manuel Nápoles Duarte, Juan
Carlos Alfaro Jiménez, Juan Martin Loyola, Julien Jerphanion, Julio Batista
Silva, julyrashchenko, JVM, Kadatatlu Kishore, Karen Palacio, Kei Ishikawa,
kmatt10, kobaski, Kot271828, Kunj, KurumeYuta, kxytim, lacrosse91, LalliAcqua,
Laveen Bagai, Leonardo Rocco, Leonardo Uieda, Leopoldo Corona, Loic Esteve,
LSturtew, Luca Bittarello, Luccas Quadros, Lucy Jiménez, Lucy Liu, ly648499246,
Mabu Manaileng, Manimaran, makoeppel, Marco Gorelli, Maren Westermann,
Mariangela, Maria Telenczuk, marielaraj, Martin Hirzel, Mateo Noreña, Mathieu
Blondel, Mathis Batoul, mathurinm, Matthew Calcote, Maxime Prieur, Maxwell,
Mehdi Hamoumi, Mehmet Ali Özer, Miao Cai, Michal Karbownik, michalkrawczyk,
Mitzi, mlondschien, Mohamed Haseeb, Mohamed Khoualed, Muhammad Jarir Kanji,
murata-yu, Nadim Kawwa, Nanshan Li, naozin555, Nate Parsons, Neal Fultz, Nic
Annau, Nicolas Hug, Nicolas Miller, Nico Stefani, Nigel Bosch, Nikita Titov,
Nodar Okroshiashvili, Norbert Preining, novaya, Ogbonna Chibuike Stephen,
OGordon100, Oliver Pfaffel, Olivier Grisel, Oras Phongpanangam, Pablo Duque,
Pablo Ibieta-Jimenez, Patric Lacouth, Paulo S. Costa, Paweł Olszewski, Peter
Dye, PierreAttard, Pierre-Yves Le Borgne, PranayAnchuri, Prince Canuma,
putschblos, qdeffense, RamyaNP, ranjanikrishnan, Ray Bell, Rene Jean Corneille,
Reshama Shaikh, ricardojnf, RichardScottOZ, Rodion Martynov, Rohan Paul, Roman
Lutz, Roman Yurchak, Samuel Brice, Sandy Khosasi, Sean Benhur J, Sebastian
Flores, Sebastian Pölsterl, Shao Yang Hong, shinehide, shinnar, shivamgargsya,
Shooter23, Shuhei Kayawari, Shyam Desai, simonamaggio, Sina Tootoonian,
solosilence, Steven Kolawole, Steve Stagg, Surya Prakash, swpease, Sylvain
Marié, Takeshi Oura, Terence Honles, TFiFiE, Thomas A Caswell, Thomas J. Fan,
Tim Gates, TimotheeMathieu, Timothy Wolodzko, Tim Vink, t-jakubek, t-kusanagi,
tliu68, Tobias Uhmann, tom1092, Tomás Moreyra, Tomás Ronald Hughes, Tom
Dupré la Tour, Tommaso Di Noto, Tomohiro Endo, TONY GEORGE, Toshihiro NAKAE,
tsuga, Uttam kumar, vadim-ushtanit, Vangelis Gkiastas, Venkatachalam N, Vilém
Zouhar, Vinicius Rios Fuck, Vlasovets, waijean, Whidou, xavier dupré,
xiaoyuchai, Yasmeen Alsaedy, yoch, Yosuke KOBAYASHI, Yu Feng, YusukeNagasaka,
yzhenman, Zero, ZeyuSun, ZhaoweiWang, Zito, Zito Relova

include    contributors rst     currentmodule   sklearn      release notes 1 0               Version 1 0              For a short description of the main highlights of the release  please refer to  ref  sphx glr auto examples release highlights plot release highlights 1 0 0 py       include   changelog legend inc      changes 1 0 2   Version 1 0 2                  December 2021       Fix   class  cluster Birch      class  feature selection RFECV    class  ensemble RandomForestRegressor      class  ensemble RandomForestClassifier      class  ensemble GradientBoostingRegressor   and    class  ensemble GradientBoostingClassifier  do not raise warning when fitted   on a pandas DataFrame anymore   pr  21578  by  Thomas Fan     Changelog             mod  sklearn cluster                             Fix  Fixed an infinite loop in  func  cluster SpectralClustering  by   moving an iteration counter from try to except     pr  21271  by  user  Tyler Martin  martintb      mod  sklearn datasets                              Fix   func  datasets fetch openml  is now thread safe  Data is first   downloaded to a temporary subfolder and then renamed     pr  21833  by  user  Siavash Rezazadeh  siavrez      mod  sklearn decomposition                                   Fix  Fixed the constraint on the objective function of    class  decomposition DictionaryLearning      class  decomposition MiniBatchDictionaryLearning    class  decomposition SparsePCA    and  class  decomposition MiniBatchSparsePCA  to be convex and match the referenced   article   pr  19210  by  user  J r mie du Boisberranger  jeremiedbb      mod  sklearn ensemble                              Fix   class  ensemble RandomForestClassifier      class  ensemble RandomForestRegressor      class  ensemble ExtraTreesClassifier    class  ensemble ExtraTreesRegressor     and  class  ensemble RandomTreesEmbedding  now raise a   ValueError   when     bootstrap False   and   max samples   is not   None       pr  21295   user  Haoyin Xu  PSSF23        Fix  Solve a bug in  class  ensemble GradientBoostingClassifier  where the   exponential loss was computing the positive gradient instead of the   negative one     pr  22050  by  user  Guillaume Lemaitre  glemaitre      mod  sklearn feature selection                                       Fix  Fixed  class  feature selection SelectFromModel  by improving support   for base estimators that do not set  feature names in     pr  21991  by    Thomas Fan      mod  sklearn impute                            Fix  Fix a bug in  class  linear model RidgeClassifierCV  where the method    predict  was performing an  argmax  on the scores obtained from    decision function  instead of returning the multilabel indicator matrix     pr  19869  by  user  Guillaume Lemaitre  glemaitre      mod  sklearn linear model                                  Fix   class  linear model LassoLarsIC  now correctly computes AIC   and BIC  An error is now raised when  n features   n samples  and   when the noise variance is not provided     pr  21481  by  user  Guillaume Lemaitre  glemaitre   and    user  Andr s Babino  ababino      mod  sklearn manifold                              Fix  Fixed an unnecessary error when fitting  class  manifold Isomap  with a   precomputed dense distance matrix where the neighbors graph has multiple   disconnected components   pr  21915  by  Tom Dupre la Tour      mod  sklearn metrics                             Fix  All  class  sklearn metrics DistanceMetric  subclasses now correctly support   read only buffer attributes    This fixes a regression introduced in 1 0 0 with respect to 0 24 2     pr  21694  by  user  Julien Jerphanion  jjerphan        Fix  All  sklearn metrics MinkowskiDistance  now accepts a weight   parameter that makes it possible to write code that behaves consistently both   with scipy 1 8 and earlier versions  In turns this means that all   neighbors based estimators  except those that use  algorithm  kd tree    now   accept a weight parameter with  metric  minknowski   to yield results that   are always consistent with  scipy spatial distance cdist      pr  21741  by  user  Olivier Grisel  ogrisel      mod  sklearn multiclass                                Fix   meth  multiclass OneVsRestClassifier predict proba  does not error when   fitted on constant integer targets   pr  21871  by  Thomas Fan      mod  sklearn neighbors                               Fix   class  neighbors KDTree  and  class  neighbors BallTree  correctly supports   read only buffer attributes   pr  21845  by  Thomas Fan      mod  sklearn preprocessing                                   Fix  Fixes compatibility bug with NumPy 1 22 in  class  preprocessing OneHotEncoder      pr  21517  by  Thomas Fan      mod  sklearn tree                          Fix  Prevents  func  tree plot tree  from drawing out of the boundary of   the figure   pr  21917  by  Thomas Fan        Fix  Support loading pickles of decision tree models when the pickle has   been generated on a platform with a different bitness  A typical example is   to train and pickle the model on 64 bit machine and load the model on a 32   bit machine for prediction   pr  21552  by  user  Lo c Est ve  lesteve      mod  sklearn utils                           Fix   func  utils estimator html repr  now escapes all the estimator   descriptions in the generated HTML   pr  21493  by    user  Aur lien Geron  ageron         changes 1 0 1   Version 1 0 1                  October 2021    Fixed models                  Fix  Non fit methods in the following classes do not raise a UserWarning   when fitted on DataFrames with valid feature names     class  covariance EllipticEnvelope    class  ensemble IsolationForest      class  ensemble AdaBoostClassifier    class  neighbors KNeighborsClassifier      class  neighbors KNeighborsRegressor      class  neighbors RadiusNeighborsClassifier      class  neighbors RadiusNeighborsRegressor    pr  21199  by  Thomas Fan      mod  sklearn calibration                                 Fix  Fixed  class  calibration CalibratedClassifierCV  to take into account    sample weight  when computing the base estimator prediction when    ensemble False      pr  20638  by  user  Julien Bohn   JulienB 78        Fix  Fixed a bug in  class  calibration CalibratedClassifierCV  with    method  sigmoid   that was ignoring the  sample weight  when computing the   the Bayesian priors     pr  21179  by  user  Guillaume Lemaitre  glemaitre      mod  sklearn cluster                             Fix  Fixed a bug in  class  cluster KMeans   ensuring reproducibility and equivalence   between sparse and dense input   pr  21195    by  user  J r mie du Boisberranger  jeremiedbb      mod  sklearn ensemble                              Fix  Fixed a bug that could produce a segfault in rare cases for    class  ensemble HistGradientBoostingClassifier  and    class  ensemble HistGradientBoostingRegressor      pr  21130   user  Christian Lorentzen  lorentzenchr      mod  sklearn gaussian process                                      Fix  Compute  y std  properly with multi target in    class  sklearn gaussian process GaussianProcessRegressor  allowing   proper normalization in multi target scene     pr  20761  by  user  Patrick de C  T  R  Ferreira  patrickctrf      mod  sklearn feature extraction                                        Efficiency  Fixed an efficiency regression introduced in version 1 0 0 in the    transform  method of  class  feature extraction text CountVectorizer  which no   longer checks for uppercase characters in the provided vocabulary   pr  21251    by  user  J r mie du Boisberranger  jeremiedbb        Fix  Fixed a bug in  class  feature extraction text CountVectorizer  and    class  feature extraction text TfidfVectorizer  by raising an   error when  min idf  or  max idf  are floating point numbers greater than 1     pr  20752  by  user  Alek Lefebvre  AlekLefebvre      mod  sklearn linear model                                  Fix  Improves stability of  class  linear model LassoLars  for different   versions of openblas   pr  21340  by  Thomas Fan        Fix   class  linear model LogisticRegression  now raises a better error   message when the solver does not support sparse matrices with int64 indices     pr  21093  by  Tom Dupre la Tour      mod  sklearn neighbors                               Fix   class  neighbors KNeighborsClassifier      class  neighbors KNeighborsRegressor      class  neighbors RadiusNeighborsClassifier      class  neighbors RadiusNeighborsRegressor  with  metric  precomputed   raises   an error for  bsr  and  dok  sparse matrices in methods   fit    kneighbors    and  radius neighbors   due to handling of explicit zeros in  bsr  and  dok     term  sparse graph  formats   pr  21199  by  Thomas Fan      mod  sklearn pipeline                              Fix   meth  pipeline Pipeline get feature names out  correctly passes feature   names out from one step of a pipeline to the next   pr  21351  by    Thomas Fan      mod  sklearn svm                         Fix   class  svm SVC  and  class  svm SVR  check for an inconsistency   in its internal representation and raise an error instead of segfaulting    This fix also resolves    CVE 2020 28975  https   nvd nist gov vuln detail CVE 2020 28975         pr  21336  by  Thomas Fan      mod  sklearn utils                           Enhancement   utils validation  check sample weight  can perform a   non negativity check on the sample weights  It can be turned on   using the only non negative bool parameter    Estimators that check for non negative weights are updated     func  linear model LinearRegression   here the previous   error message was misleading      func  ensemble AdaBoostClassifier      func  ensemble AdaBoostRegressor      func  neighbors KernelDensity      pr  20880  by  user  Guillaume Lemaitre  glemaitre     and  user  Andr s Simon  simonandras        Fix  Solve a bug in   sklearn utils metaestimators if delegate has method     where the underlying check for an attribute did not work with NumPy arrays     pr  21145  by  user  Zahlii  Zahlii     Miscellaneous                   Fix  Fitting an estimator on a dataset that has no feature names  that was previously   fitted on a dataset with feature names no longer keeps the old feature names stored in   the  feature names in   attribute   pr  21389  by    user  J r mie du Boisberranger  jeremiedbb         changes 1 0   Version 1 0 0                  September 2021    Minimal dependencies                       Version 1 0 0 of scikit learn requires python 3 7   numpy 1 14 6  and scipy 1 1 0   Optional minimal dependency is matplotlib 2 2 2    Enforcing keyword only arguments                                   In an effort to promote clear and non ambiguous use of the library  most constructor and function parameters must now be passed as keyword arguments  i e  using the  param value  syntax  instead of positional  If a keyword only parameter is used as positional  a  TypeError  is now raised   issue  15005   pr  20002  by  Joel Nothman     Adrin Jalali     Thomas Fan     Nicolas Hug    and  Tom Dupre la Tour    See  SLEP009  https   scikit learn enhancement proposals readthedocs io en latest slep009 proposal html    for more details   Changed models                 The following estimators and functions  when fit with the same data and parameters  may produce different models from the previous version  This often occurs due to changes in the modelling logic  bug fixes or enhancements   or in random sampling procedures      Fix   class  manifold TSNE  now avoids numerical underflow issues during   affinity matrix computation      Fix   class  manifold Isomap  now connects disconnected components of the   neighbors graph along some minimum distance pairs  instead of changing   every infinite distances to zero      Fix  The splitting criterion of  class  tree DecisionTreeClassifier  and    class  tree DecisionTreeRegressor  can be impacted by a fix in the handling   of rounding errors  Previously some extra spurious splits could occur      Fix   func  model selection train test split  with a  stratify  parameter   and  class  model selection StratifiedShuffleSplit  may lead to slightly   different results   Details are listed in the changelog below    While we are trying to better inform users by providing this information  we cannot assure that this list is complete     Changelog                   Entries should be grouped by module  in alphabetic order  and prefixed with     one of the labels   MajorFeature    Feature    Efficiency    Enhancement        Fix  or  API   see whats new rst for descriptions       Entries should be ordered by those labels  e g   Fix  after  Efficiency        Changes not specific to a module should be listed under  Multiple Modules      or  Miscellaneous       Entries should end with       pr  123456  by  user  Joe Bloggs  joeongithub        where 123456 is the  pull request  number  not the issue number      API  The option for using the squared error via   loss   and     criterion   parameters was made more consistent  The preferred way is by   setting the value to   squared error    Old option names are still valid    produce the same models  but are deprecated and will be removed in version   1 2     pr  19310  by  user  Christian Lorentzen  lorentzenchr         For  class  ensemble ExtraTreesRegressor    criterion  mse   is deprecated      use   squared error   instead which is now the default       For  class  ensemble GradientBoostingRegressor    loss  ls   is deprecated      use   squared error   instead which is now the default       For  class  ensemble RandomForestRegressor    criterion  mse   is deprecated      use   squared error   instead which is now the default       For  class  ensemble HistGradientBoostingRegressor    loss  least squares       is deprecated  use   squared error   instead which is now the default       For  class  linear model RANSACRegressor    loss  squared loss   is     deprecated  use   squared error   instead       For  class  linear model SGDRegressor    loss  squared loss   is     deprecated  use   squared error   instead which is now the default       For  class  tree DecisionTreeRegressor    criterion  mse   is deprecated      use   squared error   instead which is now the default       For  class  tree ExtraTreeRegressor    criterion  mse   is deprecated      use   squared error   instead which is now the default      API  The option for using the absolute error via   loss   and     criterion   parameters was made more consistent  The preferred way is by   setting the value to   absolute error    Old option names are still valid    produce the same models  but are deprecated and will be removed in version   1 2     pr  19733  by  user  Christian Lorentzen  lorentzenchr         For  class  ensemble ExtraTreesRegressor    criterion  mae   is deprecated      use   absolute error   instead       For  class  ensemble GradientBoostingRegressor    loss  lad   is deprecated      use   absolute error   instead       For  class  ensemble RandomForestRegressor    criterion  mae   is deprecated      use   absolute error   instead       For  class  ensemble HistGradientBoostingRegressor        loss  least absolute deviation   is deprecated  use   absolute error       instead       For  class  linear model RANSACRegressor    loss  absolute loss   is     deprecated  use   absolute error   instead which is now the default       For  class  tree DecisionTreeRegressor    criterion  mae   is deprecated      use   absolute error   instead       For  class  tree ExtraTreeRegressor    criterion  mae   is deprecated      use   absolute error   instead      API   np matrix  usage is deprecated in 1 0 and will raise a  TypeError  in   1 2   pr  20165  by  Thomas Fan        API   term  get feature names out  has been added to the transformer API   to get the names of the output features   get feature names  has in   turn been deprecated   pr  18444  by  Thomas Fan        API  All estimators store  feature names in   when fitted on pandas Dataframes    These feature names are compared to names seen in non  fit  methods  e g     transform  and will raise a  FutureWarning  if they are not consistent    These   FutureWarning   s will become   ValueError   s in 1 2   pr  18010  by    Thomas Fan      mod  sklearn base                          Fix   func  config context  is now threadsafe   pr  18736  by  Thomas Fan      mod  sklearn calibration                                 Feature   func  calibration CalibrationDisplay  added to plot   calibration curves   pr  17443  by  user  Lucy Liu  lucyleeow        Fix  The   predict   and   predict proba   methods of    class  calibration CalibratedClassifierCV  can now properly be used on   prefitted pipelines   pr  19641  by  user  Alek Lefebvre  AlekLefebvre        Fix  Fixed an error when using a  class  ensemble VotingClassifier    as  base estimator  in  class  calibration CalibratedClassifierCV      pr  20087  by  user  Cl ment Fauchereau  clement f       mod  sklearn cluster                             Efficiency  The    k means      initialization of  class  cluster KMeans    and  class  cluster MiniBatchKMeans  is now faster  especially in multicore   settings   pr  19002  by  user  Jon Crall  Erotemic   and  user  J r mie du   Boisberranger  jeremiedbb        Efficiency   class  cluster KMeans  with  algorithm  elkan   is now faster   in multicore settings   pr  19052  by    user  Yusuke Nagasaka  YusukeNagasaka        Efficiency   class  cluster MiniBatchKMeans  is now faster in multicore   settings   pr  17622  by  user  J r mie du Boisberranger  jeremiedbb        Efficiency   class  cluster OPTICS  can now cache the output of the   computation of the tree  using the  memory  parameter    pr  19024  by    user  Frankie Robertson  frankier        Enhancement  The  predict  and  fit predict  methods of    class  cluster AffinityPropagation  now accept sparse data type for input   data     pr  20117  by  user  Venkatachalam Natchiappan  venkyyuvy       Fix  Fixed a bug in  class  cluster MiniBatchKMeans  where the sample   weights were partially ignored when the input is sparse   pr  17622  by    user  J r mie du Boisberranger  jeremiedbb        Fix  Improved convergence detection based on center change in    class  cluster MiniBatchKMeans  which was almost never achievable     pr  17622  by  user  J r mie du Boisberranger  jeremiedbb        FIX   class  cluster AgglomerativeClustering  now supports readonly   memory mapped datasets     pr  19883  by  user  Julien Jerphanion  jjerphan        Fix   class  cluster AgglomerativeClustering  correctly connects components   when connectivity and affinity are both precomputed and the number   of connected components is greater than 1   pr  20597  by    Thomas Fan        Fix   class  cluster FeatureAgglomeration  does not accept a     params   kwarg in   the   fit   function anymore  resulting in a more concise error message   pr  20899    by  user  Adam Li  adam2392        Fix  Fixed a bug in  class  cluster KMeans   ensuring reproducibility and equivalence   between sparse and dense input   pr  20200    by  user  J r mie du Boisberranger  jeremiedbb        API   class  cluster Birch  attributes   fit   and  partial fit    are   deprecated and will be removed in 1 2   pr  19297  by  Thomas Fan        API  the default value for the  batch size  parameter of    class  cluster MiniBatchKMeans  was changed from 100 to 1024 due to   efficiency reasons  The  n iter   attribute of    class  cluster MiniBatchKMeans  now reports the number of started epochs and   the  n steps   attribute reports the number of mini batches processed     pr  17622  by  user  J r mie du Boisberranger  jeremiedbb        API   func  cluster spectral clustering  raises an improved error when passed   a  np matrix    pr  20560  by  Thomas Fan      mod  sklearn compose                             Enhancement   class  compose ColumnTransformer  now records the output   of each transformer in  output indices     pr  18393  by    user  Luca Bittarello  lbittarello        Enhancement   class  compose ColumnTransformer  now allows DataFrame input to   have its columns appear in a changed order in  transform   Further  columns that   are dropped will not be required in transform  and additional columns will be   ignored if  remainder  drop     pr  19263  by  Thomas Fan        Enhancement  Adds    predict params  keyword argument to    meth  compose TransformedTargetRegressor predict  that passes keyword   argument to the regressor     pr  19244  by  user  Ricardo  ricardojnf        FIX   compose ColumnTransformer get feature names  supports   non string feature names returned by any of its transformers  However  note   that   get feature names   is deprecated  use   get feature names out     instead   pr  18459  by  user  Albert Villanova del Moral  albertvillanova     and  user  Alonso Silva Allende  alonsosilvaallende        Fix   class  compose TransformedTargetRegressor  now takes nD targets with   an adequate transformer     pr  18898  by  user  Oras Phongpanagnam  panangam        API  Adds  verbose feature names out  to  class  compose ColumnTransformer     This flag controls the prefixing of feature names out in    term  get feature names out    pr  18444  and  pr  21080  by  Thomas Fan      mod  sklearn covariance                                Fix  Adds arrays check to  func  covariance ledoit wolf  and    func  covariance ledoit wolf shrinkage    pr  20416  by  user  Hugo Defois    defoishugo        API  Deprecates the following keys in  cv results      mean score        std score    and   split k  score   in favor of   mean test score       std test score    and   split k  test score     pr  20583  by  Thomas Fan      mod  sklearn datasets                              Enhancement   func  datasets fetch openml  now supports categories with   missing values when returning a pandas dataframe   pr  19365  by    Thomas Fan   and  user  Amanda Dsouza  amy12xx   and    user  EL ATEIF Sara  elateifsara        Enhancement   func  datasets fetch kddcup99  raises a better message   when the cached file is invalid   pr  19669   Thomas Fan        Enhancement  Replace usages of     file     related to resource file I O   with   importlib resources   to avoid the assumption that these resource   files  e g    iris csv    already exist on a filesystem  and by extension   to enable compatibility with tools such as   PyOxidizer       pr  20297  by  user  Jack Liu  jackzyliu        Fix  Shorten data file names in the openml tests to better support   installing on Windows and its default 260 character limit on file names     pr  20209  by  Thomas Fan        Fix   func  datasets fetch kddcup99  returns dataframes when    return X y True  and  as frame True    pr  19011  by  Thomas Fan        API  Deprecates  datasets load boston  in 1 0 and it will be removed   in 1 2  Alternative code snippets to load similar datasets are provided    Please report to the docstring of the function for details     pr  20729  by  Guillaume Lemaitre       mod  sklearn decomposition                                   Enhancement  added a new approximate solver  randomized SVD  available with    eigen solver  randomized    to  class  decomposition KernelPCA   This   significantly accelerates computation when the number of samples is much   larger than the desired number of components     pr  12069  by  user  Sylvain Mari   smarie        Fix  Fixes incorrect multiple data conversion warnings when clustering   boolean data   pr  19046  by  user  Surya Prakash  jdsurya        Fix  Fixed  func  decomposition dict learning   used by    class  decomposition DictionaryLearning   to ensure determinism of the   output  Achieved by flipping signs of the SVD output which is used to   initialize the code   pr  18433  by  user  Bruno Charron  brcharron        Fix  Fixed a bug in  class  decomposition MiniBatchDictionaryLearning      class  decomposition MiniBatchSparsePCA  and    func  decomposition dict learning online  where the update of the dictionary   was incorrect   pr  19198  by  user  J r mie du Boisberranger  jeremiedbb        Fix  Fixed a bug in  class  decomposition DictionaryLearning      class  decomposition SparsePCA      class  decomposition MiniBatchDictionaryLearning      class  decomposition MiniBatchSparsePCA      func  decomposition dict learning  and    func  decomposition dict learning online  where the restart of unused atoms   during the dictionary update was not working as expected   pr  19198  by    user  J r mie du Boisberranger  jeremiedbb        API  In  class  decomposition DictionaryLearning      class  decomposition MiniBatchDictionaryLearning      func  decomposition dict learning  and    func  decomposition dict learning online    transform alpha  will be equal   to  alpha  instead of 1 0 by default starting from version 1 2  pr  19159  by    user  Beno t Mal zieux  bmalezieux        API  Rename variable names in  class  decomposition KernelPCA  to improve   readability   lambdas   and  alphas   are renamed to  eigenvalues     and  eigenvectors    respectively   lambdas   and  alphas   are   deprecated and will be removed in 1 2     pr  19908  by  user  Kei Ishikawa  kstoneriv3        API  The  alpha  and  regularization  parameters of  class  decomposition NMF  and    func  decomposition non negative factorization  are deprecated and will be removed   in 1 2  Use the new parameters  alpha W  and  alpha H  instead   pr  20512  by    user  J r mie du Boisberranger  jeremiedbb      mod  sklearn dummy                           API  Attribute  n features in   in  class  dummy DummyRegressor  and    class  dummy DummyRegressor  is deprecated and will be removed in 1 2     pr  20960  by  Thomas Fan      mod  sklearn ensemble                              Enhancement   class   sklearn ensemble HistGradientBoostingClassifier  and    class   sklearn ensemble HistGradientBoostingRegressor  take cgroups quotas   into account when deciding the number of threads used by OpenMP  This   avoids performance problems caused by over subscription when using those   classes in a docker container for instance   pr  20477    by  Thomas Fan        Enhancement   class   sklearn ensemble HistGradientBoostingClassifier  and    class   sklearn ensemble HistGradientBoostingRegressor  are no longer   experimental  They are now considered stable and are subject to the same   deprecation cycles as all other estimators   pr  19799  by  Nicolas Hug        Enhancement  Improve the HTML rendering of the    class  ensemble StackingClassifier  and  class  ensemble StackingRegressor      pr  19564  by  Thomas Fan        Enhancement  Added Poisson criterion to    class  ensemble RandomForestRegressor    pr  19836  by  user  Brian Sun    bsun94        Fix  Do not allow to compute out of bag  OOB  score in    class  ensemble RandomForestClassifier  and    class  ensemble ExtraTreesClassifier  with multiclass multioutput target   since scikit learn does not provide any metric supporting this type of   target  Additional private refactoring was performed     pr  19162  by  user  Guillaume Lemaitre  glemaitre        Fix  Improve numerical precision for weights boosting in    class  ensemble AdaBoostClassifier  and  class  ensemble AdaBoostRegressor    to avoid underflows     pr  10096  by  user  Fenil Suchak  fenilsuchak        Fix  Fixed the range of the argument   max samples   to be    0 0  1 0      in  class  ensemble RandomForestClassifier      class  ensemble RandomForestRegressor   where  max samples 1 0  is   interpreted as using all  n samples  for bootstrapping   pr  20159  by    user  murata yu       Fix  Fixed a bug in  class  ensemble AdaBoostClassifier  and    class  ensemble AdaBoostRegressor  where the  sample weight  parameter   got overwritten during  fit      pr  20534  by  user  Guillaume Lemaitre  glemaitre        API  Removes  tol None  option in    class  ensemble HistGradientBoostingClassifier  and    class  ensemble HistGradientBoostingRegressor   Please use  tol 0  for   the same behavior   pr  19296  by  Thomas Fan      mod  sklearn feature extraction                                        Fix  Fixed a bug in  class  feature extraction text HashingVectorizer    where some input strings would result in negative indices in the transformed   data   pr  19035  by  user  Liu Yu  ly648499246        Fix  Fixed a bug in  class  feature extraction DictVectorizer  by raising an   error with unsupported value type     pr  19520  by  user  Jeff Zhao  kamiyaa        Fix  Fixed a bug in  func  feature extraction image img to graph    and  func  feature extraction image grid to graph  where singleton connected   components were not handled properly  resulting in a wrong vertex indexing     pr  18964  by  Bertrand Thirion        Fix  Raise a warning in  class  feature extraction text CountVectorizer    with  lowercase True  when there are vocabulary entries with uppercase   characters to avoid silent misses in the resulting feature vectors     pr  19401  by  user  Zito Relova  zitorelova     mod  sklearn feature selection                                       Feature   func  feature selection r regression  computes Pearson s R   correlation coefficients between the features and the target     pr  17169  by  user  Dmytro Lituiev  DSLituiev     and  user  Julien Jerphanion  jjerphan        Enhancement   func  feature selection RFE fit  accepts additional estimator   parameters that are passed directly to the estimator s  fit  method     pr  20380  by  user  Iv n Pulido  ijpulidos     user  Felipe Bidu  fbidu       user  Gil Rutter  g rutter    and  user  Adrin Jalali  adrinjalali        FIX  Fix a bug in  func  isotonic isotonic regression  where the    sample weight  passed by a user were overwritten during   fit       pr  20515  by  user  Carsten Allefeld  allefeld        Fix  Change  func  feature selection SequentialFeatureSelector  to   allow for unsupervised modelling so that the  fit  signature need not   do any  y  validation and allow for  y None      pr  19568  by  user  Shyam Desai  ShyamDesai        API  Raises an error in  class  feature selection VarianceThreshold    when the variance threshold is negative     pr  20207  by  user  Tomohiro Endo  europeanplaice       API  Deprecates  grid scores   in favor of split scores in  cv results   in    class  feature selection RFECV    grid scores   will be removed in   version 1 2     pr  20161  by  user  Shuhei Kayawari  wowry   and  user  arka204     mod  sklearn inspection                                Enhancement  Add  max samples  parameter in    func  inspection permutation importance   It enables to draw a subset of the   samples to compute the permutation importance  This is useful to keep the   method tractable when evaluating feature importance on large datasets     pr  20431  by  user  Oliver Pfaffel  o1iv3r        Enhancement  Add kwargs to format ICE and PD lines separately in partial   dependence plots  inspection plot partial dependence  and    meth  inspection PartialDependenceDisplay plot    pr  19428  by  user  Mehdi   Hamoumi  mhham        Fix  Allow multiple scorers input to    func  inspection permutation importance    pr  19411  by  user  Simona   Maggio  simonamaggio        API   class  inspection PartialDependenceDisplay  exposes a class method     func   inspection PartialDependenceDisplay from estimator      inspection plot partial dependence  is deprecated in favor of the   class method and will be removed in 1 2   pr  20959  by  Thomas Fan      mod  sklearn kernel approximation                                          Fix  Fix a bug in  class  kernel approximation Nystroem    where the attribute  component indices   did not correspond to the subset of   sample indices used to generate the approximated kernel   pr  20554  by    user  Xiangyin Kong  kxytim      mod  sklearn linear model                                  MajorFeature  Added  class  linear model QuantileRegressor  which implements   linear quantile regression with L1 penalty     pr  9978  by  user  David Dale  avidale   and    user  Christian Lorentzen  lorentzenchr        Feature  The new  class  linear model SGDOneClassSVM  provides an SGD   implementation of the linear One Class SVM  Combined with kernel   approximation techniques  this implementation approximates the solution of   a kernelized One Class SVM while benefitting from a linear   complexity in the number of samples     pr  10027  by  user  Albert Thomas  albertcthomas        Feature  Added  sample weight  parameter to    class  linear model LassoCV  and  class  linear model ElasticNetCV      pr  16449  by  user  Christian Lorentzen  lorentzenchr        Feature  Added new solver  lbfgs   available with  solver  lbfgs      and  positive  argument to  class  linear model Ridge   When  positive  is   set to  True   forces the coefficients to be positive  only supported by    lbfgs     pr  20231  by  user  Toshihiro Nakae  tnakae        Efficiency  The implementation of  class  linear model LogisticRegression    has been optimised for dense matrices when using  solver  newton cg   and    multi class   multinomial       pr  19571  by  user  Julien Jerphanion  jjerphan        Enhancement   fit  method preserves dtype for numpy float32 in    class  linear model Lars    class  linear model LassoLars      class  linear model LassoLars    class  linear model LarsCV  and    class  linear model LassoLarsCV    pr  20155  by  user  Takeshi Oura    takoika        Enhancement  Validate user supplied gram matrix passed to linear models   via the  precompute  argument   pr  19004  by  user  Adam Midvidy  amidvidy        Fix   meth  linear model ElasticNet fit  no longer modifies  sample weight    in place   pr  19055  by  Thomas Fan        Fix   class  linear model Lasso  and  class  linear model ElasticNet  no   longer have a  dual gap   not corresponding to their objective   pr  19172    by  user  Mathurin Massias  mathurinm       Fix   sample weight  are now fully taken into account in linear models   when  normalize True  for both feature centering and feature   scaling     pr  19426  by  user  Alexandre Gramfort  agramfort   and    user  Maria Telenczuk  maikia        Fix  Points with residuals equal to    residual threshold   are now considered   as inliers for  class  linear model RANSACRegressor   This allows fitting   a model perfectly on some datasets when  residual threshold 0      pr  19499  by  user  Gregory Strubel  gregorystrubel        Fix  Sample weight invariance for  class  linear model Ridge  was fixed in    pr  19616  by  user  Oliver Grisel  ogrisel   and  user  Christian Lorentzen    lorentzenchr        Fix  The dictionary  params  in  func  linear model enet path  and    func  linear model lasso path  should only contain parameter of the   coordinate descent solver  Otherwise  an error will be raised     pr  19391  by  user  Shao Yang Hong  hongshaoyang        API  Raise a warning in  class  linear model RANSACRegressor  that from   version 1 2   min samples  need to be set explicitly for models other than    class  linear model LinearRegression    pr  19390  by  user  Shao Yang Hong    hongshaoyang        API   The parameter   normalize   of  class  linear model LinearRegression    is deprecated and will be removed in 1 2  Motivation for this deprecation      normalize   parameter did not take any effect if   fit intercept   was set   to False and therefore was deemed confusing  The behavior of the deprecated     LinearModel normalize True    can be reproduced with a    class   sklearn pipeline Pipeline  with   LinearModel    where     LinearModel   is  class   linear model LinearRegression      class   linear model Ridge    class   linear model RidgeClassifier      class   linear model RidgeCV  or  class   linear model RidgeClassifierCV     as follows    make pipeline StandardScaler with mean False     LinearModel       The   normalize   parameter in    class   linear model LinearRegression  was deprecated in  pr  17743  by    user  Maria Telenczuk  maikia   and  user  Alexandre Gramfort  agramfort      Same for  class   linear model Ridge      class   linear model RidgeClassifier    class   linear model RidgeCV   and    class   linear model RidgeClassifierCV   in   pr  17772  by  user  Maria   Telenczuk  maikia   and  user  Alexandre Gramfort  agramfort    Same for    class   linear model BayesianRidge    class   linear model ARDRegression    in   pr  17746  by  user  Maria Telenczuk  maikia    Same for    class   linear model Lasso    class   linear model LassoCV      class   linear model ElasticNet    class   linear model ElasticNetCV      class   linear model MultiTaskLasso      class   linear model MultiTaskLassoCV      class   linear model MultiTaskElasticNet      class   linear model MultiTaskElasticNetCV   in   pr  17785  by  user  Maria   Telenczuk  maikia   and  user  Alexandre Gramfort  agramfort        API  The   normalize   parameter of    class   linear model OrthogonalMatchingPursuit  and    class   linear model OrthogonalMatchingPursuitCV  will default to False in   1 2 and will be removed in 1 4   pr  17750  by  user  Maria Telenczuk    maikia   and  user  Alexandre Gramfort  agramfort    Same for    class   linear model Lars   class   linear model LarsCV     class   linear model LassoLars   class   linear model LassoLarsCV     class   linear model LassoLarsIC   in  pr  17769  by  user  Maria Telenczuk    maikia   and  user  Alexandre Gramfort  agramfort        API  Keyword validation has moved from    init    and  set params  to  fit    for the following estimators conforming to scikit learn s conventions     class   linear model SGDClassifier      class   linear model SGDRegressor      class   linear model SGDOneClassSVM      class   linear model PassiveAggressiveClassifier   and    class   linear model PassiveAggressiveRegressor      pr  20683  by  Guillaume Lemaitre      mod  sklearn manifold                              Enhancement  Implement   auto   heuristic for the  learning rate  in    class  manifold TSNE   It will become default in 1 2  The default   initialization will change to  pca  in 1 2  PCA initialization will   be scaled to have standard deviation 1e 4 in 1 2     pr  19491  by  user  Dmitry Kobak  dkobak        Fix  Change numerical precision to prevent underflow issues   during affinity matrix computation for  class  manifold TSNE      pr  19472  by  user  Dmitry Kobak  dkobak        Fix   class  manifold Isomap  now uses  scipy sparse csgraph shortest path    to compute the graph shortest path  It also connects disconnected components   of the neighbors graph along some minimum distance pairs  instead of changing   every infinite distances to zero   pr  20531  by  Roman Yurchak   and  Tom   Dupre la Tour        Fix  Decrease the numerical default tolerance in the lobpcg call   in  func  manifold spectral embedding  to prevent numerical instability     pr  21194  by  user  Andrew Knyazev  lobpcg      mod  sklearn metrics                             Feature   func  metrics mean pinball loss  exposes the pinball loss for   quantile regression   pr  19415  by  user  Xavier Dupr   sdpython     and  user  Oliver Grisel  ogrisel        Feature   func  metrics d2 tweedie score  calculates the D 2 regression   score for Tweedie deviances with power parameter   power    This is a   generalization of the  r2 score  and can be interpreted as percentage of   Tweedie deviance explained     pr  17036  by  user  Christian Lorentzen  lorentzenchr        Feature    func  metrics mean squared log error  now supports    squared False      pr  20326  by  user  Uttam kumar  helper uttam        Efficiency  Improved speed of  func  metrics confusion matrix  when labels   are integral     pr  9843  by  user  Jon Crall  Erotemic        Enhancement  A fix to raise an error in  func  metrics hinge loss  when     pred decision   is 1d whereas it is a multiclass classification or when     pred decision   parameter is not consistent with the   labels   parameter     pr  19643  by  user  Pierre Attard  PierreAttard        Fix   meth  metrics ConfusionMatrixDisplay plot  uses the correct max   for colormap   pr  19784  by  Thomas Fan        Fix  Samples with zero  sample weight  values do not affect the results   from  func  metrics det curve    func  metrics precision recall curve    and  func  metrics roc curve      pr  18328  by  user  Albert Villanova del Moral  albertvillanova   and    user  Alonso Silva Allende  alonsosilvaallende        Fix  avoid overflow in  func  metrics adjusted rand score  with   large amount of data   pr  20312  by  user  Divyanshu Deoli    divyanshudeoli        API   class  metrics ConfusionMatrixDisplay  exposes two class methods    func   metrics ConfusionMatrixDisplay from estimator  and    func   metrics ConfusionMatrixDisplay from predictions  allowing to create   a confusion matrix plot using an estimator or the predictions     metrics plot confusion matrix  is deprecated in favor of these two   class methods and will be removed in 1 2     pr  18543  by  Guillaume Lemaitre        API   class  metrics PrecisionRecallDisplay  exposes two class methods    func   metrics PrecisionRecallDisplay from estimator  and    func   metrics PrecisionRecallDisplay from predictions  allowing to create   a precision recall curve using an estimator or the predictions     metrics plot precision recall curve  is deprecated in favor of these   two class methods and will be removed in 1 2     pr  20552  by  Guillaume Lemaitre        API   class  metrics DetCurveDisplay  exposes two class methods    func   metrics DetCurveDisplay from estimator  and    func   metrics DetCurveDisplay from predictions  allowing to create   a confusion matrix plot using an estimator or the predictions     metrics plot det curve  is deprecated in favor of these two   class methods and will be removed in 1 2     pr  19278  by  Guillaume Lemaitre      mod  sklearn mixture                             Fix  Ensure that the best parameters are set appropriately   in the case of divergency for  class  mixture GaussianMixture  and    class  mixture BayesianGaussianMixture      pr  20030  by  user  Tingshan Liu  tliu68   and    user  Benjamin Pedigo  bdpedigo      mod  sklearn model selection                                     Feature  added  class  model selection StratifiedGroupKFold   that combines    class  model selection StratifiedKFold  and    class  model selection GroupKFold   providing an ability to split data   preserving the distribution of classes in each split while keeping each   group within a single split     pr  18649  by  user  Leandro Hermida  hermidalc   and    user  Rodion Martynov  marrodion        Enhancement  warn only once in the main process for per split fit failures   in cross validation   pr  20619  by  user  Lo c Est ve  lesteve       Enhancement  The  model selection BaseShuffleSplit  base class is   now public   pr  20056  by  user  pabloduque0       Fix  Avoid premature overflow in  func  model selection train test split      pr  20904  by  user  Tomasz Jakubek  t jakubek      mod  sklearn naive bayes                                 Fix  The  fit  and  partial fit  methods of the discrete naive Bayes   classifiers   class  naive bayes BernoulliNB      class  naive bayes CategoricalNB    class  naive bayes ComplementNB     and  class  naive bayes MultinomialNB   now correctly handle the degenerate   case of a single class in the training set     pr  18925  by  user  David Poznik  dpoznik        API  The attribute   sigma    is now deprecated in    class  naive bayes GaussianNB  and will be removed in 1 2    Use   var    instead     pr  18842  by  user  Hong Shao Yang  hongshaoyang      mod  sklearn neighbors                               Enhancement  The creation of  class  neighbors KDTree  and    class  neighbors BallTree  has been improved for their worst cases time   complexity from  math   mathcal O  n 2   to  math   mathcal O  n       pr  19473  by  user  jiefangxuanyan  jiefangxuanyan   and    user  Julien Jerphanion  jjerphan        FIX   neighbors DistanceMetric  subclasses now support readonly   memory mapped datasets   pr  19883  by  user  Julien Jerphanion  jjerphan        FIX   class  neighbors NearestNeighbors    class  neighbors KNeighborsClassifier      class  neighbors RadiusNeighborsClassifier    class  neighbors KNeighborsRegressor    and  class  neighbors RadiusNeighborsRegressor  do not validate  weights  in      init    and validates  weights  in  fit  instead   pr  20072  by    user  Juan Carlos Alfaro Jim nez  alfaro96        API  The parameter  kwargs  of  class  neighbors RadiusNeighborsClassifier  is   deprecated and will be removed in 1 2     pr  20842  by  user  Juan Mart n Loyola  jmloyola      mod  sklearn neural network                                    Fix   class  neural network MLPClassifier  and    class  neural network MLPRegressor  now correctly support continued training   when loading from a pickled file   pr  19631  by  Thomas Fan      mod  sklearn pipeline                              API  The  predict proba  and  predict log proba  methods of the    class  pipeline Pipeline  now support passing prediction kwargs to the final   estimator   pr  19790  by  user  Christopher Flynn  crflynn      mod  sklearn preprocessing                                   Feature  The new  class  preprocessing SplineTransformer  is a feature   preprocessing tool for the generation of B splines  parametrized by the   polynomial   degree   of the splines  number of knots   n knots   and knot   positioning strategy   knots       pr  18368  by  user  Christian Lorentzen  lorentzenchr       class  preprocessing SplineTransformer  also supports periodic   splines via the   extrapolation   argument     pr  19483  by  user  Malte Londschien  mlondschien       class  preprocessing SplineTransformer  supports sample weights for   knot position strategy    quantile        pr  20526  by  user  Malte Londschien  mlondschien        Feature   class  preprocessing OrdinalEncoder  supports passing through   missing values by default   pr  19069  by  Thomas Fan        Feature   class  preprocessing OneHotEncoder  now supports    handle unknown  ignore   and dropping categories   pr  19041  by    Thomas Fan        Feature   class  preprocessing PolynomialFeatures  now supports passing   a tuple to  degree   i e   degree  min degree  max degree       pr  20250  by  user  Christian Lorentzen  lorentzenchr        Efficiency   class  preprocessing StandardScaler  is faster and more memory   efficient   pr  20652  by  Thomas Fan        Efficiency  Changed   algorithm   argument for  class  cluster KMeans  in    class  preprocessing KBinsDiscretizer  from   auto   to   full       pr  19934  by  user  Gleb Levitskiy  GLevV        Efficiency  The implementation of  fit  for    class  preprocessing PolynomialFeatures  transformer is now faster  This is   especially noticeable on large sparse input   pr  19734  by  user  Fred   Robinson  frrad        Fix  The  func  preprocessing StandardScaler inverse transform  method   now raises error when the input data is 1D   pr  19752  by  user  Zhehao Liu    Max1993Liu        Fix   func  preprocessing scale    class  preprocessing StandardScaler    and similar scalers detect near constant features to avoid scaling them to   very large values  This problem happens in particular when using a scaler on   sparse data with a constant column with sample weights  in which case   centering is typically disabled   pr  19527  by  user  Oliver Grisel    ogrisel   and  user  Maria Telenczuk  maikia   and  pr  19788  by    user  J r mie du Boisberranger  jeremiedbb        Fix   meth  preprocessing StandardScaler inverse transform  now   correctly handles integer dtypes   pr  19356  by  user  makoeppel       Fix   meth  preprocessing OrdinalEncoder inverse transform  is not   supporting sparse matrix and raises the appropriate error message     pr  19879  by  user  Guillaume Lemaitre  glemaitre        Fix  The  fit  method of  class  preprocessing OrdinalEncoder  will not   raise error when  handle unknown  ignore   and unknown categories are given   to  fit      pr  19906  by  user  Zhehao Liu  MaxwellLZH        Fix  Fix a regression in  class  preprocessing OrdinalEncoder  where large   Python numeric would raise an error due to overflow when casted to C type     np float64  or  np int64       pr  20727  by  Guillaume Lemaitre        Fix   class  preprocessing FunctionTransformer  does not set  n features in     based on the input to  inverse transform    pr  20961  by  Thomas Fan        API  The  n input features   attribute of    class  preprocessing PolynomialFeatures  is deprecated in favor of    n features in   and will be removed in 1 2   pr  20240  by    user  J r mie du Boisberranger  jeremiedbb      mod  sklearn svm                          API  The parameter    params  of  func  svm OneClassSVM fit  is   deprecated and will be removed in 1 2     pr  20843  by  user  Juan Mart n Loyola  jmloyola      mod  sklearn tree                          Enhancement  Add  fontname  argument in  func  tree export graphviz    for non English characters   pr  18959  by  user  Zero  Zeroto521     and  user  wstates  wstates        Fix  Improves compatibility of  func  tree plot tree  with high DPI screens     pr  20023  by  Thomas Fan        Fix  Fixed a bug in  class  tree DecisionTreeClassifier      class  tree DecisionTreeRegressor  where a node could be split whereas it   should not have been due to incorrect handling of rounding errors     pr  19336  by  user  J r mie du Boisberranger  jeremiedbb        API  The  n features   attribute of  class  tree DecisionTreeClassifier      class  tree DecisionTreeRegressor    class  tree ExtraTreeClassifier  and    class  tree ExtraTreeRegressor  is deprecated in favor of  n features in     and will be removed in 1 2   pr  20272  by    user  J r mie du Boisberranger  jeremiedbb      mod  sklearn utils                           Enhancement  Deprecated the default value of the  random state 0  in    func   sklearn utils extmath randomized svd   Starting in 1 2    the default value of  random state  will be set to  None      pr  19459  by  user  Cindy Bezuidenhout  cinbez   and    user  Clifford Akai Nettey cliffordEmmanuel        Enhancement  Added helper decorator  func  utils metaestimators available if    to provide flexibility in metaestimators making methods available or   unavailable on the basis of state  in a more readable way     pr  19948  by  Joel Nothman        Enhancement   func  utils validation check is fitted  now uses       sklearn is fitted     if available  instead of checking for attributes   ending with an underscore  This also makes  class  pipeline Pipeline  and    class  preprocessing FunctionTransformer  pass     check is fitted estimator      pr  20657  by  Adrin Jalali        Fix  Fixed a bug in  func  utils sparsefuncs mean variance axis  where the   precision of the computed variance was very poor when the real variance is   exactly zero   pr  19766  by  user  J r mie du Boisberranger  jeremiedbb        Fix  The docstrings of properties that are decorated with    func  utils deprecated  are now properly wrapped   pr  20385  by  Thomas   Fan        Fix   utils stats  weighted percentile  now correctly ignores   zero weighted observations smaller than the smallest observation with   positive weight for   percentile 0    Affected classes are    class  dummy DummyRegressor  for   quantile 0   and    ensemble HuberLossFunction  and  ensemble HuberLossFunction    for   alpha 0     pr  20528  by  user  Malte Londschien  mlondschien        Fix   func  utils  safe indexing  explicitly takes a dataframe copy when   integer indices are provided avoiding to raise a warning from Pandas  This   warning was previously raised in resampling utilities and functions using   those utilities  e g   func  model selection train test split      func  model selection cross validate      func  model selection cross val score      func  model selection cross val predict       pr  20673  by  user  Joris Van den Bossche   jorisvandenbossche        Fix  Fix a regression in  utils is scalar nan  where large Python   numbers would raise an error due to overflow in C types   np float64  or    np int64       pr  20727  by  Guillaume Lemaitre        Fix  Support for  np matrix  is deprecated in    func   sklearn utils check array  in 1 0 and will raise a  TypeError  in   1 2   pr  20165  by  Thomas Fan        API   utils  testing assert warns  and  utils  testing assert warns message    are deprecated in 1 0 and will be removed in 1 2  Used  pytest warns  context   manager instead  Note that these functions were not documented and part from   the public API   pr  20521  by  user  Olivier Grisel  ogrisel        API  Fixed several bugs in  utils graph graph shortest path   which is   now deprecated  Use  scipy sparse csgraph shortest path  instead   pr  20531    by  Tom Dupre la Tour        rubric   Code and documentation contributors  Thanks to everyone who has contributed to the maintenance and improvement of the project since version 0 24  including   Abdulelah S  Al Mesfer  Abhinav Gupta  Adam J  Stewart  Adam Li  Adam Midvidy  Adrian Garcia Badaracco  Adrian Sad ocha  Adrin Jalali  Agamemnon Krasoulis  Alberto Rubiales  Albert Thomas  Albert Villanova del Moral  Alek Lefebvre  Alessia Marcolini  Alexandr Fonari  Alihan Zihna  Aline Ribeiro de Almeida  Amanda  Amanda Dsouza  Amol Deshmukh  Ana Pessoa  Anavelyz  Andreas Mueller  Andrew Delong  Ashish  Ashvith Shetty  Atsushi Nukariya  Aur lien Geron  Avi Gupta  Ayush Singh  baam  BaptBillard  Benjamin Pedigo  Bertrand Thirion  Bharat Raghunathan  bmalezieux  Brian Rice  Brian Sun  Bruno Charron  Bryan Chen  bumblebee  caherrera meli  Carsten Allefeld  CeeThinwa  Chiara Marmo  chrissobel  Christian Lorentzen  Christopher Yeh  Chuliang Xiao  Cl ment Fauchereau  cliffordEmmanuel  Conner Shen  Connor Tann  David Dale  David Katz  David Poznik  Dimitri Papadopoulos Orfanos  Divyanshu Deoli  dmallia17  Dmitry Kobak  DS anas  Eduardo Jardim  EdwinWenink  EL ATEIF Sara  Eleni Markou  EricEllwanger  Eric Fiegel  Erich Schubert  Ezri Mudde  Fatos Morina  Felipe Rodrigues  Felix Hafner  Fenil Suchak  flyingdutchman23  Flynn  Fortune Uwha  Francois Berenger  Frankie Robertson  Frans Larsson  Frederick Robinson  frellwan  Gabriel S Vicente  Gael Varoquaux  genvalen  Geoffrey Thomas  geroldcsendes  Gleb Levitskiy  Glen  Gl ria Maci  Mu oz  gregorystrubel  groceryheist  Guillaume Lemaitre  guiweber  Haidar Almubarak  Hans Moritz G nther  Haoyin Xu  Harris Mirza  Harry Wei  Harutaka Kawamura  Hassan Alsawadi  Helder Geovane Gomes de Lima  Hugo DEFOIS  Igor Ilic  Ikko Ashimine  Isaack Mungui  Ishaan Bhat  Ishan Mishra  Iv n Pulido  iwhalvic  J Alexander  Jack Liu  James Alan Preiss  James Budarz  James Lamb  Jannik  Jeff Zhao  Jennifer Maldonado  J r mie du Boisberranger  Jesse Lima  Jianzhu Guo  jnboehm  Joel Nothman  JohanWork  John Paton  Jonathan Schneider  Jon Crall  Jon Haitz Legarreta Gorro o  Joris Van den Bossche  Jos  Manuel N poles Duarte  Juan Carlos Alfaro Jim nez  Juan Martin Loyola  Julien Jerphanion  Julio Batista Silva  julyrashchenko  JVM  Kadatatlu Kishore  Karen Palacio  Kei Ishikawa  kmatt10  kobaski  Kot271828  Kunj  KurumeYuta  kxytim  lacrosse91  LalliAcqua  Laveen Bagai  Leonardo Rocco  Leonardo Uieda  Leopoldo Corona  Loic Esteve  LSturtew  Luca Bittarello  Luccas Quadros  Lucy Jim nez  Lucy Liu  ly648499246  Mabu Manaileng  Manimaran  makoeppel  Marco Gorelli  Maren Westermann  Mariangela  Maria Telenczuk  marielaraj  Martin Hirzel  Mateo Nore a  Mathieu Blondel  Mathis Batoul  mathurinm  Matthew Calcote  Maxime Prieur  Maxwell  Mehdi Hamoumi  Mehmet Ali  zer  Miao Cai  Michal Karbownik  michalkrawczyk  Mitzi  mlondschien  Mohamed Haseeb  Mohamed Khoualed  Muhammad Jarir Kanji  murata yu  Nadim Kawwa  Nanshan Li  naozin555  Nate Parsons  Neal Fultz  Nic Annau  Nicolas Hug  Nicolas Miller  Nico Stefani  Nigel Bosch  Nikita Titov  Nodar Okroshiashvili  Norbert Preining  novaya  Ogbonna Chibuike Stephen  OGordon100  Oliver Pfaffel  Olivier Grisel  Oras Phongpanangam  Pablo Duque  Pablo Ibieta Jimenez  Patric Lacouth  Paulo S  Costa  Pawe  Olszewski  Peter Dye  PierreAttard  Pierre Yves Le Borgne  PranayAnchuri  Prince Canuma  putschblos  qdeffense  RamyaNP  ranjanikrishnan  Ray Bell  Rene Jean Corneille  Reshama Shaikh  ricardojnf  RichardScottOZ  Rodion Martynov  Rohan Paul  Roman Lutz  Roman Yurchak  Samuel Brice  Sandy Khosasi  Sean Benhur J  Sebastian Flores  Sebastian P lsterl  Shao Yang Hong  shinehide  shinnar  shivamgargsya  Shooter23  Shuhei Kayawari  Shyam Desai  simonamaggio  Sina Tootoonian  solosilence  Steven Kolawole  Steve Stagg  Surya Prakash  swpease  Sylvain Mari   Takeshi Oura  Terence Honles  TFiFiE  Thomas A Caswell  Thomas J  Fan  Tim Gates  TimotheeMathieu  Timothy Wolodzko  Tim Vink  t jakubek  t kusanagi  tliu68  Tobias Uhmann  tom1092  Tom s Moreyra  Tom s Ronald Hughes  Tom Dupr  la Tour  Tommaso Di Noto  Tomohiro Endo  TONY GEORGE  Toshihiro NAKAE  tsuga  Uttam kumar  vadim ushtanit  Vangelis Gkiastas  Venkatachalam N  Vil m Zouhar  Vinicius Rios Fuck  Vlasovets  waijean  Whidou  xavier dupr   xiaoyuchai  Yasmeen Alsaedy  yoch  Yosuke KOBAYASHI  Yu Feng  YusukeNagasaka  yzhenman  Zero  ZeyuSun  ZhaoweiWang  Zito  Zito Relova