Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update xgboost requirement from <2.0.0,>=1.3.2 to >=1.3.2,<3.0.0 #850

Merged
merged 1 commit into from Oct 6, 2023

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Sep 12, 2023

Updates the requirements on xgboost to permit the latest version.

Release notes

Sourced from xgboost's releases.

Release 2.0.0 stable

2.0.0 (2023 Sep 12)

We are excited to announce the release of XGBoost 2.0. This note will begin by covering some overall changes and then highlight specific updates to the package.

Initial work on multi-target trees with vector-leaf outputs

We have been working on vector-leaf tree models for multi-target regression, multi-label classification, and multi-class classification in version 2.0. Previously, XGBoost would build a separate model for each target. However, with this new feature that's still being developed, XGBoost can build one tree for all targets. The feature has multiple benefits and trade-offs compared to the existing approach. It can help prevent overfitting, produce smaller models, and build trees that consider the correlation between targets. In addition, users can combine vector leaf and scalar leaf trees during a training session using a callback. Please note that the feature is still a working in progress, and many parts are not yet available. See #9043 for the current status. Related PRs: (#8538, #8697, #8902, #8884, #8895, #8898, #8612, #8652, #8698, #8908, #8928, #8968, #8616, #8922, #8890, #8872, #8889, #9509) Please note that, only the hist (default) tree method on CPU can be used for building vector leaf trees at the moment.

New device parameter.

