安下载编程开发

分类分类

XGBoost(分布式梯度提升库)

XGBoost(分布式梯度提升库)

v1.4.0 官方版

大小:1.97 MB 更新:2021/04/25

类别:编程工具系统:WinXP, Win7, Win8, Win10, WinAll

立即下载

  XGBoost可以帮助用户分析问题,可以在软件解决很多科学问题,您可以在设计数据处理软件以及设计科学统计软件的时候添加XGBoost,让软件帮助用户分析庞大的数据,只要您的内存足够软件就可以处理任意体积的数据,可以对几百万种数据处理,可以解决几十亿问题,无论是数学问题还是科学问题都可以通过这款软件配置相关的算法提升计算能力,您将软件移植到各种环境运行,可以添加到不同的计算平台运行,分布式的运行方案,可以让您在不同的平台处理数据,XGBoost的模型和数据也是可以移植的,这意味着您可以使用R训练模型,同时使用Java或C ++运行预测,这在生产系统中更为常见,如果你需要这款软件就下载吧!

XGBoost(分布式梯度提升库)

软件功能

  XGBoost是经过优化的分布式梯度提升库,旨在高效,灵活且可移植。它在Gradient Boosting框架下实现了机器学习算法。XGBoost提供了并行树增强(也称为GBDT,GBM),可快速准确地解决许多数据科学问题。相同的代码在主要的分布式环境(Hadoop,SGE,MPI)上运行,并且可以解决数十亿个示例之外的问题。

  现在,我们提供了一个简单的界面,可通过指定一系列增强轮来对切片树模型进行切片。可以通过切片接口将树集合分为多个子集合。

  另外,提早停止的回调现在支持`save_best`选项。启用后,XGBoost将在最佳增强回合中保存(持久)模型,并丢弃最佳回合后适合的树。

  特征(列)的加权子采样(#5962)

  现在可以通过加权子采样对要素(列)进行采样,其中更有可能在样本中选择权重较高的要素。加权二次采样使您可以通过选择树拆分中的一组特定功能来对领域知识进行编码。此外,通过将零权重分配给特定特征,可以防止将其用于任何拆分中。

新版特色

  性能改进

  多核CPU上的各种性能改进

  -将DMatrix的构建时间优化了3.7倍。

  -CPU预测性能最多可提高3.6倍。

  -优化CPU草图减少所有稀疏数据

  -为BuildHist分配线程本地内存,从而使速度提高了1.7倍。

  -禁用用于创建DMatrix的超线程(#6386)。这样可以将DMatrix创建速度提高2倍。

  -预测中静态表皮的简单修复

  统一线程配置,以轻松利用所有CPU内核

  [jvm-packages]清除确定性分区的计算方式

  通过实现侵入性指针类(#6129)来加快JSON序列化。从而使性能提高1.5到2倍。

官方教程

  功能交互约束

  决策树是发现自变量(功能)之间相互作用的强大工具。由于子节点的条件是根据父节点的条件来确定的,因此遍历路径中一起出现的变量将相互交互。例如,下图中突出显示的红色路径包含三个变量:\(x_1\), \(x_7\), 和 \(x_{10}\),因此突出显示的预测(在突出显示的叶节点处)是 \(x_1\), \(x_7\), 和 \(x_{10}\)。

XGBoost(分布式梯度提升库)

  当树的深度大于1时,许多变量将在最小化训练损失的唯一基础上进行交互,并且结果决策树可能捕获了虚假的关系(噪声),而不是概括了不同数据集的合法关系。功能交互约束 使用户可以决定允许哪些变量进行交互,哪些不进行交互。

  潜在的好处包括:

  通过专注于有效的交互,无论是通过特定领域的知识还是通过对交互进行排名的算法,都能获得更好的预测性能

  预测中的噪音更少;更好的概括

  用户可以更好地控制模型的适用范围。例如,由于规章限制,即使交互表现良好,用户也可能希望排除一些交互

  一个简单的例子

  特征交互约束是根据允许交互的变量组来表达的。例如,约束 表明变量[0, 1]\(x_0\) 和 \(x_1\)允许彼此交互,但没有其他变量。同样, 表示[2, 3, 4]\(x_2\), \(x_3\), 和 \(x_4\)允许彼此交互,但没有其他变量。一组功能交互约束表示为嵌套列表,例如 ,其中每个内部列表是一组允许彼此交互的功能索引。[[0, 1], [2, 3, 4]]

  在下面的图中,左侧决策树违反第一约束(的),而正确的决定树符合所述第一和第二约束条件两者(,)。[0, 1][0, 1][2, 3, 4]

XGBoost(分布式梯度提升库)

  执行功能互动的制约作用XGBoost

  在XGBoost中强制执行功能交互约束非常简单。在这里,我们将给出一个使用Python的示例,但相同的基本思想可以推广到其他平台。

  假设以下代码适合您的模型,但没有要素交互约束:

XGBoost(分布式梯度提升库)

  然后,使用要素交互约束进行拟合仅需要添加一个参数:

XGBoost(分布式梯度提升库)

  树木构造算法的选择。要使用功能的互动的约束,一定要设定的tree_method参数为以下之一:exact,hist,approx或gpu_hist。支持gpu_hist和approx仅在1.0.0中添加。

  高级主题

  交互约束背后的直觉很简单。用户具有关于不同特征之间关系的先验知识,并将其编码为模型构建期间的约束。但是围绕指定约束也有一些微妙之处。采取约束作为一个例子,第二特征出现在两个不同的交互集和这样的联合组特征允许与交互,是。在下图中,根在feature处分裂。因为它的所有后代都应该能够与之交互,所以在第二层,所有4个特征都是合法的分割候选者,可以进行进一步的分割,而无需考虑指定的约束集。[[1, 2], [2, 3, 4]][1, 2][2, 3, 4]2{1, 3, 4}2

XGBoost(分布式梯度提升库)

  这导致了特征交互约束的一些有趣的含义。以 作为另一个例子。假设我们的训练数据集中只有3个可用功能用于表示,那么细心的读者可能会发现上述约束与相同。由于无论在根节点中选择哪个功能进行拆分,其所有后代都必须将每个功能都包括在内作为合法的拆分候选,以避免违反交互约束。[[0, 1], [0, 1, 2], [1, 2]][0, 1, 2]

  在最后一个示例中,我们使用并选择特征作为根节点的拆分。在构建树的第二层,是唯一合法的拆分候选对象,因为它属于同一约束集,因此它本身就是唯一的候选对象。按照下面示例树的增长路径,第二层的节点在feature处分割。但是由于事实也属于第二约束集,因此在第三层,我们需要将所有要素都包括在内以符合其上升要求。[[0, 1], [1, 3, 4]]01011[1, 3, 4]

XGBoost(分布式梯度提升库)

更新日志

  XGBoost更改日志

  该文件以相反的时间顺序记录xgboost库中的更改。

  v1.4.1(2021.04.20)

  这是一个错误修复版本。

  修复了一些大型数据集上AUC的GPU实现。(#6866)

  v1.4.0(2021.04.12)

  引入针对R的预构建二进制程序包,并支持GPU

  从1.4.0版开始,用户现在可以选择安装{xgboost}而不需要从源代码进行构建。对于希望利用GPU算法(gpu_hist)的用户而言,这尤其有利,因为以前他们必须 {xgboost}使用CMake和NVCC从源代码进行构建。现在安装{xgboost}与GPU的支持一样简单:R CMD INSTALL ./xgboost_r_gpu_linux.tar.gz。(#6827)

  请参阅https://xgboost.readthedocs.io/en/latest/build.html上的说明

  预测功能的改进

  XGBoost具有许多预测类型,包括shap值计算和就地预测。在1.4版中,我们使用统一的接口对C API和Python API的基础预测功能进行了大修。(#6777,#6693,#6653,#6662,#6648,#6668,#6804)

  从1.4开始,默认情况下,当支持输入数据时,sklearn接口预测将使用就地预测。

  用户可以与dartbooster一起使用就地预测,并像一样启用GPU加速gbtree。

  现在,所有具有树模型的预测函数都是线程安全的。base_margin支持可以改善就地预测。

  在公共接口中公开了一组新的C预测函数。

  用户可见的更改是新添加的称为的参数strict_shape。有关更多详细信息,请参见https://xgboost.readthedocs.io/en/latest/prediction.html。

  Dask界面的改进

  从1.4开始,Dask接口被认为是功能完整的,这意味着Dask现在支持在单节点Python接口中找到的所有模型,包括但不限于排名和随机森林。而且,预测功能明显更快,并且支持计算shap值。

  Dask接口支持在单节点sklearn接口中找到的大多数参数。(#6471,#6591)

  实施学习排名。在Dask界面上,我们使用新添加的对查询ID的支持来启用组结构。(#6576)

  Dask界面具有Python类型提示支持。(#6519)

  所有型号均可安全腌制。(#6651)

  现在支持随机森林估计量。(#6602)

  现在支持变形值计算。(#6575,#6645,#6614)

  评估结果将打印在调度程序过程中。(#6609)

  DaskDMatrix(和设备分位数dmatrix)现在接受所有元信息。(#6601)

  预测优化。我们增强并加快了Dask界面的预测功能。有关如何进一步优化它的概述,请参见我们文档中最新的Dask教程页面。(#6650,#6645,#6648,#6668)

  Bug修复

  如果您使用的是最新的Dask并存在于此处distributed.MultiLock,则XGBoost支持在同一集群上并行训练多个模型。(#6743)

  一个用于dask.client启动异步任务的错误修复,XGBoost可能在内部使用其他客户端对象。(#6722)

  关于文档,博客,教程和演示的其他改进。(#6389,#6366,#6687,#6699,#6532,#6501)

  Python包

  随着Dask的变化以及对预测的总体改进,我们对通用Python界面和IO进行了一些增强,以增强信息。从1.4开始,增强功能名称和类型可以保存到JSON模型中。另外像一些模型的属性best_iteration,best_score是在模型负荷恢复。在sklearn界面上,某些属性现在已实现为具有更好文档的Python对象属性。

  重大变化:将data预测功能中的所有参数重命名X为更好地符合sklearn估计器界面准则。

  重大更改:XGBoost用于DMatrix 在输入之类的输入np.ndarray没有列名时生成一些伪特征名。该过程已删除,以避免与其他输入冲突。(#6605)

  现在支持通过训练继续尽早停止。(#6506)

  现在,Dask和cuDF的可选导入很懒。(#6522)

  如预测改进摘要中所述,sklearn界面在任何可能的地方都使用就地预测。(#6718)

  功能名称和功能类型等增强器信息现在已保存到JSON模型文件中。(#6605)

  现在,所有DMatrix接口(包括DeviceQuantileDMatrixDask接口中的和对应接口)(如Dask更改摘要中所述)现在都接受像group和qid构造函数中那样的所有元信息,以获得更好的一致性。(#6601)

  Booster属性会在模型加载时恢复,因此用户不必attr 手动调用。(#6593)

  在sklearn界面上,所有模型都接受base_margin评估数据集。(#6591)

  对安装脚本的改进,包括较小的sdist大小和更快的安装速度(如果已经构建了C ++库)(#6611,#6694,#6565)。

  Python软件包的错误修复:

  行数为0时不验证功能。(#6472)

  将度量标准配置移入增强器。(#6504)

  调用XGBModel.fit()应该默认清除Booster(#6562)

  支持_estimator_type。(#6582)

  [dask,sklearn]修正预测概率。(#6566,#6817)

  恢复未知数据支持。(#6595)

  使用Cv修复学习率计划程序。(#6720)

  修复了sklearn文档中的小错字(#6717)

  [python-package]修复类Booster:feature_types = None(#6705)

  当找不到拆分时,将特征重要性中的除数固定为0。(#6676)

  JVM软件包

  [jvm-packages]修复了即使没有custom_eval设置也无法提早停止的问题(#6738)

  修复了潜在的TaskFailedListener的回调不会被调用的情况(#6612)

  [jvm]增加了从字节数组直接加载booster的功能(#6655)

  [jvm-packages] JVM库加载器扩展(#6630)

  R包

  R文档:使DMatrix的结构保持一致。

  修复xgb.train的R文档。(#6764)

  中华民国

  我们在XGBoost中重新实现了ROC-AUC指标。新的实现支持多类分类,并且对学习对非二进制任务进行排名提供了更好的支持。而且,它在分布式环境中具有更好定义的平均值,并可以对无效数据集进行额外处理。(#6749,#6747,#6797)

  全局配置。

  从1.4开始,XGBoost的Python,R和C接口支持新的全局配置模型,用户可以在其中指定一些全局参数。当前,支持的参数为 verbosity和use_rmm。后者是实验性的,有关详细信息,请参见rmm插件演示和相关的README文件。(#6414,#6656)

  其他新功能。

  更好地处理支持的输入数据类型__array_interface__。对于某些数据类型,包括GPU输入和scipy.sparse.csr_matrix,XGBoost使用__array_interface__来处理基础数据。从1.4开始,XGBoost可以接受任意的数组步长(这意味着支持列主步)而无需进行数据复制,从而有可能减少大量的内存消耗。__cuda_array_interface__现在也支持版本3 。(#6776,#6765,#6459,#6675)

  改进的参数验证,现在向XGBoost提供包含空格的参数将触发错误。(#6769)

  对于Python和R包,~支持包含home指示符的文件路径。

  如Python更改摘要中所述,JSON模型现在可以保存受过训练的助推器的功能信息。JSON模式会相应更新。(#6605)

  分类数据支持的开发仍在继续。新增了加权数据支持和dart增强支持。(#6508,#6693)

  如Dask变更摘要中所述,排名现在支持qid查询组的参数。(#6576)

  DMatrix.slice现在可以消耗一个numpy数组。(#6368)

  其他重大变化

  除了特征名称生成之外,还有2个重大更改:

  内存快照的丢弃保存二进制格式。(#6513,#6640)

  将binary:logitraw目标的默认评估指标更改为logloss(#6647)

  CPU优化

  除了对预测功能的一般更改之外,还对CPU的实现进行了一些优化。(#6683,#6550,#6696,#6700)

  还hist改善了采样初始化的性能。(#6410)

  核心库中的重要修复

  这些修补程序不存在于特定的语言绑定中:

  修复了伽玛回归。这包括检查无效的输入值,修复gamma偏差度量标准以及为gamma负对数似然度量标准提供更好的浮点防护。(#6778,#6537,#6761)

  gpu_hist在早期版本中,随机森林可能产生较低的准确性。(#6755)

  修复了数据大小超过32位整数的限制时GPU绘制中的错误。(#6826)

  行主要适配器的内存消耗修复(#6779)

  使用rmm时不要估计草图的批处理大小。(#6807)(#6830)

  用缺失的值修复就地预测。(#6787)

  在UpdatePosition中重新引入双缓冲区,以修复gpu_hist中的perf回归(#6757)

  将正确的split_type传递给GPU预测器(#6491)

  修复DMatrix功能名称/类型IO。(#6507)

  SparsePage专门使用view来避免某些数据访问争用。(#6590)

  检查无效数据。(#6742)

  修复可重定位包含在CMakeList(#6734)(#6737)中

  使用要素类型修复DMatrix切片。(#6689)

  其他弃用通知:

  该版本将是支持CUDA 10.0的最新版本。(#6642)

  从下一个版本开始,由于使用manylinux2014标签,Python软件包将要求Pip 19.3+。另外,将不支持CentOS 6,RHEL 6和其他旧发行版。

  已知问题:

  MacOS构建的JVM软件包不支持开箱即用的多线程。要使用JVM软件包启用多线程,MacOS用户将需要从源代码构建JVM软件包。请参阅https://xgboost.readthedocs.io/zh-CN/latest/jvm/index.html#installation-from-source

  文件

  tree_method参数的专用页面已添加。(#6564,#6633)

  [doc]将FLAML添加为XGBoost的快速调整工具(#6770)

  为测试目录添加文档。[skip ci](#6760)

  修复config.py的文档字符串以使用正确的字符串versionadded(#6458)

  更新演示以进行预测。(#6789)

  [文档]说明AUCPR用于二进制分类/排名(#5899)

  更新C API注释(#6457)

  修复文档。[skip ci](#6669)

  维护:测试,持续集成

  将CPU输入用于test_boost_from_prediction。(#6818)

  [CI]将xgboost4j.dll上传到S3(#6781)

  更新dmlc-core子模块(#6745)

  [CI]使用manylinux2010_x86_64容器供应商libgomp(#6485)

  添加conda-forge徽章(#6502)

  修复合并冲突。(#6512)

  [CI]拆分main.yml,添加mypy。(#6515)

  [中断]每晚将cuDF和RMM升级到0.18;RMM插件需要RMM 0.18+(#6510)

  “ featue_map”错字更改为“ feature_map”(#6540)

  添加用于生成发行版tarball的脚本。(#6544)

  将凭据添加到.gitignore(#6559)

  删除测试中的警告。(#6554)

  更新dmlc-core子模块并符合新的API(#6431)

  禁止较早的客户进行假设健康检查。(#6589)

  修复pylint。(#6714)

  [CI]清除R程序包缓存(#6746)

  排除对github操作执行的dmlc测试。(#6625)

  使用权重测试回归指标。(#6729)

  添加帮助脚本和文档以发布pip包。(#6613)

  支持pylint 2.7.0(#6726)

  在github动作中删除R缓存。(#6695)

  [CI]不要混淆为ARM和x86_64平台构建的隐藏可执行文件(#6646)

  [CI]将ARM64测试添加到Jenkins管道(#6643)

  暂时在travis上禁用s390x和arm64测试。(#6641)

  将sdist测试移至行动。(#6635)

  [黄昏]返工基础保证金测试。(#6627)

  维护:重构代码以提高可读性和可维护性

  改善OpenMP异常处理(#6680)

  改善字符串视图以减少字符串分配。(#6644)

  简化跨度检查。(#6685)

  对数组接口使用通用的调度例程。(#6672)

  该文件以相反的时间顺序记录xgboost库中的更改。

  ## v1.3.0(2020.12.08)

  ### XGBoost4J-Spark:异常应该优雅地取消作业,而不是杀死SparkContext(#6019)。

  *默认情况下,XGBoost4J-Spark中的异常会导致整个SparkContext关闭,从而需要重新启动Spark集群。这种行为通常带来很大的不便。

  *从1.3.0版本开始,XGBoost添加了一个新参数`killSparkContextOnWorkerFailure`,以选择性地防止杀死SparkContext。如果设置了此参数,则异常将优雅地取消训练作业,而不是终止SparkContext。

  ### GPUTreeSHAP:TreeSHAP算法的GPU加速(#6038,#6064,#6087,#6099,#6163,#6281,#6332)

  * [SHAP(SHapley Additive exPlanations)](https://github.com/slundberg/shap)是一种游戏理论方法,用于解释机器学习模型的预测。它为各个示例计算特征重要性评分,从而确定每个特征如何影响特定的预测。 TreeSHAP是一种优化的SHAP算法,专门为决策树集成而设计。

  *从1.3.0版本开始,现在可以利用具有CUDA功能的GPU来加速TreeSHAP算法。查看[演示笔记本](https://github.com/dmlc/xgboost/blob/master/demo/gpu_acceleration/shap.ipynb)。

  * TreeSHAP算法的CUDA实现托管在[rapidsai / GPUTreeSHAP](https://github.com/rapidsai/gputreeshap)。 XGBoost将其导入为Git子模块。

  ###新型Python回调API(#6199,#6270,#6320,#6348,#6376,#6399,#6441)

  * XGBoost Python软件包现在提供了重新设计的回调API。通过新的回调API,您可以设计idomatic Python的各种培训扩展。另外,新的回调API允许您使用本机Dask API(`xgboost.dask`)提前停止。查看[教程](https://xgboost.readthedocs.io/en/release_1.3.0/python/callbacks.html)和[演示](https://github.com/dmlc/xgboost/blob/master /demo/guide-python/callbacks.py)。

  ###启用对大数据(#6201,#6229,#6234)使用`DeviceQuantileDMatrix` /`DaskDeviceQuantileDMatrix`。

  *`DeviceQuantileDMatrix`可以避免额外的训练数据副本,从而节省内存,对于大型数据而言,节省的空间更大。不幸的是,具有超过2 ^ 31个元素的大数据正在触发CUB和Thrust中的整数溢出错误。跟踪问题:#6228。

  *此版本包含一系列变通办法,以允许对大数据使用`DeviceQuantileDMatrix`:

  -在`copy_if`(#6201)上循环

  -在``推力::减少''(#6229)上循环

  -内部实施包含性扫描算法,以处理较大的偏移量(#6234)

  ###支持切片树模型(#6302)

  *在使用早期停止后通常会容易出错,因此要访问模型的最佳迭代,需要将ntree_limit参数手动传递给predict()函数。

  ###改进了与Dask的集成

  *支持反向代理环境,例如Google Kubernetes Engine(#6343,#6475)

  * XGBoost培训工作将不再使用所有可用的工人。相反,它将仅使用包含输入数据的工作程序(#6343)。

  *新的回调API与Dask培训API配合良好。

  * DaskXGBClassifier和DaskXGBRegressor的predict()和fit()函数现在接受基本边距(#6155)。

  *在Dask API(#6130,#6132,#6333)中支持更多元数据。

  *允许在`predict()`中以`kwargs`的形式传递额外的关键字参数(#6117)

  *修复了dask界面中的拼写错误:`sample_weights`->`sample_weight`(#6240)

  *由于Dask可能会产生空分区(#6379),因此在AFT生存期中允许使用空数据矩阵

  *通过在所有工人中重叠预测工作来加快预测速度(#6412)

  ###对具有分类特征的直接拆分的实验支持(#6028,#6128,#6137,#6140,#6164,#6165,#6166,#6179,#6194,#6219)

  *当前,XGBoost要求用户对分类变量进行一次热编码。这会对性能产生不利影响,因为创建许多虚拟变量会导致更高的内存消耗,并且可能需要拟合更深的树才能达到等效的模型精度。

  * XGBoost的1.3.0版本包含对直接处理测试节点中类别变量的实验支持。每个测试节点的条件形式为“ feature_value \ in match_set”,其中右侧的“ match_set”包含一个或多个匹配类别。 match_set中的匹配类别表示遍历到正确的子节点的条件。目前,XGBoost仅会生成仅具有一个匹配类别的分类拆分(“ one-vs-rest split”)。在将来的版本中,我们计划消除此限制,并在`match_set`中产生具有多个匹配类别的拆分。

  *类别拆分需要使用JSON模型序列化。传统二进制序列化方法不能用于保存(持久)具有分类拆分的模型。

  * 笔记。此功能目前处于高度试验阶段。需要您自担风险使用它。请参阅[#5949](https://github.com/dmlc/xgboost/pull/5949)中的限制的详细列表。

  ###用于RAPIDS内存管理器的实验性插件(#5873,#6131,#6146,#6150,#6182)

  * RAPIDS内存管理器库([rapidsai / rmm](https://github.com/rapidsai/rmm))提供了用于NVIDIA GPU的高效内存分配器的集合。通过启用RMM集成插件,现在可以将XGBoost与RMM提供的内存分配器一起使用。有了这个插件,XGBoost现在可以与其他使用RMM的应用程序(例如RAPIDS数据科学包)共享一个通用的GPU内存池。

  *#6297解决后,该插件将很快被视为非实验性插件。

  ### oneAPI编程模型的实验性插件(#5825)

  * oneAPI是英特尔开发的一种编程接口,旨在为多种类型的硬件(例如CPU,GPU,FGPA和其他硬件加速器)提供一种编程模型。

  * XGBoost现在包括一个实验性插件,用于将oneAPI用于预测函数和目标函数。该插件托管在目录“ plugin / updater_oneapi”中。

  *路线图:#5442

  ###XGBoost模型现在将触发JSON序列化(#6027)

  *现在将包含XGBoost模型的JSON字符串表示形式以及相关配置。

  ### API新增功能

  * [R]使用ggplot2(#5882)添加SHAP摘要图

  * Modin DataFrame现在可以用作输入(#6055)

  * [jvm-packages]添加`getNumFeature`方法(#6075)

  *添加MAPE指标(#6119)

  *实现GPU预测叶。 (#6187)

  *在`XGBClassifier`(#6269)中启用cuDF / cuPy输入

  *文档树的特征权重方法。 (#6312)

  *添加`fail_on_invalid_gpu_id`参数,这将导致XGBoost在看到`gpu_id`无效值时终止(#6342)

  ###破坏:用于分类的默认评估指标更改为`logloss` /`mlogloss`(#6183)

  *默认度量标准曾经是准确性,并且当我们为`binary:logistic`目标真正优化对数丢失时,使用准确性度量标准进行早期停止在统计上是不一致的。

  *为了保持统计一致性,分类的默认指标已更改为“ logloss”。用户可以通过显式指定“ eval_metric”来选择保留旧的行为。

  ###破坏:现在已删除`skmaker`(#5971)

  *`skmaker`更新程序尚未记录或测试。

  ###中断:JSON模型格式不再存储叶子计数(#6094)。

  *叶子计数字段已被弃用,XGBoost代码库中的任何地方均未使用。

  ###中断:XGBoost现在需要MacOS 10.14(Mojave)及更高版本。

  * Homebrew放弃了对MacOS 10.13(High Sierra)的支持,因此我们无法在MacOS 10.13上从Homebrew安装OpenMP运行时(`libomp`)。请使用MacOS 10.14(Mojave)或更高版本。

  ###弃用通知

  *现在已弃用XGBClassifier中的LabelEncoder,并将在下一个次要版本(#6269)中删除。必须弃用才能支持多种类型的输入,例如cuDF数据帧或cuPy数组。

  *不建议在Python接口中使用某些位置参数(#6365)。对于某些功能参数,用户将使用弃用警告来使用位置参数。新代码应尽可能使用关键字参数。我们尚未决定何时完全需要使用关键字参数。

  ### Bug修复

  *在big-endian拱上,在二进制序列化程序中交换字节顺序以启用加载由little-endian机器(#5813)生成的模型。

  * [jvm-packages]使用包含Double.NaN的数据集修复确定性分区(#5996)

  *将GPU历史记录的树深度限制为31以防止整数溢出(#6045)

  * [jvm-packages]将`maxBins`设置为256以与C ++代码中的默认值对齐(#6066)

  * [R]修正了CRAN检查(#6077)

  *添加对`scipy.sparse.coo_matrix`的支持(#6162)

  *处理草图中的重复值。 (#6178)

  *捕获C API中的所有标准异常。 (#6220)

  *修正线性GPU输入(#6255)

  *修正就地预测间隔。 (#6259)

  * [R]允许`xgb.plot.importance()`调用来填充网格(#6294)

  *懒导入dask库。 (#6309)

  *外部存储器的确定性数据分区(#6317)

  *避免为每种配置重置种子。 (#6349)

  *修复图形可视化中的标签错误(#6369)

  * [jvm-packages]修复了潜在的单元测试套件由于竞争条件而中止的问题(#6373)

  * [R]修正来自`R check --as-cran`(#6374)的警告

  * [R]修复了使用noLD R发生的崩溃(#6378)

  * [R]请勿将连续标签转换为因子(#6380)

  * [R]删除对`exists()`的使用(#6387)

  *将参数从XGBClassifier.set_param / XGBRegressor.set_param传播到底层的Booster句柄。 (#6416)

  * [R]通过CMake修复R软件包安装(#6423)

  *在cuPy数组中强制执行行优先顺序(#6459)

  *修复了传递给scikit-learn API的参数中过滤可调用对象的问题。 (#6466)

  ###维护:测试,持续集成,构建系统

  * [CI]改进GitHub Actions中的JVM测试(#5930)

  *重构绘图测试,使其可以独立运行(#6040)

  * [CI]取消基于后续的推送(#6011)

  *修复Dask Pytest灯具(#6024)

  * [CI]将linters迁移到GitHub Actions(#6035)

  * [CI]从GitHub Actions中删除win2016 JVM测试(#6042)

  *使用`BUILD_STATIC_LIB`选项修复CMake构建(#6090)

  *不要在CMake中链接导入的目标(#6093)

  *解决MacOS AppleClang 11(#6103)中的编译器错误

  * [CI]通过在正确的目录中运行CTest来对其进行修复(#6104)

  * [R]明确检查警告以进行模型兼容性测试(#6114)

  * [jvm-packages]添加xgboost4j-gpu / xgboost4j-spark-gpu模块以方便发布(#6136)

  * [CI]时间GPU测试。 (#6141)

  * [R]删除configure.ac中的警告(#6152)

  * [CI]每晚将cuDF和RMM升级到0.16;升级到Ubuntu 18.04(#6157)

  * [CI]测试C API演示(#6159)

  *用于生成设备调试信息的选项。 (#6168)

  *更新`.gitignore`(#6175,#6193,#6346)

  *从dmlc-core中隐藏C ++符号(#6188)

  * [CI]在Travis-CI(#6200)中添加了arm64作业

  * [CI]修复了CUDA 11的Docker构建(#6202)

  * [CI]将非OpenMP gtest移至GitHub Actions(#6210)

  * [jvm-packages]修复了xgboost4j-gpu,xgboost4j-spark-gpu的构建(#6216)

  *添加更多用于分类数据支持的测试(#6219)

  * [dask]测试数据初始化。 (#6226)

  *将/ jvm-packages / xgboost4j中的junit从4.11碰撞到4.13.1(#6230)

  *在/ jvm-packages / xgboost4j-gpu中将junit从4.11颠簸到4.13.1(#6233)

  * [CI]减少RMM的测试负载(#6249)

  * [CI]为aarch64平台构建Python轮子(#6253)

  * [CI]在Jenkins上进行CPU测试的时间。 (#6257)

  * [CI]在ARM上跳过Dask测试。 (#6267)

  *修正了testing.py(#6271)的`is_arm()`中的错字。

  * [CI]将`egrep`替换为`grep -E`(#6287)

  *支持统一构建。 (#6295)

  * [CI]将片状测试标记为XFAIL(#6299)

  * [CI]为每个CUDA版本使用单独的Docker缓存(#6305)

  *添加了`USE_NCCL_LIB_PATH`选项,使用户能够在构建期间设置`NCCL_LIBRARY`(#6310)

  *修复不稳定的数据初始化测试。 (#6318)

  *为GitHub Actions添加徽章(#6321)

  *消毒剂的可选`find_package`。 (#6329)

  *在python测试中始终使用pytest约定(#6337)

  *修复警告消息中缺少的空间(#6340)

  *更新`custom_metric_obj.rst`(#6367)

  * [CI]在GitHub Actions上使用`--as-cran`标志运行R检查(#6371)

  * [CI]从Jenkins移除R支票(#6372)

  *将GPU外部存储器测试标记为XFAIL。 (#6381)

  * [CI]添加noLD R测试(#6382)

  *修复MPI版本。 (#6403)

  * [CI]升级到MacOS Mojave映像(#6406)

  *修复片状稀疏页面dmatrix测试。 (#6417)

  * [CI]每晚将cuDF和RMM升级到0.17(#6434)

  * [CI]修复CentOS 6 Docker映像(#6467)

  * [CI] manylinux Python轮中的[lib]供应商libgomp(#6461)

  * [CI] libgomp供应商修补程序(#6482)

  ###维护:清理并合并Rabit子模块(#6023,#6095,#6096,#6105,#6110,#6262,#6275,#6290)

  * Rabit子模块现在作为XGBoost代码库的一部分进行维护。

  * Rabit测试现在是XGBoost测试套件的一部分。

  * Rabit现在可以在Windows平台上构建。

  *我们使用clang-tidy对C ++代码进行了各种代码重新格式化。

  * XGBoost的公共标头不再依赖于Rabit标头。

  *删除了Rabit的未使用CMake目标。

  *单点模型恢复已从Rabit中删除并删除,从而大大简化了Rabit代码。这些年来,单点模型恢复功能没有得到足够的维护。

  *我们删除了Rabit对XGBoost无效的部分。

  ###维护:重构代码以提高可读性和可维护性

  *统一CPU历史记录草图(#5880)

  * [R]修复了1:length(x)和其他小物件的使用(#5992)

  *统一评估功能。 (#6037)

  *使二进制bin搜索可重用。 (#6058)

  *统一设置索引数据。 (#6062)

  * [R]删除`stringi`依赖项(#6109)

  *合并摘录剪切成QuantileContainer。 (#6125)

  *减少C ++编译器警告(#6197,#6198,#6213,#6286,#6325)

  *清理Python代码。 (#6223)

  *小清理到评估者。 (#6400)

  ###可用性改进,文档

  * [jvm-packages]添加示例以处理0以外的缺失值(#5677)

  *将DMatrix使用示例添加到C API演示(#5854)

  *在文档中列出`DaskDeviceQuantileDMatrix`。 (#5975)

  *更新Python自定义目标演示。 (#5981)

  *更新JSON模型架构以记录更多目标函数。 (#5982)

  * [Python]修复了不使用`missing`字段时的警告。 (#5969)

  *修复跟踪器日志记录中的拼写错误(#5994)

  *移动有关空数据集的警告,以便针对所有目标和指标显示警告(#5998)

  *修正安装每晚版本的说明。 (#6004)

  * [文档]将dtreeviz添加为与第三方软件集成的展示示例(#6013)

  * [jvm-packages] [doc]更新JVM软件包的安装文档(#6051)

  *修复`xgboost.callback.early_stop`文档字符串中的拼写错误(#6071)

  *将缓存后缀添加到外部存储器演示中使用的文件中。 (#6088)

  * [Doc]记录参数`kill_spark_context_on_worker_failure`(#6097)

  *修复了用于自定义目标的演示的链接(#6100)

  *更新Dask文档。 (#6108)

  *验证重量为正值。 (#6115)

  *记录更新的CMake版本要求。 (#6123)

  *为“ DaskDeviceQuantileDMatrix”添加演示。 (#6156)

  *在faq.rst(#6161)中进行了外观修复

  *修正错误讯息。 (#6176)

  * [Doc]使用XGBoost(#6177)添加在数据科学比赛中获奖的解决方案的列表

  *修复演示中的注释以使用正确的参考(#6190)

  *使用XGBoost更新获奖解决方案的列表(#6192)

  *统一的构建状态标志样式(#6203)

  * [文档]添加有关GPU编译器的信息(#6204)

  *更新获奖解决方案列表(#6222,#6254)

  *将链接添加到XGBoost的Twitter句柄(#6244)

  *修复XGBClassifier方法的文档字符串中的次要拼写错误(#6247)

  *将赞助者链接添加到FUNDING.yml(#6252)

  *将CLI演示分组到子目录中。 (#6258)

  *减少来自`gbtree`的警告信息。 (#6273)

  *创建在C / C ++应用程序中使用C API的教程(#6285)

  *更新CMake构建插件说明(#6289)

  * [doc]使Dask分发示例可复制复制(#6345)

  * [Python]添加选项以从系统路径中使用`libxgboost.so`(#6362)

  *修复了doc中的一些语法错误(#6393)

  *修复CLI文档中断开的链接(#6396)

  *改进Dask API的文档(#6413)

  *修改具有误导性的异常信息:没有这样的参数allow_non_zero_missing(#6418)

  *修复了CLI排名演示。 (#6439)

  *修复断开的链接。 (#6455)

精品推荐
同类推荐
相关下载
  • 最新排行
  • 最热排行
  • 评分最高
编程开发排行榜
实时热词