覆盖主要内容
版本: 6.1.0

XGBoost

组件介绍

**“XGBoost”(XGBoost)**控件用于构建XGBoost算法模型。可用于分类任务或回归任务。

XGBoost又叫极度梯度提升树,是一个优化的分布式梯度增强库,旨在实现高效,灵活和便携。它在 Gradient Boosting 框架下实现机器学习算法。XGBoost提供并行树提升(也称为GBDT,GBM),可以快速准确地解决许多数据科学问题。


  • 输入:
    • data:数据集
    • pre: 预处理方法
  • 输出:
    • lrn: 在交互页面中配置参数后的XGBoost学习算法
    • mod: 已训练的模型(仅当输入端data存在时,才会有输出信息)

页面介绍

点击**“XGBoost”(XGBoost)**控件查看参数配置页面,如下图所示:

参数选项

选项说明取值范围样例值
模型名称

设置模型名称,用于在其他组件中区分不同的模型

非空字符串XGBoost
学习器类型

每次迭代时的学习器类型
gbtree:基于树的模型
dart:树模型
gblinear:线性模型

gbtree
dart
gblinear

gbtree
学习率为了防止过拟合,更新过程中用到的收缩步长0.000001~10.3
gamma如果分裂能够使loss函数减小的值大于gamma,则这个节点才分裂。gamma设置了这个减小的最低阈值。如果gamma设置为0,表示只要使得loss函数减少,就分裂0~100000
树最大深度树的最大深度0~100006
叶子节点最小样本权重和所需观察的叶子节点最小权重总和0~100001
子节点最大delta步数在最大增量步长中,允许的每棵树的权重估计。如果该值设置为0,则表示没有约束。如果将其设置为正值,则可以帮助使更新步骤更加保守0~100000
训练实例的子样本比例用于训练模型的子样本占整个样本集合的比例0.000001~11
抽样方法

训练样本的采样方法
uniform:每个训练实例的选择概率均等
gradient_based:每个训练实例的选择概率与规则化的梯度绝对值成正比

uniform
gradient_based

uniform
L2正则化权重关于权重的L2正则项(类似于岭回归)0.000001~11
L1正则化权重L1正则化项的权重(类似于Lasso回归)0.000001~10.000001
树构造算法

树构造算法
auto:使用启发式选择最快的方法。中小数据集:精确的贪心算法;大数据集:近似算法
exact:精确的贪心算法
approx:近似的贪心算法,使用分位数图和梯度直方图
hist:快速直方图优化近似贪心算法

auto
exact
approx
hist

auto
Scale Pos Weight在高级别不平衡的情况下,应使用大于0的值,因为它有助于更​​快的收敛。0.000001~11
树更新方式

定义了要运行的树更新器的顺序,提供构建和修改树的模块化方法
grow_colmaker:非分布式的基于列构造的树
distcol:基于列的数据分割模式的分布式树结构
grow_histmaker:基于全局直方图计数的基于行数据分割模式的分布式树结构
grow_local_histmaker:基于局部直方图计数
grow_skmaker:使用近似的 sketching 算法
sync:同步所有分布式节点中的树
refresh:根据当前数据刷新树的统计值 and/or 叶子结点的值,不执行数据行的随机子抽样
prune:剪枝,当 loss < min_split_loss (gamma)

grow_colmaker
distcol
grow_histmaker
grow_local_histmaker
grow_skmaker
sync
refresh
prune

grow_colmaker
提升过程

运行提升过程的一种类型

default
update

default
添加新节点策略

控制增加新节点的方式
depthwise:在离根最近的结点进行分割
lossguide:loss 最大改变的结点上进行分割

depthwise
lossguide

depthwise

使用案例

在下图所示的案例中,使用**“加载文件”(File)控件加载数据集,连接“XGBoost”(XGBoost)控件进行模型构建,之后把“加载文件”(File)控件以及“XGBoost”(XGBoost)控件与“预测”(Predictions)**控件连接起来查看预测的结果。

案例中加载 iris 数据集,其余参数使用默认值。案例中控件的配置以及执行结果如下图所示。