Jiaming Yuan
ee8d1f5ed8
Fix histogram truncation. ( #7181 )
...
* Fix truncation.
* Lint.
* lint.
2021-08-24 18:34:32 -07:00
Jiaming Yuan
bf562bd33c
Remove unused code. ( #7175 )
2021-08-18 14:02:19 +08:00
Jiaming Yuan
149f209af6
Extract histogram builder from CPU Hist. ( #7152 )
...
* Extract the CPU histogram builder.
* Fix tests.
* Reduce number of histograms being built.
2021-08-09 21:15:21 +08:00
Robert Maynard
1a75f43304
Allow compilation with nvcc 11.4 ( #7131 )
...
* Use type aliases for discard iterators
* update to include host_vector as thrust 1.12 doesn't bring it in as a side-effect
* cub::DispatchRadixSort requires signed offset types
2021-07-27 20:05:33 +08:00
ShvetsKS and SHVETS, KIRILL
caa9e527dd
Remove extra sync for dense data ( #7120 )
...
Co-authored-by: SHVETS, KIRILL <kirill.shvets@intel.com >
2021-07-22 19:02:31 +08:00
Jiaming Yuan
e6088366df
Export Python Interface for external memory. ( #7070 )
...
* Add Python iterator interface.
* Add tests.
* Add demo.
* Add documents.
* Handle empty dataset.
2021-07-22 15:15:53 +08:00
Jiaming Yuan
bd1f3a38f0
Rewrite sparse dmatrix using callbacks. ( #7092 )
...
- Reduce dependency on dmlc parsers and provide an interface for users to load data by themselves.
- Remove use of threaded iterator and IO queue.
- Remove `page_size`.
- Make sure the number of pages in memory is bounded.
- Make sure the cache can not be violated.
- Provide an interface for internal algorithms to process data asynchronously.
2021-07-16 12:33:31 +08:00
Jiaming Yuan
689eb8f620
Check external memory support for exact tree method. ( #7088 )
2021-07-08 02:12:57 +08:00
Jiaming Yuan
615ab2b03e
Extract evaluate splits from CPU hist. ( #7079 )
...
Other than modularizing the split evaluation function, this PR also removes some more functions including `InitNewNodes` and `BuildNodeStats` among some other unused variables. Also, scattered code like setting leaf weights is grouped into the split evaluator and `NodeEntry` is simplified and made private. Another subtle difference with the original implementation is that the modified code doesn't call `tree[nidx].Parent()` to traversal upward.
2021-07-07 15:16:25 +08:00
Jiaming Yuan
1cd20efe68
Move GHistIndex into DMatrix. ( #7064 )
2021-07-01 00:44:49 +08:00
Jiaming Yuan
1c8fdf2218
Remove use of device_idx in dh::LaunchN. ( #7063 )
...
It's an unused parameter, removing it can make the CI log more readable.
2021-06-29 11:37:26 +08:00
Jiaming Yuan
8fa32fdda2
Implement categorical data support for SHAP. ( #7053 )
...
* Add CPU implementation.
* Update GPUTreeSHAP.
* Add GPU implementation by defining custom split condition.
2021-06-25 19:02:46 +08:00
Jiaming Yuan
bbfffb444d
Fix race condition in CPU shap. ( #7050 )
2021-06-21 10:03:15 +08:00
Jiaming Yuan
29f8fd6fee
Support categorical split in tree model dump. ( #7036 )
2021-06-18 16:46:20 +08:00
ShvetsKS and Kirill Shvets
2567404ab6
Simplify sparse and dense CPU hist kernels ( #7029 )
...
* Simplify sparse and dense kernels
* Extract row partitioner.
Co-authored-by: Kirill Shvets <kirill.shvets@intel.com >
2021-06-11 18:26:30 +08:00
Jiaming Yuan
b56614e9b8
[R] Use new predict function. ( #6819 )
...
* Call new C prediction API.
* Add `strict_shape`.
* Add `iterationrange`.
* Update document.
2021-06-11 13:03:29 +08:00
Jiaming Yuan and Shvets Kirill
f79cc4a7a4
Implement categorical prediction for CPU and GPU predict leaf. ( #7001 )
...
* Categorical prediction with CPU predictor and GPU predict leaf.
* Implement categorical prediction for CPU prediction.
* Implement categorical prediction for GPU predict leaf.
* Refactor the prediction functions to have a unified get next node function.
Co-authored-by: Shvets Kirill <kirill.shvets@intel.com >
2021-06-11 10:11:45 +08:00
ShvetsKS and Kirill Shvets
5cdaac00c1
Remove feature grouping ( #7018 )
...
Co-authored-by: Kirill Shvets <kirill.shvets@intel.com >
2021-06-03 04:35:26 +08:00
ShvetsKS and Kirill Shvets
57c732655e
Merge lossgude and depthwise strategies for CPU hist ( #7007 )
...
* fix java/scala test: max depth is also valid parameter for lossguide
Co-authored-by: Kirill Shvets <kirill.shvets@intel.com >
2021-06-03 01:49:43 +08:00
ShvetsKS and Kirill Shvets
55b823b27d
Reduce 'InitSampling' complexity and set gradients to zero ( #6922 )
...
Co-authored-by: Kirill Shvets <kirill.shvets@intel.com >
2021-05-29 04:52:23 +08:00
Andrew Ziem and fis
3e7e426b36
Fix spelling in documents ( #6948 )
...
* Update roxygen2 doc.
Co-authored-by: fis <jm.yuan@outlook.com >
2021-05-11 20:44:36 +08:00
Jiaming Yuan
556a83022d
Implement unified update prediction cache for (gpu_)hist. ( #6860 )
...
* Implement utilites for linalg.
* Unify the update prediction cache functions.
* Implement update prediction cache for multi-class gpu hist.
2021-04-17 00:29:34 +08:00
Jiaming Yuan
bcc0277338
Re-implement ROC-AUC. ( #6747 )
...
* Re-implement ROC-AUC.
* Binary
* MultiClass
* LTR
* Add documents.
This PR resolves a few issues:
- Define a value when the dataset is invalid, which can happen if there's an
empty dataset, or when the dataset contains only positive or negative values.
- Define ROC-AUC for multi-class classification.
- Define weighted average value for distributed setting.
- A correct implementation for learning to rank task. Previous
implementation is just binary classification with averaging across groups,
which doesn't measure ordered learning to rank.
2021-03-20 16:52:40 +08:00
Philip Hyunsu Cho
4230dcb614
Re-introduce double buffer in UpdatePosition, to fix perf regression in gpu_hist ( #6757 )
...
* Revert "gpu_hist performance tweaks (#5707 )"
This reverts commit f779980f7e .
* Address reviewer's comment
* Fix build error
2021-03-18 13:56:10 -07:00
Jiaming Yuan
4f75f514ce
Fix GPU RF ( #6755 )
...
* Fix sampling.
2021-03-17 06:23:35 +08:00
Igor Rukhovich
19a2c54265
Prediction by indices (subsample < 1) ( #6683 )
...
* Another implementation of predicting by indices
* Fixed omp parallel_for variable type
* Removed SparsePageView from Updater
2021-03-16 15:08:20 +13:00
Jiaming Yuan
9da2287ab8
[breaking] Save booster feature info in JSON, remove feature name generation. ( #6605 )
...
* Save feature info in booster in JSON model.
* [breaking] Remove automatic feature name generation in `DMatrix`.
This PR is to enable reliable feature validation in Python package.
2021-02-25 18:54:16 +08:00
Louis Desreumaux
9b530e5697
Improve OpenMP exception handling ( #6680 )
2021-02-25 13:56:16 +08:00
ShvetsKS and Kirill Shvets
7f4d3a91b9
Multiclass prediction caching for CPU Hist ( #6550 )
...
Co-authored-by: Kirill Shvets <kirill.shvets@intel.com >
2021-01-13 04:42:07 +08:00
Jiaming Yuan
f2f7dd87b8
Use view for SparsePage exclusively. ( #6590 )
2021-01-11 18:04:55 +08:00
Igor Rukhovich
5c8ccf4455
Improved InitSampling function speed by 2.12 times ( #6410 )
...
* Improved InitSampling function speed by 2.12 times
* Added explicit conversion
2020-12-15 20:59:24 -08:00
ShvetsKS and ShvetsKS
956beead70
Thread local memory allocation for BuildHist ( #6358 )
...
* thread mem locality
* fix apply
* cleanup
* fix lint
* fix tests
* simple try
* fix
* fix
* apply comments
* fix comments
* fix
* apply simple comment
Co-authored-by: ShvetsKS <kirill.shvets@intel.com >
2020-11-25 17:50:12 +03:00
Jiaming Yuan
44a9d69efb
Small cleanup to evaluator. ( #6400 )
2020-11-20 09:33:51 +08:00
Jiaming Yuan
d711d648cb
Fix label errors in graph visualization ( #6369 )
2020-11-11 17:44:59 -08:00
Igor Moura
5e1e972aea
Clean up warnings ( #6325 )
2020-10-30 23:50:29 +08:00
Sergio Gavilán and Hyunsu Cho
b181a88f9f
Reduced some C++ compiler warnings ( #6197 )
...
* Removed some warnings
* Rebase with master
* Solved C++ Google Tests errors made by refactoring in order to remove warnings
* Undo renaming path -> path_
* Fix style check
Co-authored-by: Hyunsu Cho <chohyu01@cs.washington.edu >
2020-10-29 12:36:00 -07:00
vcarpani and Hyunsu Cho
671971e12e
Compiler warnings ( #6286 )
...
* Fix warnings for json.h
* Fix warnings for metric.h
* Fix warnings for updater_quantile_hist.cc.
* Fix warnings for updater_histmaker.cc.
Co-authored-by: Hyunsu Cho <chohyu01@cs.washington.edu >
2020-10-28 13:46:15 -07:00
Igor Moura
d1254808d5
Clean up C++ warnings ( #6213 )
2020-10-19 23:02:33 +08:00
Jiaming Yuan
bed7ae4083
Loop over thrust::reduce. ( #6229 )
...
* Check input chunk size of dqdm.
* Add doc for current limitation.
2020-10-14 10:40:56 +13:00
Jiaming Yuan
b5b24354b8
More categorical tests and disable shap sparse test. ( #6219 )
...
* Fix tree load with 32 category.
2020-10-10 16:12:37 +08:00
Jiaming Yuan
70ce5216b5
Add high level tests for categorical data. ( #6179 )
...
* Fix unique.
2020-10-09 09:27:23 +08:00
vcarpani and Hyunsu Cho
6bc9747df5
Reduce compile warnings ( #6198 )
...
Co-authored-by: Hyunsu Cho <chohyu01@cs.washington.edu >
2020-10-08 23:14:59 +08:00
ShvetsKS and ShvetsKS
a4ce0eae43
CPU predict performance improvement ( #6127 )
...
Co-authored-by: ShvetsKS <kirill.shvets@intel.com >
2020-10-08 15:50:21 +03:00
Jiaming Yuan
444131a2e6
Add categorical data support to GPU Hist. ( #6164 )
2020-09-29 11:27:25 +08:00
Jiaming Yuan
7065779afa
Improve JSON format for categorical features. ( #6128 )
...
* Gather categories for all nodes.
2020-09-21 15:35:05 +08:00
Philip Hyunsu Cho
9e955fb9b0
[R] Check warnings explicitly for model compatibility tests ( #6114 )
...
* [R] Check warnings explicitly for model compatibility tests
* Address reviewer's feedback
2020-09-15 10:49:48 -07:00
Jiaming Yuan
e5d40b39cd
[Breaking] Don't save leaf child count in JSON. ( #6094 )
...
The field is deprecated and not used anywhere in XGBoost.
2020-09-08 11:11:13 +08:00
Jiaming Yuan
2fcc4f2886
Unify evaluation functions. ( #6037 )
2020-08-26 14:23:27 +08:00
Jiaming Yuan
80c8547147
Make binary bin search reusable. ( #6058 )
...
* Move binary search row to hist util.
* Remove dead code.
2020-08-26 05:05:11 +08:00
Jiaming Yuan and Philip Hyunsu Cho
20c95be625
Expand categorical node. ( #6028 )
...
Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu >
2020-08-25 18:53:57 +08:00