Commit Graph

569 Commits

Author SHA1 Message Date
Thomas J. Fan d400723a21
FEA Add DecisionBoundaryDisplay (#16061)
Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
Co-authored-by: Loïc Estève <loic.esteve@ymail.com>
2022-03-29 16:36:31 +02:00
Thomas J. Fan cb547ae5d1
DOC Makes Sphinx reference to Bunch a class (#22948) 2022-03-25 22:27:51 +01:00
Adrin Jalali 7dc97a378e
API get_scorer returns a copy and introduce get_scorer_names (#22866) 2022-03-20 07:30:21 +11:00
Jérémie du Boisberranger b9bd2d524d
API Deprecate if_delegate_has_method (#22830) 2022-03-17 13:16:53 -04:00
Julien Jerphanion 6b332d9969
MNT Move `DistanceMetric` under `metrics` (#21177) 2021-10-08 17:57:32 +02:00
Christian Lorentzen 9061ff9e58
FEA add d2_tweedie_score (#17036) 2021-09-04 23:17:03 +02:00
Lucy Liu da36f72cc2
ENH Add CalibrationDisplay plotting class (#17443)
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
2021-08-31 09:43:05 +02:00
Julien Jerphanion 20ee33a95a
DOC Remove `graph_shortest_path` references (#20677) 2021-08-04 16:40:16 +02:00
Joel Nothman ed3642014b
ENH Add available_if as a generic, literate variant of if_delegate_has_method (#19948)
* Better documentation where if_delegate_has_method is inapplicable

Fixes #19923

Introduces an elegant alternative for if_delegate_has_method, a decorator called available_if, which uses a callable to determine if an object should show a particular attribute.

If the callable also accepted the attribute name being decorated as a parameter, this could be used to implement if_delegate_has_method.

We could also replace if_delegate_has_method in all cases, since the code might be more readable as @available_if(lambda self, method: hasattr(self.base_estimator, method))

Possible alternative naming of available_if: hasattr_if.

TODO: add tests of the new decorator

* Fix use of super()

* Fixes to silly errors...

* add noqa

* Fix docstring issues

* remove debugging statements

* Use available_if instead of if_delegate_has_method in multioutput

* Public to private

* Rm unused import

* Black

* Use a sentinel instead of for-else with early return

* update reference docs

* TST

* DOC Add change log

* Update doc/whats_new/v1.0.rst

* Make test make sense

* Black

* Define available_if function in class

* Another way to express multioutput delegations
2021-07-11 15:36:26 +02:00
David Dale c1cc67dd06
FEA Add QuantileRegressor estimator (#9978)
Co-authored-by: David Dale <ddale@yandex-team.ru>
Co-authored-by: Christian Lorentzen <lorentzen.ch@gmail.com>
2021-05-25 14:02:37 +02:00
Julien Jerphanion d5ebdca662
[MRG] Refactor `feature_selection.f_regression` and introduce `feature_selection.r_regression` (#17169)
Co-authored-by: Dmytro S Lituiev <d.lituiev@gmail.com>
Co-authored-by: Chiara Marmo <chiara.marmo@u-psud.fr>
Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
2021-04-21 10:49:18 +02:00
Albert Thomas c854b83c91
[MRG] Linear One-Class SVM using SGD implementation (#10027)
Co-authored-by: Tom Dupré la Tour <tom.dupre-la-tour@m4x.org>
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
2021-03-23 10:53:57 +01:00
Rodion Martynov 0892a98fc9
Stratified Group KFold implementation (#18649)
* Initial implementation

* Forgot to add to second __add__ list

* Update split method parameter doc

* Added example; changed default test_size to 0.1; added to author list

* StratifiedGroupKFold impl and other improvements

* Add class to __all__ spec

* Remove random_state when no shuffle

* Tighter formatting

* Update the implementation of StratifiedGroupKFold

* Add StratifiedGroupKFold to __init__

* Add y checks to StartifiedGroupKFold

* Raise error if n_splits > max num samples in class

* Warn if n_splits > mn num samples in class

* Add SGKfold to general repr test

* Add SGKFold to 2d_y test case

* Add SGKfold to value erros test case

Parameters are the same as for StratifiedKFold
to ensure similar behavior given n_groups == n_samples

* Add SGKFold to StratifiedKFold test cases

The idea is to ensure similar behavior when groups are trivial
(n_groups == n_samples)

* Add SGKFold to reproducibility test case

* Add SGKFold to GroupKFold test case

* Add SGKFold to nested cv test case

* Add SGKFold to random_state with shuffle=False test case

* Add SGKFold to constant splits test case

* Fix repr test case

* Fix formatting issues

* Add samples to a fold with least num samples

Required to produce balanced size folds when the distribution of y is
more or less the same

* Remove GroupShuffleSplit impl

* Add notes to StratifiedGroupKFold

* Fix doctest

* Added stratified group kfold tests

* Better variable naming

* Add section to documentation

* Remove leftover StratifiedGroupShuffleSplit import

* Add changelist and reference to original kernel

* Better naming for least populated class check

* Better expression for number of labels

* Remove use of Counter

We already have this data in output of np.unique

* Add tests for homogeneous groups

* Add StratifiedGroupKFold test against GroupKFold

* Add changes to changelist in docstring

* Add StratifiedGroupKFold to classes.rst

* Fix description of StratifiedGroupKFold

* Move license notice out of docstring

* Disambiguate labels to classes in doc

* Add changelog entry

* Fix changelog author entry

* Fix StratifiedGroupKFold docstring

* Better variable names

* Remove defaultdict in favor of numpy indexing

* Extracted best_fold search into a separate method

* Make use of numpy broadcasting instead of for loop

* Encode groups and use arrays instead of dicts

* Use numpy sort instead of python

* Clarify shuffling behavior of StratifiedGroupKF in docs

* Switch name from label_idx to class_idx

* Remove accidentally leftover comment

* Fix np.sort keyword to support numpy < 1.15

* Fix typo in docstring

* Add StratifiedGroupKFold to visualization doc

* Add visualization for uneven group as an example

* Fix image numbers to match updated example

* Add author

* Add SGKF visualization to docs

* Add comments for groups in stratified CV tests

Co-authored-by: Leandro Hermida <hermidal@cs.umd.edu>
Co-authored-by: marrodion <rodion_martynov@epam.com>
2021-03-20 21:57:42 +11:00
Sean Benhur J 04f84c6d08
DOC Added utils.gen_batches in documentation (#19688) 2021-03-17 15:53:00 +01:00
xavier dupré 6a6217f15f
ENH Add mean_pinball_loss metric for quantile regression (#19415)
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
Co-authored-by: Christian Lorentzen <lorentzen.ch@gmail.com>
2021-02-18 19:43:40 +01:00
Christian Lorentzen 27f1c737f2
FEA Add SplineTransformer (#18368) 2021-01-24 10:53:27 +01:00
Guillaume Lemaitre 2218ec4622
MNT change 0.25 to 1.0 and 0.26 to 1.1 in deprecation messages (#19005)
Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>
2020-12-18 16:09:19 +00:00
Patrice Becker 2f6af711b0
FEA Add Self Training Estimator (#11682)
Co-authored-by: Oliver Rausch <oliverrausch@users.noreply.github.com>
Co-authored-by: Patrice Becker <patricelbecker@gmail.com>
Co-authored-by: Roman Yurchak <rth.yurchak@gmail.com>
2020-11-20 19:49:08 +01:00
Gordon Walsh 11f9742992
[ENH] Create public kmeans_plusplus including index output (#17937) 2020-11-11 15:24:03 +01:00
ufmayer 662cc647d9
FEA Add Rand Index and pair confusion matrix (#17412)
Co-authored-by: Chiara Marmo <cmarmo@users.noreply.github.com>
2020-10-28 14:28:11 +01:00
Geoffrey Bolmier 5654da026b
FEA Top k accuracy metric (#16625)
Co-authored-by: Nicolas Hug <contact@nicolas-hug.com>
Co-authored-by: Jeremiah Johnson <jwjohnson314@gmail.com>
Co-authored-by: Roman Yurchak <rth.yurchak@gmail.com>
2020-10-16 16:51:41 +02:00
Thomas J. Fan 3b334c5b25
MNT Uses enable_halving_search_cv instead (#18563) 2020-10-09 07:49:20 +11:00
Lucy Liu 18a4841667
DOC Add common pitfalls: data leakage (#18426)
* Add common pitfalls on data leakage (#18426)
2020-10-08 08:42:37 +02:00
Joshua Newton 6d1104e332
DOC Restructure Multiclass and multilabel in User Guide (#17811) 2020-09-17 12:21:51 -04:00
Juan Carlos Alfaro Jiménez 2b79665b90
DOC Add enable_successive_halving module to the API Reference (#18402) 2020-09-15 15:08:14 -04:00
Nicolas Hug 0a5af0d2a1
FEA Successive halving for faster parameter search (#13900)
* More flexible grid search interface

* added info dict parameter

* Put back removed test

* renamed info into more_results

* Passed grroups as well since we need n_to use get_n_splits(X, y, groups)

* port

* pep8

* dabl -> sklearn

* add _required_parameters

* skipping check in rst file if pandas not installed

* Update sklearn/model_selection/_search_successive_halving.py

Co-Authored-By: Joel Nothman <joel.nothman@gmail.com>

* renamed into GridHalvingSearchCV and RandomHalvingSearchCV

* Addressed thomas' comments

* repr

* removed passing group as a parameter to evaluate_candidates

* Joels comments

* pep8

* reorganized user user guide

* renaming

* update user guide

* remove groups support + pass fit_params

* parameter renaming

* pep8

* r_i -> resource_iter

* fixed r_i issues

* examples + removed use of word budget

* Added inpute checking tests

* added cv_resutlts_ user guide

* minor title change

* fixed doc layout

* Addressed some comments

* properly pass down fit_params

* change default value of force_exhaust_resources and update doc

* should fix doc

* Used check_fit_params

* Update section about min_resources and number of candidates

* Clarified ratio section

* Use ~ to refer to classes

* fixed doc checks

* Apply suggestions from code review

Co-authored-by: Joel Nothman <joel.nothman@gmail.com>

* Addressed easy comments from Joel

* missed some

* updated docstring of run_search

* Used f strings instead of format

* remove candidate duplication checks

* fix example

* Addressed easy comments

* rotate ticks labels

* Added discussion in the intro as suggested by Joel

* Split examples into sections

* minor changes

* remove force_exhaust_budget and introduce min_resources=exhaust

* some minor validation

* Added a n_resources_ attribute

* update examples

* Addressed comments

* passing CV instead of X,y

* minor revert for handling fit_params

* updated docs

* fix len

* whatsnew

* Add test for sampling when all_list

* minor change to top-k

* Force CV splits to be consistent across calls

* reorder parameters

* reduced diff

* added tests for top_k

* put back doc for groups

* not sure what went wrong

* put import at its place

* some comment

* Addressed comments

* Added tests for cv_results_ and base estimator inputs

* pep8

* avoid monkeypatching

* rename df

* use Joel's suggestions for testing masks

* Made it experimental

* Should fix docs

* whats new entry

* Apply suggestions from code review

Co-authored-by: Andreas Mueller <t3kcit@gmail.com>

* Addressed comments to docs

* Addressed comments in examples

* minor doc update

* minor renaming in UG

* forgot some

* some sad note about splitter statefulness :'(

* Addressed comments

* ratio -> factor

Co-authored-by: Joel Nothman <joel.nothman@gmail.com>
Co-authored-by: Andreas Mueller <t3kcit@gmail.com>
2020-09-09 17:12:35 +02:00
Juan Carlos Alfaro Jiménez 5f0a89fd97
DOC Nitpicks in the API Reference (#18356) 2020-09-07 10:26:58 -04:00
Juan Carlos Alfaro Jiménez ec02cc989e
DOC Remove signature from base and mixin classes in API Reference (#18344) 2020-09-07 10:44:56 +02:00
Guillaume Lemaitre e030010c6c
ENH Adds plot_det_curve and associated display (#18176)
Co-authored-by: Christian Lorentzen <lorentzen.ch@gmail.com>
Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>
2020-08-28 22:36:52 -04:00
Nicolas Hug 5bf37e8425
FEA Add sequential feature selection transformer (#17159)
Co-authored-by: rasbt <mail@sebastianraschka.com>
Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>
Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
2020-08-21 19:57:05 +02:00
Daniel López daebcac781
FEA Add PolynomialCountSketch to Kernel Approximation module (#13003)
* Add Tensor Sketch algorithm

* Add user guide entry

* Add example

* Add benchmark

Co-authored-by: Christian Lorentzen <lorentzen.ch@googlemail.com>
Co-authored-by: Tom Dupré la Tour <tom.dupre-la-tour@m4x.org>
Co-authored-by: Roman Yurchak <rth.yurchak@gmail.com>
2020-08-18 08:44:20 +02:00
Daniel Mohns 41d648ef88
[MRG] Add Detection Error Tradeoff (DET) curve classification metrics (#10591)
* Initial add DET curve to classification metrics

* Add DET to exports

* Fix DET-curve doctest errors

- Sample snippet in  model_evaluation documentation was outdated.

* Clarify wording in DET-curve computation

- Align to the wording of ranking module to make it consistent.
- Add correct describtion of input and outputs.
- Update and fix non-existent links

* Beautify DET curve documentation source

- Limit line length to 80 characters.

* Expand DET curve documentation

- Add an example plot to show difference between ROC and DET curves.
- Expand Usage Note section with background information and properties
of DET curves.

* Update DET-curve documentation

- Fix typos and some grammar improvements.
- Use named references to avoid potential conflicts with other sections.
- Remove unneeded references and improved existing ones by using e.g.
using versioned links.

* Select relevant DET points using slice object

* Remove some dubiety from DET curve doc-string

* Add DET curve contributors

* Add tests for DET curves

* Streamline DET test by using parametrization

* Increase verbosity of DET curve error handling

- Explicitly sanity check input before computing a DET curve.
- Add test for perfect scores.
- Adapt indentation style to match the test module.

* Add reference for DET curves in invariance test

* Add automated invariance checks for DET curves

* Resolve merge artifacts

* Make doctest happy

* Fix whitespaces for doctest

* Revert unintended whitespace changes

* Revert unintended white space changes #2

* Fix typos and grammar

* Fix white space in doc

* Streamline test code

* Remove rebase artifacts

* Fix PR link in doc

* Fix test_ranking

* Fix rebase errors

* Fix import

* Bring back newlines

- Swallowed by copy/paste

* Remove uncited ref link

* Remove matplotlib deprecation warning

* Bring back hidden reference

* Add motivation to DET example

* Fix lint

* Add citation

* Use modern matplotlib API

Co-authored-by: Jeremy Karnowski <jeremy.karnowski@gmail.com>
Co-authored-by: Julien Cornebise <julien@cornebise.com>
Co-authored-by: Daniel Mohns <daniel.mohns@zenguard.org>
2020-08-16 11:34:37 +02:00
Adrin Jalali 3a49e5f209
MNT deprecate ChangedBehaviorWarning and NonBLASDotWarning (#17804)
* deprecate ChangedBehaviorWarning and NonBLASDotWarning

* add whats_new entry
2020-07-05 22:32:08 +02:00
Ashutosh Hathidara 0ea3244061
Added mean_absolute_percentage_error in metrics fixes #10708 (#15007)
Co-authored-by: mohamed-ali <m.ali.jamaoui@gmail.com>
Co-authored-by: Alexandre Gramfort <alexandre.gramfort@m4x.org>
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
Co-authored-by: Joel Nothman <joel.nothman@gmail.com>
Co-authored-by: Roman Yurchak <rth.yurchak@pm.me>
2020-07-04 13:24:20 +02:00
Nicolas Hug a1cc566605
DOC Updated deprecation section in classes.rst (#17296) 2020-05-22 10:05:46 -04:00
Thomas J Fan 60de458095
DOC Removes uneeded __init__ in API documentation (#17243) 2020-05-18 12:40:51 +02:00
Thomas J Fan ee2508ce45
ENH Adds HTML visualizations for estimators (#14180) 2020-04-30 08:31:58 +10:00
Kevin Markham 2d25ea74fe
DOC Add link to User Guide from Pipeline section (#16829) 2020-04-02 10:56:14 -07:00
Roman Yurchak 69ea066412
ENH Minimal Generalized linear models implementation (L2 + lbfgs) (#14300)
Co-authored-by: Christian Lorentzen <lorentzen.ch@googlemail.com>
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
Co-authored-by: Nicolas Hug <contact@nicolas-hug.com>
2020-03-04 14:08:24 +01:00
Arie Pratama Sutiono c2e742c48c
API Deprecates the fit_grid_point function (#16401) 2020-02-13 22:07:06 -05:00
Adrin Jalali 2821abc76c
DOC add Bunch to public docs and API (#16404)
* add Bunch to public docs and API

* address Thomas's suggestions

* use Thomas's description
2020-02-11 15:46:27 +01:00
trimeta 856d273b9d FIX Expose SelectorMixin through sklearn/feature_selection/ (#16132) 2020-01-17 15:37:26 +01:00
Nicolas Hug ad80d3159a DEP Remove deprecated joblib tools in utils (#15792) 2019-12-06 13:59:46 +01:00
Nicolas Hug 70ae89ecb2 MNT Removed deprecated metrics (#15794) 2019-12-05 10:49:00 -05:00
Nicolas Hug 5573abbb99 MNT Removed deprecated logistic_regression_path (#15791) 2019-12-04 12:24:10 -05:00
Nicolas Hug 4cdbde3085 MNT remove deprecated ensemble.partial_dependence (#15789) 2019-12-04 12:22:56 -05:00
Thomas J Fan e650a207ef ENH Adds plot_confusion matrix (#15083) 2019-11-14 14:43:54 +01:00
Thomas J Fan 968252dfb4 FEA Adds plot_precision_recall_curve (#14936) 2019-11-10 20:54:35 -06:00
Thomas J Fan 37ac3fd125 FEA Add make_column_selector for ColumnTransformer (#12371) 2019-11-05 09:22:26 -05:00
Nicolas Hug b92455a6b2 MAINT Deprecate all of utils.testing except all_estimators (#15367) 2019-10-28 17:28:56 +01:00