# Version 0.19.2¶

July, 2018

This release is exclusively in order to support Python 3.7.

# Version 0.19.1¶

October 23, 2017

This is a bug-fix release with some minor documentation improvements and enhancements to features released in 0.19.0.

Note there may be minor differences in TSNE output in this release (due to #9623), in the case where multiple samples have equal distance to some sample.

## Changelog¶

### API changes¶

• Reverted the addition of metrics.ndcg_score and metrics.dcg_score which had been merged into version 0.19.0 by error. The implementations were broken and undocumented.

• return_train_score which was added to model_selection.GridSearchCV, model_selection.RandomizedSearchCV and model_selection.cross_validate in version 0.19.0 will be changing its default value from True to False in version 0.21. We found that calculating training score could have a great effect on cross validation runtime in some cases. Users should explicitly set return_train_score to False if prediction or scoring functions are slow, resulting in a deleterious effect on CV runtime, or to True if they wish to use the calculated scores. #9677 by Kumar Ashutosh and Joel Nothman.

• correlation_models and regression_models from the legacy gaussian processes implementation have been belatedly deprecated. #9717 by Kumar Ashutosh.

### Bug fixes¶

Regressions in 0.19.0 fixed in 0.19.1:

## Code and Documentation Contributors¶

With thanks to:

Joel Nothman, Loic Esteve, Andreas Mueller, Kumar Ashutosh, Vrishank Bhardwaj, Hanmin Qin, Rasul Kerimov, James Bourbeau, Nagarjuna Kumar, Nathaniel Saul, Olivier Grisel, Roman Yurchak, Reiichiro Nakano, Sachin Kelkar, Sam Steingold, Yaroslav Halchenko, diegodlh, felix, goncalo-rodrigues, jkleint, oliblum90, pasbi, Anthony Gitter, Ben Lawson, Charlie Brummitt, Didi Bar-Zev, Gael Varoquaux, Joan Massich, Joris Van den Bossche, nielsenmarkus11

# Version 0.19¶

August 12, 2017

## Highlights¶

We are excited to release a number of great new features including neighbors.LocalOutlierFactor for anomaly detection, preprocessing.QuantileTransformer for robust feature transformation, and the multioutput.ClassifierChain meta-estimator to simply account for dependencies between classes in multilabel problems. We have some new algorithms in existing estimators, such as multiplicative update in decomposition.NMF and multinomial linear_model.LogisticRegression with L1 loss (use solver='saga').

Cross validation is now able to return the results from multiple metric evaluations. The new model_selection.cross_validate can return many scores on the test data as well as training set performance and timings, and we have extended the scoring and refit parameters for grid/randomized search to handle multiple metrics.

You can also learn faster. For instance, the new option to cache transformations in pipeline.Pipeline makes grid search over pipelines including slow transformations much more efficient. And you can predict faster: if you’re sure you know what you’re doing, you can turn off validating that the input is finite using config_context.

We’ve made some important fixes too. We’ve fixed a longstanding implementation error in metrics.average_precision_score, so please be cautious with prior results reported from that function. A number of errors in the manifold.TSNE implementation have been fixed, particularly in the default Barnes-Hut approximation. semi_supervised.LabelSpreading and semi_supervised.LabelPropagation have had substantial fixes. LabelPropagation was previously broken. LabelSpreading should now correctly respect its alpha parameter.

## 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.

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¶

### New features¶

Classifiers and regressors

Other estimators

Model selection and evaluation

Miscellaneous

### Enhancements¶

Trees and ensembles

Linear, kernelized and related models

Other predictors

• Custom metrics for the neighbors binary trees now have fewer constraints: they must take two 1d-arrays and return a float. #6288 by Jake Vanderplas.

• algorithm='auto in neighbors estimators now chooses the most appropriate algorithm for all input types and metrics. #9145 by Herilalaina Rakotoarison and Reddy Chinthala.

Decomposition, manifold learning and clustering

Preprocessing and feature selection

Model evaluation and meta-estimators

Metrics

Miscellaneous

### Bug fixes¶

Trees and ensembles

Linear, kernelized and related models

Other predictors

Decomposition, manifold learning and clustering

Preprocessing and feature selection

Model evaluation and meta-estimators

Metrics

Miscellaneous

## API changes summary¶

Trees and ensembles

• Gradient boosting base models are no longer estimators. By Andreas Müller.

• All tree based estimators now accept a min_impurity_decrease parameter in lieu of the min_impurity_split, which is now deprecated. The min_impurity_decrease helps stop splitting the nodes in which the weighted impurity decrease from splitting is no longer at least min_impurity_decrease. #8449 by Raghav RV.

Linear, kernelized and related models

Other predictors

Decomposition, manifold learning and clustering

Preprocessing and feature selection

Model evaluation and meta-estimators

Miscellaneous

• Deprecate the y parameter in transform and inverse_transform. The method should not accept y parameter, as it’s used at the prediction time. #8174 by Tahar Zanouda, Alexandre Gramfort and Raghav RV.

• SciPy >= 0.13.3 and NumPy >= 1.8.2 are now the minimum supported versions for scikit-learn. The following backported functions in utils have been removed or deprecated accordingly. #8854 and #8874 by Naoya Kanai

• The store_covariances and covariances_ parameters of discriminant_analysis.QuadraticDiscriminantAnalysis has been renamed to store_covariance and covariance_ to be consistent with the corresponding parameter names of the discriminant_analysis.LinearDiscriminantAnalysis. They will be removed in version 0.21. #7998 by Jiacheng

Removed in 0.19:

• utils.fixes.argpartition

• utils.fixes.array_equal

• utils.fixes.astype

• utils.fixes.bincount

• utils.fixes.expit

• utils.fixes.frombuffer_empty

• utils.fixes.in1d

• utils.fixes.norm

• utils.fixes.rankdata

• utils.fixes.safe_copy

Deprecated in 0.19, to be removed in 0.21:

• utils.arpack.eigs

• utils.arpack.eigsh

• utils.arpack.svds

• utils.extmath.fast_dot

• utils.extmath.logsumexp

• utils.extmath.norm

• utils.extmath.pinvh

• utils.graph.graph_laplacian

• utils.random.choice

• utils.sparsetools.connected_components

• utils.stats.rankdata

• Estimators with both methods decision_function and predict_proba are now required to have a monotonic relation between them. The method check_decision_proba_consistency has been added in utils.estimator_checks to check their consistency. #7578 by Shubham Bhardwaj

• All checks in utils.estimator_checks, in particular utils.estimator_checks.check_estimator now accept estimator instances. Most other checks do not accept estimator classes any more. #9019 by Andreas Müller.

• Ensure that estimators’ attributes ending with _ are not set in the constructor but only in the fit method. Most notably, ensemble estimators (deriving from ensemble.BaseEnsemble) now only have self.estimators_ available after fit. #7464 by Lars Buitinck and Loic Esteve.

## Code and Documentation Contributors¶

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