Commit Graph

133 Commits

Author SHA1 Message Date
Chloe-Agathe Azencott babc517f7a
Fixed sklearn.model_selection._split.check_cv docstring in #21350 (#22778) 2022-03-12 15:21:41 +01:00
Olivier Grisel 2571cb2989
Improve validation messages with infinite data (#21219)
* Improve validation messages with infinite data

* Extend and fix validation tests

* Test and fix extended error message

* data_name => input_name

* Mention estimators that natively support missing values

* More informative error message

* cosmetic

* typo

* Fix broken tests

* Fix test_knn

* Add changelog entry

* Fix broken test for param search models

* Missing input names

* Allow Y and y in estimator checks

* Add missing input names

* Fix input_name for FunctionTransformer

* More missing input names

* Update test

* More test fixes on scores

* Simplify message to avoid to make generic fallback meaningful

Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>

* More informative estimator checks failure messages

* Make sure the estimator name is passed correctly in _validate_data

* Simplify calls to _validate_data

* Handle estimator name in private _check_y helper

* More specific error message

* Add estimator to check_X_params and check_y_params

* Add .. versionadded flags in public docstrings

* Update changelog

* Improve _validate_data's docstring

* Typo in doc/whats_new/v1.1.rst

* Make _check_estimator_name return None if estimator == None

Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>

* check_params dict updates with style

* Increase test coverage

Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>
2021-10-29 15:59:57 +02:00
Arisa 4c9bf8bbae
DOC Ensures that train_test_split passes numpydoc validation (#21435) 2021-10-23 22:34:11 +02:00
genvalen 642127806a
DOC use backticks for n_samples and n_features in X docstring (#20914) 2021-09-02 13:35:03 +02:00
Thomas J. Fan 3ae7c76153
STY Enables black with experimental_string_processing=true (#20412) 2021-06-29 09:47:04 +02:00
Thomas J. Fan 82df48934e
MNT Applies black formatting to most of the code base (#18948) 2021-06-17 14:21:09 -04:00
Tom Dupré la Tour f6e6ad2d9e
MNT clean futurewarning for 1.0 | _deprecate_positional_args (#20002)
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>
2021-05-14 11:30:27 -04: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
Christoph Deil edc48e1383
DOC Fix docstring RST formatting in TimeSeriesSplit (#18816) 2020-11-11 21:31:00 -05:00
Kiril Isakov 35b3195958
DOC add link to stratification UG for train_test_split (#18735) 2020-11-10 16:11:05 +00:00
Nicolas Hug e2583d45f7
DOC put back original anchor to avoid breaking links (#18551) 2020-10-06 23:45:16 -04:00
Albert Villanova del Moral 547ed6b182
DOC Improve links in cross_validation's user guide (#18379) 2020-09-24 11:19:09 -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
Albert Villanova del Moral 647fcb1ac1
DOC Fix A to uppercase in See Also docstring section (#18332) 2020-09-04 10:35:01 -04:00
Albert Villanova del Moral 875d32fe55
DOC Fix versionadded/versionchanged for 0.24 (#18312) 2020-09-01 10:51:01 +02:00
Frans Larsson c6579afdc4
DOC add None as valid option to random_state in model_selection module (#18232) 2020-08-22 17:32:36 +02:00
Thomas J. Fan 7cc0177f8e
MNT Replaces numpy alias with builtin typse (#17687)
* MNT Replaces numpy alias with builtin typse

* STY Lint error
2020-06-24 16:51:51 +02:00
Nicolas Hug ac8cbb3799
[MRG] More deprecation for 0.24 (#17142)
* normalize_components in sparsePCA

* changed default strategy of Dummy to prior and removed outputs_2d ttribute

* removed usage of None to drop estimator in ensemble and behaviour param of IsolationForest

* remove support for drop=None in Voting

* removed some warning decorators

* remove feature_extraction.extract_patches

* removed VectorizerMixin and copy parameter from TFIDFVectorizer

* kernel.set_params now raises attributeerror

* removed fig from plot_partial_dependence

* removed iid parameter of search estimators

* removed brier_scorer

* raise error in split when shuffle is False and random_state is not None

* removed MultiOutputEstimator

* removed base classes of NaiveBayes

* removed drop from pipeline

* removed utils in random_projection

* removed presort and classes_ in trees

* flake8

* fixed some tests

* flake

* fixed docstring

* fixed other one

* some left

* mmmm
2020-05-20 16:04:14 -04:00
Hugo Le Moine 8abe0a822e
MNT Replaced kwargs by named args for train_test_split (#17216) 2020-05-14 09:21:01 -04:00
Kyle Kosic b4e215c01c
FEA Additional `TimeSeriesSplit` Functionality (#13204)
Co-authored-by: Kyle Kosic <kylekosic@Kyles-MacBook-Pro.local>
Co-authored-by: Thomas J Fan <thomasjpfan@gmail.com>
2020-05-11 21:48:01 -04:00
brigi dbc35934a6
DOC Version added and changed labels added for v0.18 (#wimlds) (#16222)
* Versionlabels added to v0.18 (#wimlds)

* documentation issues: label changed and added for version 0.18

* fix intends and shorten description

Co-authored-by: Hannah <32333241+hhnnhh@users.noreply.github.com>
Co-authored-by: Brigitte@home <unger@nue.tu-berlin.de>
2020-04-27 18:43:47 -04:00
Adrin Jalali 02309ffbda
API kwonly args in manifold, metrics, mixture, model_selection, multclass, multioutput (#16982) 2020-04-24 17:24:24 -04:00
Roman Yurchak 5a4340834d
Fix mypy errors (#16726) 2020-03-30 15:41:05 +02:00
Roman Yurchak 75d3f29e72
MAINT Remove outdated numpy and scipy backports (#16725)
* Remove unecessary numpy & scipy backports

* More fixes

* Remove unused imports
2020-03-20 13:57:18 +01:00
Edward Qian 0904058399
DOC improve random state docstring in model_selection/split (#15575) 2020-02-11 18:17:49 +01:00
Marielle d67647fcac DOC improve docstring following doc guideline in model_selection module (#16207) 2020-01-27 22:27:54 +01:00
Qizhi Jiang e3ee768a0c DOC Docstring improvements to confusion_matrix and splitters (#16072) 2020-01-11 18:42:10 +01:00
Madhura Jayaratne 1c422ca736 DOC Update docs to indicate shuffle=True still maintains sample order within each split (#16085) 2020-01-10 14:03:58 +11:00
Reshama Shaikh cc8d2d26b8 DOC add versionadded directive to some estimators (#15849) 2019-12-19 14:07:03 +01:00
Hanmin Qin 64750e561b DOC correct indents in docstring _split.py (#15843) 2019-12-10 14:46:57 +01:00
edvardlindelof 51edab8201 DOC clarify StratifiedShuffleSplit supports 2d y (#15456) 2019-11-02 15:31:40 -04:00
Nicolas Hug 19ad136223 MNT Replace DeprecationWarning with FutureWarning (#15080)
* bruteforce renaming

* WIP

* WIP

* some more

* removed weird line

* update -Werror

* testiforest

* again

* Fixed some tests

* fixed some tests

* removed -Werror

* fixed test_docstring_param issue

* fixed some tests

* some more

* renamed to SklearnDeprecationWarning

* pep8

* updated docs

* pep8

* merge

* changed to FutureWarning

* fixes

* Update doc/developers/tips.rst

Co-Authored-By: Adrin Jalali <adrin.jalali@gmail.com>

* avoid duplicates

* fixed warning for deprecations

* Still make CI break if DeprecationWarning isn't caught

* updated one warning

* fixed test

* fixed some renamings

* updated new dep warnings

* fixed bad import

* ignore warnings

* update again

* ignore futurewarning when walking packages

* Fixed test

* pep8

* Added whatsnew
2019-10-29 15:39:26 +01:00
Nicolas Hug 7effc37174
MNT Warn when shuffle is False but random_state is not None (#15353) 2019-10-24 16:33:12 -04:00
Nicolas Hug 96c988cdde
MNT Make safe_indexing private (#15104) 2019-10-02 11:47:46 -04:00
DrGFreeman ca9ceba558 FIX implement repr for RepeatedKFold and RepeatedStratifiedKFold (#14983) 2019-09-16 13:58:02 +02:00
Jesper Dramsch b99f4541d6 DOC Add example for GroupShuffleSplit (#14906) 2019-09-13 14:29:20 -04:00
Joel Nothman 3de368d405 FIX reimplement StratifiedKFold to avoid variation in test size (#14704) 2019-08-24 20:48:05 +08:00
Owen Flanagan cd20f1a5ba DOC Correct description of test_size in GroupShuffleSplit (#13441) 2019-08-11 20:27:10 +10:00
wolframalpha e90f11640f DOC fix in docstring of LeavePOut (#14517) 2019-07-30 15:26:11 +02:00
Roman Yurchak 2fc3a85b3f MAINT Use isinstance(x, numbers.Integral) to check for integer dtype (#14004) 2019-06-12 19:24:59 -04:00
Thomas J Fan 2e7e06b78f [MRG] Doctest with print change only adjusts default options for doctest (#13991) 2019-06-01 10:53:45 +02:00
Guillaume Lemaitre 9adba491a2 [MRG] DEP change the default of cv and n_splits (#13839) 2019-05-29 23:39:20 +10:00
Joel Nothman f3a6a1a6c8 TST avoid nose collecting train_test_split as a test (#13951) 2019-05-26 22:25:01 +03:00
Stephen Cowley 612a04e4e4 DOC Fix more formatting inconsistencies (#13787) 2019-05-05 22:05:58 +08:00
Nicolas Hug 14bdb9d7a8 FEA Add a stratify option to utils.resample (#13549) 2019-04-24 23:16:38 +02:00
jeremiedbb 358c6922f6 API/MNT Update default test_size of ShuffleSplit for 0.21 (#13483)
completing deprecation
2019-03-26 09:33:19 +11:00
Nicolas Hug 2718d6212f ENH Raise ValueError when trainset is empty in CVSplitters (#12861) 2019-03-22 23:04:10 -04:00
Owen Flanagan f4e5224500 DOC parameter applies to groups not samples. (#13414) 2019-03-12 22:43:30 +11:00
Andreas Mueller d879b5cdbe MNT be more friendly in the deprecation warning of cv=3 (#13395)
* be more friendly in the deprecation of cv=3

* add hint on specifying cv

* catch all the right warnings
2019-03-05 19:28:34 +01:00
Hanmin Qin afc6cc58da FIX Shuffle each class's samples with different random_state in StratifiedKFold (#13124)
* Enable StratifiedKFold to produce different splits

* what's new

* redundant statement

* update what's new

* redundant comment

* add a test

* move what's new entry

* review comment

* review comment
2019-02-27 14:31:21 +01:00