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
Jiaming Yuan
872e559b91
Use inplace predict for sklearn. ( #6718 )
...
* Use inplace predict for sklearn when possible.
2021-02-22 12:27:04 +08:00
Jiaming Yuan
bdedaab8d1
Fix pylint. ( #6714 )
2021-02-19 11:53:27 +08:00
Jiaming Yuan
e8c5c53e2f
Use Predictor for dart. ( #6693 )
...
* Use normal predictor for dart booster.
* Implement `inplace_predict` for dart.
* Enable `dart` for dask interface now that it's thread-safe.
* categorical data should be working out of box for dart now.
The implementation is not very efficient as it has to pull back the data and
apply weight for each tree, but still a significant improvement over previous
implementation as now we no longer binary search for each sample.
* Fix output prediction shape on dataframe.
2021-02-09 23:30:19 +08:00
Jiaming Yuan
dbf7e9d3cb
Remove R cache in github action. ( #6695 )
...
The cache stores outdated packages with wrong linkage. Right now there's no way to clear the cache.
2021-02-09 18:53:20 +08:00
Jiaming Yuan
1335db6113
[dask] Improve documents. ( #6687 )
...
* Add tag for versions.
* use autoclass in sphinx build.
Made some class methods to be private to avoid exporting documents.
2021-02-09 09:20:58 +08:00
Jiaming Yuan
5d48d40d9a
Fix DMatrix slice with feature types. ( #6689 )
2021-02-09 08:13:51 +08:00
Jiaming Yuan
218a5fb6dd
Simplify Span checks. ( #6685 )
...
* Stop printing out message.
* Remove R specialization.
The printed message is not really useful anyway, without a reproducible example
there's no way to fix it. But if there's a reproducible example, we can always
obtain these information by a debugger. Removing the `printf` function avoids
creating the context in kernel.
2021-02-09 08:12:58 +08:00
Jiaming Yuan
4656b09d5d
[breaking] Add prediction fucntion for DMatrix and use inplace predict for dask. ( #6668 )
...
* Add a new API function for predicting on `DMatrix`. This function aligns
with rest of the `XGBoosterPredictFrom*` functions on semantic of function
arguments.
* Purge `ntree_limit` from libxgboost, use iteration instead.
* [dask] Use `inplace_predict` by default for dask sklearn models.
* [dask] Run prediction shape inference on worker instead of client.
The breaking change is in the Python sklearn `apply` function, I made it to be
consistent with other prediction functions where `best_iteration` is used by
default.
2021-02-08 18:26:32 +08:00
Jiaming Yuan
dbb5208a0a
Use __array_interface__ for creating DMatrix from CSR. ( #6675 )
...
* Use __array_interface__ for creating DMatrix from CSR.
* Add configuration.
2021-02-05 21:09:47 +08:00
Jiaming Yuan
1e949110da
Use generic dispatching routine for array interface. ( #6672 )
2021-02-05 09:23:38 +08:00
Jiaming Yuan
a4101de678
Fix divide by 0 in feature importance when no split is found. ( #6676 )
2021-02-05 03:39:30 +08:00
Jiaming Yuan
72892cc80d
[dask] Disable gblinear and dart. ( #6665 )
2021-02-04 09:13:09 +08:00
Jiaming Yuan
9d62b14591
Fix document. [skip ci] ( #6669 )
2021-02-02 20:43:31 +08:00
Jiaming Yuan
411592a347
Enhance inplace prediction. ( #6653 )
...
* Accept array interface for csr and array.
* Accept an optional proxy dmatrix for metainfo.
This constructs an explicit `_ProxyDMatrix` type in Python.
* Remove unused doc.
* Add strict output.
2021-02-02 11:41:46 +08:00
Jiaming Yuan
87ab1ad607
[dask] Accept Future of model for prediction. ( #6650 )
...
This PR changes predict and inplace_predict to accept a Future of model, to avoid sending models to workers repeatably.
* Document is updated to reflect functionality additions in recent changes.
2021-02-02 08:45:52 +08:00
Jiaming Yuan
a9ec0ea6da
Align device id in predict transform with predictor. ( #6662 )
2021-02-02 08:33:29 +08:00
Jiaming Yuan
d8ec7aad5a
[dask] Add a 1 line sample to infer output shape. ( #6645 )
...
* [dask] Use a 1 line sample to infer output shape.
This is for inferring shape with direct prediction (without DaskDMatrix).
There are a few things that requires known output shape before carrying out
actual prediction, including dask meta data, output dataframe columns.
* Infer output shape based on local prediction.
* Remove set param in predict function as it's not thread safe nor necessary as
we now let dask to decide the parallelism.
* Simplify prediction on `DaskDMatrix`.
2021-01-30 18:55:50 +08:00
Jiaming Yuan
c3c8e66fc9
Make prediction functions thread safe. ( #6648 )
2021-01-28 23:29:43 +08:00
Jiaming Yuan
d167892c7e
[dask] Ensure model can be pickled. ( #6651 )
2021-01-28 21:47:57 +08:00
Jiaming Yuan
1b70a323a7
Improve string view to reduce string allocation. ( #6644 )
2021-01-27 19:08:52 +08:00
Jiaming Yuan
bc08e0c9d1
Remove experimental_json_serialization from tests. ( #6640 )
2021-01-27 17:44:49 +08:00
Jiaming Yuan
8968ca7c0a
Disable s390x and arm64 tests on travis for now. ( #6641 )
2021-01-27 16:21:40 +08:00
Jiaming Yuan
d19a0ddacf
Move sdist test to action. ( #6635 )
...
* Move x86 linux and osx sdist test to action.
* Add Windows.
2021-01-26 08:25:59 +08:00
Jiaming Yuan
740d042255
Add base_margin for evaluation dataset. ( #6591 )
...
* Add base margin to evaluation datasets.
* Unify the code base for evaluation matrices.
2021-01-26 02:11:02 +08:00
Jiaming Yuan
4bf23c2391
Specify shape in prediction contrib and interaction. ( #6614 )
2021-01-26 02:08:22 +08:00
Jiaming Yuan
8942c98054
Define metainfo and other parameters for all DMatrix interfaces. ( #6601 )
...
This PR ensures all DMatrix types have a common interface.
* Fix logic in avoiding duplicated DMatrix in sklearn.
* Check for consistency between DMatrix types.
* Add doc for bounds.
2021-01-25 16:06:06 +08:00
Jiaming Yuan
561809200a
Fix document for tree methods. ( #6633 )
2021-01-25 15:52:08 +08:00
Jiaming Yuan
a275f40267
[dask] Rework base margin test. ( #6627 )
2021-01-22 17:49:13 +08:00
Jiaming Yuan
7bc56fa0ed
Use simple print in tracker print function. ( #6609 )
2021-01-21 21:15:43 +08:00
Jiaming Yuan
26982f9fce
Skip unused CMake argument in setup.py ( #6611 )
2021-01-21 17:25:33 +08:00