文档首页 > > 算法节点参考> 算法节点说明> 回归(建模)> XGBoost回归

XGBoost回归

分享
更新时间: 2019/07/05 GMT+08:00

概述

XGBoost全称为eXtreme Gradient Boosting,Gradient Boosting是一种Boosting方法,Boosting方法的主要思想是将弱学习器组合起来形成强学习器。Gradient Boosting是在每个迭代中加入新的弱学习器,来拟合前面所有弱学习器的残差,最终使用学习到的多个弱学习器组成强学习器。

XGBoost由GBDT延伸而来,XGBoost以决策树作为弱学习器时,是在损失函数里加入了正则项且在特征粒度上支持并行的GBDT。这使得XGBoost相比GBDT能够更好地防止过拟合,模型效果更好,同时模型训练效率远高于GBDT,更适用于大规模的数据建模。

“XGBoost回归”节点构造一个XGBoost回归模型。

输入和输出

  • 输入:包含元数据和数据集。

    元数据中Target属性列仅支持一列,其数据类型支持Integer和Real两种,Measurement level仅支持Continuous类型;Input属性列支持String、Integer、Real三种数据类型,Measurement level支持Nominal、Flag、Ordinal和Continuous四种。

  • 输出:XGBoost回归模型。

    由多个决策树组成。

参数说明

表1 “XGBoost回归”节点参数说明

参数

说明

默认值

学习目标

模型学习目标。可选值有reg:linear、reg:logistic、reg:gamma和rank:pairwise。

reg:linear

评估指标

模型优劣的评估标准。当学习目标选择reg:linear、reg:logistic时,评估指标的可选值有rmse和mae;

当学习目标选择reg:gamma时,评估指标的可选值有rmse、mae和gamma-deviance;

当学习目标选择rank:pairwise时,评估指标的可选值有map和ndcg。

当学习目标选择reg:linear、reg:logistic、reg:gamma时,评估指标的默认值均为rmse;当学习目标选择rank:pairwise时,评估指标的默认值为map

迭代次数

模型训练的迭代次数。取值区间为[1,10000]。

1

提升类型

提升方法的提升类型。可选值只有gbtree。

gbtree

学习率

每个迭代参数更新用到的收缩步长。取值区间为[0,1]。

0.3

最小损失减少

每次分裂需要达到的最小损失减少,损失减少大于该值才进行下一次分裂,否则节点为叶子节点。取值区间为[0,+∞)。

0.0

最大树深度

每棵树的最大深度,树的深度达到该值后树不再进行分裂。取值区间为[1,+∞)。

6

采样率

输入样本中的数据作为训练数据的百分比。取值区间为(0,1]。

1.0

样例

以糖尿病病情进展预测为例,根据糖尿病患者特征(年龄、性别、体重指数、平均血压和六个血清测量值),预测以此为基线一年后病情进展的定量测量值。

输入数据如表2表3所示。其中字段“y”代表一年后病情进展的定量测量值。

表2 元数据样例

字段

类型

测量尺度

角色

age

Integer

Continuous

[19,79]

Input

sex

Integer

Flag

1,2

Input

bmi

Real

Continuous

[18.0,42.2]

Input

bp

Integer

Continuous

[62,133]

Input

s1

Integer

Continuous

[97,301]

Input

s2

Real

Continuous

[41.6,242.4]

Input

s3

Integer

Continuous

[22,99]

Input

s4

Real

Continuous

[2.0,9.09]

Input

s5

Real

Continuous

[3.2581,6.107]

Input

s6

Integer

Continuous

[58,124]

Input

y

Integer

Continuous

[25,346]

Target

表3 部分数据样例

age

sex

bmi

bp

s1

s2

s3

s4

s5

s6

y

59

2

32.1

101

157

93.2

38

4

4.8598

87

151

48

1

21.6

87

183

103.2

70

3

3.8918

69

75

72

2

30.5

93

156

93.6

41

4

4.6728

85

141

24

1

25.3

84

198

131.4

40

5

4.8903

89

206

50

1

23

101

192

125.4

52

4

4.2905

80

135

23

1

22.6

89

139

64.8

61

2

4.1897

68

97

36

2

22

90

160

99.6

50

3

3.9512

82

138

使用“XGBoost回归”节点建立的工作流如图1所示。节点“从数据集读取数据”读入数据集,节点“拆分”把输入数据集分为训练数据集和测试数据集,节点“保存模型”存储训练好的模型,节点“模型应用”使用训练好的XGBoost回归模型对测试集中的数据进行预测,节点“保存数据到数据集”中存储对测试数据集的预测结果。

图1 使用“XGBoost回归”节点的工作流

“XGBoost回归”节点的参数设置如图2所示。

图2 “XGBoost回归”节点的参数设置

“保存数据到数据集”节点中存储的对测试数据集的预测结果如图3所示,新增的一列为对一年后病情进展的定量测量值的预测结果。

图3 “保存数据到数据集”节点的输出结果片段
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区