scikit-learn/benchmarks
Nicolas Hug 4b6273b874 ENH Native support for missing values in GBDTs (#13911)
* Added NaN support in mapper

* pep

* WIP

* some more

* WIP

* WIP

* bug fix

* basic tests

* some doc

* avoid some interactions

* Added tag

* better test

* decent test + fix bug

* add missing_fraction param to benchmark

* bin training and validation data separately

* shorter test

* Map missing values to first bin instead of last

* pep8

* Added whats new entry

* avoid some python interactions

* make predict_binned work

* fixed bug due to offset in bin_thresholds_ attribute

* more sensible binning strat

* typo

* user name

* Add small test

* convert to fortran array in tests

* some doc

* Added function test

* pep8

* Bin validation data using binmaper of training data

* Allocate first bin for missing entries based on the whole data, not just
training data.

* Addressed Thomas' comments

* Update sklearn/ensemble/_hist_gradient_boosting/tests/test_grower.py

* Addressed Guillaume's comments

* always allocate first bin for missing values

* reduce diff

* minor more consistent test

* typo

* WIP

* some doc

* reduce diff

* pep8

* minor

* remove prints

* towards nan only splits

* don't check right to left on split_on_nan

* cleaups

* format and comment

* Fixed bug + added more tests

* refactor tests

* put back n_threads to max value

* minor changes

* minor cleaning

* Add (failing) test that checks equivalence with min max imputation

* Decrease the likelihood of ties when training the trees

* More robust test

* Fix pytest parametrization

* Check bin thresholds in test

* Try to make the test even easier to see if the Linux 32bit build would pass in this case

* Don't check last non-missing bin if there's no nan

* Improve min-max imputation test

* FIX: _find_best_bin_to_split_right_to_left is still required even when left to right wants to split on nans

* comments

* remove split_on_nan

* ooops deleted useless files

* Got rid of individual checks in predictor code

+inf thresholds are only allowed in a split on nan situation.
Thresholds that are computed as +inf are capped to a very high constant
value

* can also remove special case in binning code

* minor typos + more consistent test

* renamed types -> common

* 1e300 -> almost inf

* added user guide section on missing values

* Addressed Olivier's comment + updated whatsnew

* addressed comments

* Fix doctest formatting

* Fix nan predictive doctest
2019-08-21 11:22:00 +02:00
..
.gitignore FIX t-SNE memory usage and many other optimizer issues (#9032) 2017-07-12 22:56:02 +02:00
bench_20newsgroups.py MNT Change the default value of n_estimators in forests (#13803) 2019-05-09 21:19:20 +08:00
bench_covertype.py MAINT Remove tolerance paramter from Perceptron (#14558) 2019-08-02 16:11:46 -04:00
bench_feature_expansions.py [MRG] Fast PolynomialFeatures on CSR matrices (#12197) 2018-10-19 10:55:14 +02:00
bench_glm.py MAINT Removes total_seconds completely in benchmarks (#12969) 2019-01-13 16:41:28 +01:00
bench_glmnet.py [MRG+1] Fix: Replace pylab with matplotlib.pyplot #6754 (#6762) 2016-05-10 11:34:33 +02:00
bench_hist_gradient_boosting.py ENH Native support for missing values in GBDTs (#13911) 2019-08-21 11:22:00 +02:00
bench_hist_gradient_boosting_higgsboson.py [MRG+2] Faster Gradient Boosting Decision Trees with binned features (#12807) 2019-04-26 21:14:59 +02:00
bench_isolation_forest.py [MRG] DEP remove threshold_, change contamination, deprecate behaviour in iforest (#13811) 2019-05-22 12:41:47 +10:00
bench_isotonic.py MNT remove __future__ imports (#12791) 2019-02-02 22:05:06 +08:00
bench_lasso.py [MRG+1] Fix: Replace pylab with matplotlib.pyplot #6754 (#6762) 2016-05-10 11:34:33 +02:00
bench_lof.py DEP remove utilities related to mldata (#13798) 2019-05-21 18:37:09 +10:00
bench_mnist.py DEP remove utilities related to mldata (#13798) 2019-05-21 18:37:09 +10:00
bench_multilabel_metrics.py MNT remove __future__ imports (#12791) 2019-02-02 22:05:06 +08:00
bench_plot_fastkmeans.py MNT remove __future__ imports (#12791) 2019-02-02 22:05:06 +08:00
bench_plot_incremental_pca.py MAINT Complete 0.20 deprecations (#9570) 2018-06-24 23:06:26 +10:00
bench_plot_lasso_path.py ENH Enable the "sufficient stats" mode of LARS (#11699) 2019-03-06 08:06:47 +01:00
bench_plot_neighbors.py EXA Use return_X_y=True with load_digits where appropriate (#14359) 2019-07-14 17:10:54 +02:00
bench_plot_nmf.py MAINT simplify check_is_fitted to use any fitted attributes (#14545) 2019-08-13 22:09:07 +02:00
bench_plot_omp_lars.py ENH Enable the "sufficient stats" mode of LARS (#11699) 2019-03-06 08:06:47 +01:00
bench_plot_parallel_pairwise.py Fixed pep8 errors 2016-06-10 18:30:26 -04:00
bench_plot_randomized_svd.py DEP remove utilities related to mldata (#13798) 2019-05-21 18:37:09 +10:00
bench_plot_svd.py API Deprecate externals.six (#12916) 2019-01-27 19:16:42 +11:00
bench_plot_ward.py [MRG+1] Fix: Replace pylab with matplotlib.pyplot #6754 (#6762) 2016-05-10 11:34:33 +02:00
bench_random_projections.py MNT remove __future__ imports (#12791) 2019-02-02 22:05:06 +08:00
bench_rcv1_logreg_convergence.py FIX make joblib utils private, and remove mentions of externals.joblib (#12345) 2018-11-20 10:53:52 +11:00
bench_saga.py EXA Use return_X_y=True with load_digits where appropriate (#14359) 2019-07-14 17:10:54 +02:00
bench_sample_without_replacement.py MAINT Run pyupgrade following Python2 deprecation (#12997) 2019-02-08 20:13:34 +08:00
bench_sgd_regression.py Deprecate n_iter in SGDClassifier and implement max_iter (#5036) 2017-06-23 21:49:29 +02:00
bench_sparsify.py CLN remove redundant default parameters in examples and tests (#14590) 2019-08-07 10:38:41 -07:00
bench_text_vectorizers.py MNT remove __future__ imports (#12791) 2019-02-02 22:05:06 +08:00
bench_tree.py [MRG+1] Fix: Replace pylab with matplotlib.pyplot #6754 (#6762) 2016-05-10 11:34:33 +02:00
bench_tsne_mnist.py DEP remove utilities related to mldata (#13798) 2019-05-21 18:37:09 +10:00
plot_tsne_mnist.py FIX t-SNE memory usage and many other optimizer issues (#9032) 2017-07-12 22:56:02 +02:00