* Extended explanation of using class_weight in RandomForestClassifier
* Extended explanation of using class_weight in DecisionTreeClassifier,ExtraTreesClassifier and compute_sample_weight()
* Rephrased description.
* Rephrased description (remove "indicator")
* Added note to trees and random forests to warn users about the default parameters for controlling tree sizes.
* Rephrased tree size warning.
* Rephrased tree warnings again.
* Added note to ExtraTree* algorithms.
* remove stuff to be removed 0.19
* more changes
* remove classes from 0.19 whatsnew
* remove _LearntSelectorMixin
* remove ProjectedGradientNMF, load_lwf_*
* minor fixes
* remove more copy from logistic regression path
* remove lda, qda from __init__.__all__
* remove pg solver in nmf from tests etc
* remove class_weight="auto" from tests
* doctest change for decision_function_shape="ovr"
* remove transfrom from tree test, minor fixes to tree tests
* some fixes in the tests
* undo changes in functions which still allow 1d input...
* also allow 1d in scale
* more test fixes...
* last test fixes in forest and tree
* svm default value change doctest failures
* pep8
* remove more class_weight="auto" stuff
* minor cosmetics in docstrings deprecated / removed behavior.
* say that store_covariance has been moved to __init__ in discriminant_analysis
* DOC adding separate fit() functions
* DOC adding keywords to arguments of super()
* DOC removing trailing whitespaces
* DOC specifying the type of class labels
* DOC removing docstring from BaseDecisionTree.fit
* fix min_weight_fraction_leaf when sample_weights is None
* fix flake8 error
* remove added newline and unnecessary assignment
* remove max bc it's implemented in cython and add interaction test
* edit weight calculation formula and add test to check equality
* remove test that sees if two parameter build the same tree
* reword min_weight_fraction_leaf docstring
* clarify uniform weight in forest docstrings
* update docstrings for all classes
* add what's new entry
* move whatsnew entry to bug fixes and explain previous behavior
* insert versionadded versionchanged directives in docstrings for 0.18
indicate where exception classes were moved from
* moved versionadded in the proper places
* add versionadded tags to min_impurity_split docstrings
* adjust positioning of versionadded tags
* remove spurious comment used to force recythonization
* feature: add beta-threshold early stopping for decision tree growth
* check if value of beta is greater than or equal to 0
* test if default value of beta is 0 and edit input validation error message
* feature: separately validate beta for reg. and clf., and add tests for it
* feature: add beta to forest-based ensemble methods
* feature: add separate condition to determine that beta is float
* feature: add beta to gradient boosting estimators
* rename parameter to min_impurity_split, edit input validation and associated tests
* chore: fix spacing in forest and force recompilation of grad boosting extension
* remove trivial comment in grad boost and add whats new
* edit wording in test comment / rebuild
* rename constant with the same name as our parameter
* edit line length for what's new
* remove constant and set min_impurity_split to 1e-7 by default
* fix docstrings for new default
* fix defaults in gradientboosting and forest classes
* feature: add initial node_value method
* testing code for node_impurity and node_value
This code runs into 'Bus Error: 10' at node_value final assignment.
* fix: node_value now correctly calculating weighted median for sorted data.
Still need to change the code to work with unsorted data.
* fix: node_value now correctly calculates median regardless of initial order
* fix: correct bug in calculating median when taking midpoint is necessary
* feature: add initial version of children_impurity
* feature: refactor median calculation into one function
* fix: fix use of DOUBLE_t vs double
* feature: move helper functions to _utils.pyx, fix mismatched pointer type
* fix: fix some bugs in children_impurity method
* push a debug version to try to solve segfault
* push latest changes, segfault probably happening bc of something in _utils.pyx
* fix: fix segfault in median calculation and remove excessive logging
* chore: revert some misc spacing changes I accidentally made
* chore: one last spacing fix in _splitter.pyx
* feature: don't calculate weighted median if no weights are passed in
* remove extraneous logging statement
* fix: fix children impurity calculation
* fix: fix bug with children impurity not being initally set to 0
* fix: hacky fix for a float accuracy error
* fix: incorrect type cast in median array generation for node_impurity
* slightly tweak node_impurity function
* fix: be more explicit with casts
* feature: revert cosmetic changes and free temporary arrays
* fix: only free weight array in median calcuation if it was created
* style: remove extraneous newline / trigger CI build
* style: remove extraneous 0 from range
* feature: save sorts within a node to speed it up
* fix: move parts of dealloc to regression criterion
* chore: add comment to splitter to try to force recythonizing
* chore: add comment to _tree.pyx to try to force recythonizing
* chore: add empty comment to gradient boosting to force recythonizing
* fix: fix bug in weighted median
* try moving sorted values to a class variable
* feature: refactor criterion to sort once initially, then draw all samples from this sorted data
* style: remove extraneous parens from if condition
* implement median-heap method for calculating impurity
* style: remove extra line
* style: fix inadvertent cosmetic changes; i'll address some of these in a separate PR
* feature: change minmaxheap to internally use sorted arrays
* refactored MAE and push to share work
* fix errors wrt median insertion case
* spurious comment to force recythonization
* general code cleanup
* fix typo in _tree.pyx
* removed some extraneous comments
* [ci skip] remove earlier microchanges
* [ci skip] remove change to priorityheap
* [ci skip] fix indentation
* [ci skip] fix class-specific issues with heaps
* [ci skip] restore a newline
* [ci skip] remove microchange to refactor later
* reword a comment
* remove heapify methods from queue class
* doc: update docstrings for dt, rf, and et regressors
* doc: revert incorrect spacing to shorten diff
* convert get_median to return value directly
* [ci skip] remove accidental whitespace
* remove extraneous unpacking of values
* style: misc changes to identifiers
* add docstrings and more informative variable identifiers
* [ci skip] add trivial comments to recythonize
* remove trivial comments for recythonizing
* force recythonization for real this time
* remove trivial comments for recythonization
* rfc: harmonize arg. names and remove unnecessary checks
* convert allocations to safe_realloc
* fix bug in weighted case and add tests for MAE
* change all medians to DOUBLE_t
* add loginc allocate mediancalculators once, and reset otherwise
* misc style fixes
* modify cinit of regressioncriterion to take n_samples
* add MAE formula and force rebuild bc. travis was down
* add criterion parameter to gradient boosting and add forest tests
* add entries to what's new
--------------------
* ENH Reogranize classes/fn from grid_search into search.py
* ENH Reogranize classes/fn from cross_validation into split.py
* ENH Reogranize cls/fn from cross_validation/learning_curve into validate.py
* MAINT Merge _check_cv into check_cv inside the model_selection module
* MAINT Update all the imports to point to the model_selection module
* FIX use iter_cv to iterate throught the new style/old style cv objs
* TST Add tests for the new model_selection members
* ENH Wrap the old-style cv obj/iterables instead of using iter_cv
* ENH Use scipy's binomial coefficient function comb for calucation of nCk
* ENH Few enhancements to the split module
* ENH Improve check_cv input validation and docstring
* MAINT _get_test_folds(X, y, labels) --> _get_test_folds(labels)
* TST if 1d arrays for X introduce any errors
* ENH use 1d X arrays for all tests;
* ENH X_10 --> X (global var)
Minor
-----
* ENH _PartitionIterator --> _BaseCrossValidator;
* ENH CVIterator --> CVIterableWrapper
* TST Import the old SKF locally
* FIX/TST Clean up the split module's tests.
* DOC Improve documentation of the cv parameter
* COSMIT consistently hyphenate cross-validation/cross-validator
* TST Calculate n_samples from X
* COSMIT Use separate lines for each import.
* COSMIT cross_validation_generator --> cross_validator
Commits merged manually
-----------------------
* FIX Document the random_state attribute in RandomSearchCV
* MAINT Use check_cv instead of _check_cv
* ENH refactor OVO decision function, use it in SVC for sklearn-like
decision_function shape
* FIX avoid memory cost when sampling from large parameter grids
ENH Major to Minor incremental enhancements to the model_selection
Squashed commit messages - (For reference)
Major
-----
* ENH p --> n_labels
* FIX *ShuffleSplit: all float/invalid type errors at init and int error at split
* FIX make PredefinedSplit accept test_folds in constructor; Cleanup docstrings
* ENH+TST KFold: make rng to be generated at every split call for reproducibility
* FIX/MAINT KFold: make shuffle a public attr
* FIX Make CVIterableWrapper private.
* FIX reuse len_cv instead of recalculating it
* FIX Prevent adding *SearchCV estimators from the old grid_search module
* re-FIX In all_estimators: the sorting to use only the 1st item (name)
To avoid collision between the old and the new GridSearch classes.
* FIX test_validate.py: Use 2D X (1D X is being detected as a single sample)
* MAINT validate.py --> validation.py
* MAINT make the submodules private
* MAINT Support old cv/gs/lc until 0.19
* FIX/MAINT n_splits --> get_n_splits
* FIX/TST test_logistic.py/test_ovr_multinomial_iris:
pass predefined folds as an iterable
* MAINT expose BaseCrossValidator
* Update the model_selection module with changes from master
- From #5161
- - MAINT remove redundant p variable
- - Add check for sparse prediction in cross_val_predict
- From #5201 - DOC improve random_state param doc
- From #5190 - LabelKFold and test
- From #4583 - LabelShuffleSplit and tests
- From #5300 - shuffle the `labels` not the `indxs` in LabelKFold + tests
- From #5378 - Make the GridSearchCV docs more accurate.
- From #5458 - Remove shuffle from LabelKFold
- From #5466(#4270) - Gaussian Process by Jan Metzen
- From #4826 - Move custom error / warnings into sklearn.exception
Minor
-----
* ENH Make the KFold shuffling test stronger
* FIX/DOC Use the higher level model_selection module as ref
* DOC in check_cv "y : array-like, optional"
* DOC a supervised learning problem --> supervised learning problems
* DOC cross-validators --> cross-validation strategies
* DOC Correct Olivier Grisel's name ;)
* MINOR/FIX cv_indices --> kfold
* FIX/DOC Align the 'See also' section of the new KFold, LeaveOneOut
* TST/FIX imports on separate lines
* FIX use __class__ instead of classmethod
* TST/FIX import directly from model_selection
* COSMIT Relocate the random_state documentation
* COSMIT remove pass
* MAINT Remove deprecation warnings from old tests
* FIX correct import at test_split
* FIX/MAINT Move P_sparse, X, y defns to top; rm unused W_sparse, X_sparse
* FIX random state to avoid doctest failure
* TST n_splits and split wrapping of _CVIterableWrapper
* FIX/MAINT Use multilabel indicator matrix directly
* TST/DOC clarify why we conflate classes 0 and 1
* DOC add comment that this was taken from BaseEstimator
* FIX use of labels is not needed in stratified k fold
* Fix cross_validation reference
* Fix the labels param doc
FIX/DOC/MAINT Addressing the review comments by Arnaud and Andy
COSMIT Sort the members alphabetically
COSMIT len_cv --> n_splits
COSMIT Merge 2 if; FIX Use kwargs
DOC Add my name to the authors :D
DOC make labels parameter consistent
FIX Remove hack for boolean indices; + COSMIT idx --> indices; DOC Add Returns
COSMIT preds --> predictions
DOC Add Returns and neatly arrange X, y, labels
FIX idx(s)/ind(s)--> indice(s)
COSMIT Merge if and else to elif
COSMIT n --> n_samples
COSMIT Use bincount only once
COSMIT cls --> class_i / class_i (ith class indices) -->
perm_indices_class_i
FIX/ENH/TST Addressing the final reviews
COSMIT c --> count
FIX/TST make check_cv raise ValueError for string cv value
TST nested cv (gs inside cross_val_score) works for diff cvs
FIX/ENH Raise ValueError when labels is None for label based cvs;
TST if labels is being passed correctly to the cv and that the
ValueError is being propagated to the cross_val_score/predict and grid
search
FIX pass labels to cross_val_score
FIX use make_classification
DOC Add Returns; COSMIT Remove scaffolding
TST add a test to check the _build_repr helper
REVERT the old GS/RS should also be tested by the common tests.
ENH Add a tuple of all/label based CVS
FIX raise VE even at get_n_splits if labels is None
FIX Fabian's comments
PEP8