A new device parameter is set to replace the existing gpu_id, gpu_hist, gpu_predictor, cpu_predictor, gpu_coord_descent, and the PySpark specific parameter use_gpu. Onward, users need only the device parameter to select which device to run along with the ordinal of the device. For more information, please see our document page (https://xgboost.readthedocs.io/en/stable/parameter.html#general-parameters) . For example, with device="cuda", tree_method="hist", XGBoost will run the hist tree method on GPU. (#9363, #8528, #8604, #9354, #9274, #9243, #8896, #9129, #9362, #9402, #9385, #9398, #9390, #9386, #9412, #9507, #9536). The old behavior of gpu_hist is preserved but deprecated. In addition, the predictor parameter is removed.

hist is now the default tree method

Starting from 2.0, the hist tree method will be the default. In previous versions, XGBoost chooses approx or exact depending on the input data and training environment. The new default can help XGBoost train models more efficiently and consistently. (#9320, #9353)

GPU-based approx tree method

There's initial support for using the approx tree method on GPU. The performance of the approx is not yet well optimized but is feature complete except for the JVM packages. It can be accessed through the use of the parameter combination device="cuda", tree_method="approx". (#9414, #9399, #9478). Please note that the Scala-based Spark interface is not yet supported.

Optimize and bound the size of the histogram on CPU, to control memory footprint

XGBoost has a new parameter max_cached_hist_node for users to limit the CPU cache size for histograms. It can help prevent XGBoost from caching histograms too aggressively. Without the cache, performance is likely to decrease. However, the size of the cache grows exponentially with the depth of the tree. The limit can be crucial when growing deep trees. In most cases, users need not configure this parameter as it does not affect the model's accuracy. (#9455, #9441, #9440, #9427, #9400).

Along with the cache limit, XGBoost also reduces the memory usage of the hist and approx tree method on distributed systems by cutting the size of the cache by half. (#9433)

Improved external memory support

There is some exciting development around external memory support in XGBoost. It's still an experimental feature, but the performance has been significantly improved with the default hist tree method. We replaced the old file IO logic with memory map. In addition to performance, we have reduced CPU memory usage and added extensive documentation. Beginning from 2.0.0, we encourage users to try it with the hist tree method when the memory saving by QuantileDMatrix is not sufficient. (#9361, #9317, #9282, #9315, #8457)

Learning to rank

We created a brand-new implementation for the learning-to-rank task. With the latest version, XGBoost gained a set of new features for ranking task including:

  • A new parameter lambdarank_pair_method for choosing the pair construction strategy.
  • A new parameter lambdarank_num_pair_per_sample for controlling the number of samples for each group.
  • An experimental implementation of unbiased learning-to-rank, which can be accessed using the lambdarank_unbiased parameter.
  • Support for custom gain function with NDCG using the ndcg_exp_gain parameter.
  • Deterministic GPU computation for all objectives and metrics.
  • NDCG is now the default objective function.
  • Improved performance of metrics using caches.
  • Support scikit-learn utilities for XGBRanker.
  • Extensive documentation on how learning-to-rank works with XGBoost.

For more information, please see the tutorial. Related PRs: (#8771, #8692, #8783, #8789, #8790, #8859, #8887, #8893, #8906, #8931, #9075, #9015, #9381, #9336, #8822, #9222, #8984, #8785, #8786, #8768)

Automatically estimated intercept

In the previous version, base_score was a constant that could be set as a training parameter. In the new version, XGBoost can automatically estimate this parameter based on input labels for optimal accuracy. (#8539, #8498, #8272, #8793, #8607)

Quantile regression

The XGBoost algorithm now supports quantile regression, which involves minimizing the quantile loss (also called "pinball loss"). Furthermore, XGBoost allows for training with multiple target quantiles simultaneously with one tree per quantile. (#8775, #8761, #8760, #8758, #8750)

... (truncated)

Changelog

Sourced from xgboost's changelog.

XGBoost Change Log

This file records the changes in xgboost library in reverse chronological order.

1.7.6 (2023 Jun 16)

This is a patch release for bug fixes. The CRAN package for the R binding is kept at 1.7.5.

Bug Fixes

  • Fix distributed training with mixed dense and sparse partitions. (#9272)
  • Fix monotone constraints on CPU with large trees. (#9122)
  • [spark] Make the spark model have the same UID as its estimator (#9022)
  • Optimize prediction with QuantileDMatrix. (#9096)

Document

  • Improve doxygen (#8959)
  • Update the cuDF pip index URL. (#9106)

Maintenance

  • Fix tests with pandas 2.0. (#9014)

1.7.5 (2023 Mar 30)

This is a patch release for bug fixes.

  • C++ requirement is updated to C++-17, along with which, CUDA 11.8 is used as the default CTK. (#8860, #8855, #8853)
  • Fix import for pyspark ranker. (#8692)
  • Fix Windows binary wheel to be compatible with Poetry (#8991)
  • Fix GPU hist with column sampling. (#8850)
  • Make sure iterative DMatrix is properly initialized. (#8997)
  • [R] Update link in document. (#8998)

1.7.4 (2023 Feb 16)

This is a patch release for bug fixes.

  • [R] Fix OpenMP detection on macOS. (#8684)
  • [Python] Make sure input numpy array is aligned. (#8690)
  • Fix feature interaction with column sampling in gpu_hist evaluator. (#8754)
  • Fix GPU L1 error. (#8749)
  • [PySpark] Fix feature types param (#8772)
  • Fix ranking with quantile dmatrix and group weight. (#8762)

1.7.3 (2023 Jan 6)

This is a patch release for bug fixes.

  • [Breaking] XGBoost Sklearn estimator method get_params no longer returns internally configured values. (#8634)
  • Fix linalg iterator, which may crash the L1 error. (#8603)
  • Fix loading pickled GPU model with a CPU-only XGBoost build. (#8632)
  • Fix inference with unseen categories with categorical features. (#8591, #8602)
  • CI fixes. (#8620, #8631, #8579)

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Updates the requirements on [xgboost](https://github.com/dmlc/xgboost) to permit the latest version.
- [Release notes](https://github.com/dmlc/xgboost/releases)
- [Changelog](https://github.com/dmlc/xgboost/blob/master/NEWS.md)
- [Commits](dmlc/xgboost@v1.3.2...v2.0.0)

---
updated-dependencies:
- dependency-name: xgboost
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Sep 12, 2023
@codecov
Copy link

codecov bot commented Sep 12, 2023

Codecov Report

Merging #850 (2b26d3f) into master (4a1b4f7) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #850   +/-   ##
=======================================
  Coverage   81.98%   81.98%           
=======================================
  Files         159      159           
  Lines       10375    10375           
=======================================
  Hits         8506     8506           
  Misses       1869     1869           

@jklaise jklaise merged commit 27dfd29 into master Oct 6, 2023
16 checks passed
@dependabot dependabot bot deleted the dependabot/pip/xgboost-gte-1.3.2-and-lt-3.0.0 branch October 6, 2023 10:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant