Jiaming Yuan
c766f143ab
Refactor external memory formats. ( #7089 )
...
* Save base_rowid.
* Return write size.
* Remove unused function.
2021-07-08 04:04:51 +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
f937f514aa
Remove lz4 compression with external memory. ( #7076 )
2021-07-06 14:46:43 +08:00
Jiaming Yuan
116d711815
Make SimpleDMatrix ctor reusable. ( #7075 )
2021-07-06 13:38:24 +08:00
Jiaming Yuan
d7e1fa7664
Fix feature names and types in output model slice. ( #7078 )
2021-07-06 11:47:49 +08:00
Jiaming Yuan
ffa66aace0
Persist data in dask test. ( #7077 )
2021-07-06 11:47:17 +08:00
Jiaming Yuan
b56d3d5d5c
Fix with latest panda range index. ( #7074 )
2021-07-03 16:43:52 +08:00
Jiaming Yuan
93f3acdef9
Fix with latest pylint. ( #7071 )
2021-07-02 21:26:00 +08:00
Jiaming Yuan
a5d222fcdb
Handle categorical split in model histogram and dataframe. ( #7065 )
...
* Error on get_split_value_histogram when feature is categorical
* Add a category column to output dataframe
2021-07-02 13:10:36 +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 and Philip Hyunsu Cho
663136aa08
Implement feature score for linear model. ( #7048 )
...
* Add feature score support for linear model.
* Port R interface to the new implementation.
* Add linear model support in Python.
Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu >
2021-06-25 14:34:02 +08:00
Jiaming Yuan
1d4d345634
Tests for dask skl categorical data support. ( #7054 )
2021-06-24 16:33:57 +08:00
Jiaming Yuan
da1ad798ca
Convert numpy float to Python float in feat score. ( #7047 )
2021-06-21 20:58:43 +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
Jiaming Yuan
7968c0d051
Test on s390x. ( #7038 )
...
* Fix && remove unused parameter.
2021-06-18 14:55:08 +08:00
Jiaming Yuan
86715e4cd4
Support categorical data for dask functional interface and DQM. ( #7043 )
...
* Support categorical data for dask functional interface and DQM.
* Implement categorical data support for GPU GK-merge.
* Add support for dask functional interface.
* Add support for DQM.
* Get newer cupy.
2021-06-18 13:06:52 +08:00
Jiaming Yuan
7dd29ffd47
Implement feature score in GBTree. ( #7041 )
...
* Categorical data support.
* Eliminate text parsing during feature score computation.
2021-06-18 11:53:16 +08:00
Jiaming Yuan and Philip Hyunsu Cho
dcd84b3979
[CI] Configure RAPIDS, dask, modin ( #7033 )
...
Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu >
2021-06-18 10:27:51 +08:00
Jiaming Yuan
d9799b09d0
Categorical data support for cuDF. ( #7042 )
...
* Add support in DMatrix.
* Add support in DQM, except for iterator.
2021-06-17 13:54:33 +08:00
Jiaming Yuan
5c2d7a18c9
Parallel model dump for trees. ( #7040 )
2021-06-15 14:08:26 +08:00
Jiaming Yuan
1faad825f4
Remove appveyor badge. [skip ci] ( #7035 )
2021-06-11 14:37:18 +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
Jiaming Yuan
72f9daf9b6
Fix gpu_id with custom objective. ( #7015 )
2021-06-09 14:51:17 +08:00
Jiaming Yuan
7beb2f7fae
Hide symbols in CI build + hide symbols for C and CUDA ( #6798 )
...
* Hide symbols in CI build.
* Hide symbols for other languages.
2021-06-04 02:35:46 +08:00
Jiaming Yuan
c4b9f4f622
Add enable_categorical to sklearn. ( #7011 )
2021-06-04 02:29:14 +08:00
Jiaming Yuan
ee4f51a631
Support for all primitive types from array. ( #7003 )
...
* Change C API name.
* Test for all primitive types from array.
* Add native support for CPU 128 float.
* Convert boolean and float16 in Python.
* Fix dask version for now.
2021-06-01 08:34:48 +08:00
Jiaming Yuan
816b789bf0
Add predictor to skl constructor. ( #7000 )
2021-05-29 04:52:56 +08:00
Jiaming Yuan
89a49cf30e
Fix dask predict on DaskDMatrix with iteration_range. ( #7005 )
2021-05-29 04:43:12 +08:00
Jiaming Yuan
4cf95a6041
Support numpy array interface ( #6998 )
2021-05-27 16:08:22 +08:00
Jiaming Yuan
ab6fd304c4
[Python] Change development release postfix to dev ( #6988 )
2021-05-27 16:06:51 +08:00
Jiaming Yuan
29d6a5e2b8
[CI] Move appveyor tests to action ( #6986 )
...
* Drop support for VS14, use VS15 instead.
* Drop support for mingw.
* Remove debug build.
* Split up jvm tests.
* Split up Python tests.
2021-05-27 04:49:45 +08:00
Jiaming Yuan
86e60e3ba8
Guard against index error in prediction. ( #6982 )
...
* Remove `best_ntree_limit` from documents.
2021-05-25 23:24:59 +08:00
Jiaming Yuan
a4bc7ecf27
Restore R cache on github action. ( #6985 )
2021-05-25 18:53:44 +08:00
Jiaming Yuan
6e52aefb37
Revert OMP guard. ( #6987 )
...
The guard protects the global variable from being changed by XGBoost. But this leads to a
bug that the `n_threads` parameter is no longer used after the first iteration. This is
due to the fact that `omp_set_num_threads` is only called once in `Learner::Configure` at
the beginning of the training process.
The guard is still useful for `gpu_id`, since this is called all the times in our codebase
doesn't matter which iteration we are currently running.
2021-05-25 08:56:28 +08:00
Jiaming Yuan
cf06a266a8
[dask][doc] Wrap the example in main guard. ( #6979 )
2021-05-25 08:24:47 +08:00
Jiaming Yuan
5cb51a191e
[dask][doc] Add small example for sklearn interface. ( #6970 )
2021-05-19 13:50:45 +08:00
Jiaming Yuan
7e846bb965
Fix prediction on df with latest dask. ( #6969 )
2021-05-19 12:23:03 +08:00
Jiaming Yuan
6e104f0570
Add news for 1.4.2. [skip ci] ( #6963 )
2021-05-17 02:50:55 +08:00
Jiaming Yuan
d245bc891e
Add tolerance to early stopping. ( #6942 )
2021-05-14 00:19:51 +08:00
Jiaming Yuan
44cc9c04ea
Fix multiclass auc with empty dataset. ( #6947 )
2021-05-12 15:01:14 +08:00
Jiaming Yuan
05ac415780
[dask] Set dataframe index in predict. ( #6944 )
2021-05-12 13:24:21 +08:00
Jiaming Yuan
37ad60fe25
Enforce input data is not object. ( #6927 )
...
* Check for object data type.
* Allow strided arrays with greater underlying buffer size.
2021-05-02 00:09:01 +08:00
Jiaming Yuan
a1d23f6613
Relax test for decision stump in distributed environment. ( #6919 )
2021-04-30 09:04:11 +08:00
Jiaming Yuan
45ddc39c1d
Relax shotgun test. ( #6918 )
2021-04-30 09:03:12 +08:00
Jiaming Yuan
34df1f588b
Reduce Travis environment setup time. ( #6912 )
...
* Remove unused r from travis.
* Don't update homebrew.
* Don't install indirect/unused dependencies like libgit2, wget, openssl.
* Move graphviz installation to conda.
2021-04-30 09:02:40 +08:00
Jiaming Yuan
b31d37eac5
[CI] Fix custom metric test with empty dataset. ( #6917 )
2021-04-30 09:00:05 +08:00
Jiaming Yuan
db6285fb55
[CI] Skip external memory gtest on osx. ( #6901 )
2021-04-30 08:59:33 +08:00
Jiaming Yuan
ef473b1f09
Disable pylint error. ( #6911 )
2021-04-29 01:01:37 +08:00
Jiaming Yuan
8760ec4827
Ensure predict leaf output 1-dim vector where there's only 1 tree. ( #6889 )
2021-04-23 15:07:48 +08:00
Jiaming Yuan
54afa3ac7a
Relax shotgun test. ( #6900 )
...
It's non-deterministic algorithm, the test is flaky.
2021-04-23 13:01:44 +08:00
Jiaming Yuan
a2ecbdaa31
Add an API guard to prevent global variables being changed. ( #6891 )
2021-04-23 10:27:57 +08:00
Jiaming Yuan and Philip Hyunsu Cho
896aede340
Reorganize the installation documents. ( #6877 )
...
* Split up installation and building from source.
* Use consistent section titles.
Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu >
2021-04-22 04:48:32 +08:00
Jiaming Yuan
74b41637de
Revert "[jvm-packages] Add XGBOOST_RABIT_TRACKER_IP_FOR_TEST to set rabit tracker IP. ( #6869 )" ( #6886 )
...
This reverts commit 2828da3c4c .
2021-04-21 11:20:10 -07:00
Jiaming Yuan
233bdf105f
Remove setDaemon in tracker. ( #6872 )
2021-04-22 01:57:13 +08:00
Jiaming Yuan
71b938f608
1.4.1 release news. ( #6876 )
2021-04-22 01:55:57 +08:00
Jiaming Yuan
146549260a
Bump version to 1.5.0 snapshot in master. ( #6875 )
2021-04-22 01:53:44 +08:00
Jiaming Yuan
bec2b4f094
Revert "Use CPU input for test_boost_from_prediction. ( #6818 )" ( #6858 )
...
This reverts commit 74f3a2f4b5 .
2021-04-20 14:54:02 +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
1b26a2a561
Copy output data for argsort. ( #6866 )
...
Fix GPU AUC.
2021-04-16 21:05:01 +08:00
Jiaming Yuan
a5d7094a45
Update documents. ( #6856 )
...
* Add early stopping section to prediction doc.
* Remove best_ntree_limit.
* Better doxygen output.
2021-04-16 12:41:03 +08:00
Jiaming Yuan
bccb7e87d1
Update dmlc-core. ( #6862 )
...
* Install pandoc, pandoc-citeproc on CI.
2021-04-16 00:14:17 +08:00
Jiaming Yuan
dee5ef2dfd
Typehint for Sklearn. ( #6799 )
2021-04-14 06:55:21 +08:00
Jiaming Yuan
3d919db0c0
Fix pip release script. [skip ci] ( #6845 )
2021-04-14 06:46:02 +08:00
Jiaming Yuan
b9a4f3336a
1.4 release notes. ( #6843 )
2021-04-13 08:38:27 +08:00
Jiaming Yuan
f294c4e023
Use constexpr in dh::CopyIf. ( #6828 )
2021-04-08 07:37:47 +08:00
Jiaming Yuan
7bcc8b3e5c
Use batched copy if. ( #6826 )
2021-04-06 10:34:04 +08:00
Jiaming Yuan
7e06c81894
Fix approximated predict contribution. ( #6811 )
2021-04-03 02:15:03 +08:00
Jiaming Yuan
0cced530ea
[doc] Clarify prediction function. ( #6813 )
2021-04-03 02:12:04 +08:00
Jiaming Yuan
b1fdb220f4
Remove deprecated n_gpus parameter. ( #6821 )
2021-04-02 03:02:32 +08:00
Jiaming Yuan
74f3a2f4b5
Use CPU input for test_boost_from_prediction. ( #6818 )
2021-04-02 00:11:35 +08:00
Jiaming Yuan and Philip Hyunsu Cho
47b62480af
More general predict proba. ( #6817 )
...
* Use `output_margin` for `softmax`.
* Add test for dask binary cls.
Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu >
2021-04-01 19:52:12 +08:00
Jiaming Yuan
a5c852660b
Update document for sklearn model IO. ( #6809 )
...
* Update the use of JSON.
* Remove unnecessary type cast.
2021-04-01 15:52:36 +08:00
Jiaming Yuan
905fdd3e08
Fix typos in AUC. ( #6795 )
2021-03-31 16:35:42 +08:00
Jiaming Yuan
ca998df912
Clarify the behavior of use_rmm. ( #6808 )
...
* Clarify the `use_rmm` flag in document and demo.
2021-03-31 15:43:11 +08:00
Jiaming Yuan
3039dd194b
Don't estimate sketch batch size when rmm is used. ( #6807 )
2021-03-31 15:29:56 +08:00
Jiaming Yuan
10ae0f9511
Fix doc for apply method. ( #6796 )
2021-03-31 15:28:31 +08:00
Jiaming Yuan
138fe8516a
Remove unnecessary calls to iota. ( #6797 )
2021-03-31 15:27:23 +08:00
Jiaming Yuan
79b8b560d2
Optimize dart inplace predict perf. ( #6804 )
2021-03-31 15:20:54 +08:00
Jiaming Yuan
a59c7323b4
Fix inplace predict missing value. ( #6787 )
2021-03-27 05:36:10 +08:00
Jiaming Yuan
5c87c2bba8
Update demo for prediction. ( #6789 )
...
* Remove use of deprecated ntree_limit.
* Add sklearn demo.
2021-03-27 03:09:25 +08:00
Jiaming Yuan
a7083d3c13
Fix dart inplace prediction with GPU input. ( #6777 )
...
* Fix dart inplace predict with data on GPU, which might trigger a fatal check
for device access right.
* Avoid copying data whenever possible.
2021-03-25 12:00:32 +08:00
Jiaming Yuan and Philip Hyunsu Cho
1d90577800
Verify strictly positive labels for gamma regression. ( #6778 )
...
Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu >
2021-03-25 11:46:52 +08:00
Jiaming Yuan
794fd6a46b
Support v3 cuda array interface. ( #6776 )
2021-03-25 09:58:09 +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
Jiaming Yuan
4ee8340e79
Support column major array. ( #6765 )
2021-03-20 05:19:46 +08:00
Jiaming Yuan
f6fe15d11f
Improve parameter validation ( #6769 )
...
* Add quotes to unused parameters.
* Check for whitespace.
2021-03-20 01:56:55 +08:00
Jiaming Yuan
23b4165a6b
Fix gamma deviance ( #6761 )
2021-03-20 01:56:17 +08:00
Jiaming Yuan
e2d8a99413
Add document for tests directory. [skip ci] ( #6760 )
2021-03-18 15:15:50 +08:00
Jiaming Yuan
4f75f514ce
Fix GPU RF ( #6755 )
...
* Fix sampling.
2021-03-17 06:23:35 +08:00
Jiaming Yuan
1a73a28511
Add device argsort. ( #6749 )
...
This is part of https://github.com/dmlc/xgboost/pull/6747 .
2021-03-16 16:05:22 +08:00
Jiaming Yuan
325bc93e16
[dask] Use distributed.MultiLock ( #6743 )
...
* [dask] Use `distributed.MultiLock`
This enables training multiple models in parallel.
* Conditionally import `MultiLock`.
* Use async train directly in scikit learn interface.
* Use `worker_client` when available.
2021-03-16 14:19:41 +08:00
Jiaming Yuan
f20074e826
Check for invalid data. ( #6742 )
2021-03-04 14:37:20 +08:00
Jiaming Yuan
a9b4a95225
Fix learning rate scheduler with cv. ( #6720 )
...
* Expose more methods in cvpack and packed booster.
* Fix cv context in deprecated callbacks.
* Fix document.
2021-02-28 13:57:42 +08: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
Jiaming Yuan
c375173dca
Support pylint 2.7.0 ( #6726 )
2021-02-25 12:49:58 +08:00