一、组件说明
XGBoost是一种基于梯度提升决策树(Gradient Boosting Decision Tree)的机器学习算法。它通过改进传统梯度提升决策树的方式,加入正则化项、特征子采样和并行化等优化技术。XGBoost的优点是能够自动处理缺失值、异常值和噪声数据,同时具有较高的预测准确率和泛化能力。
在多分类问题中,XGBoost将输入数据特征映射到多元分类输出,即预测样本所属的多个类别的概率。XGBoost的多分类算法采用Softmax函数作为损失函数,通过最小化交叉熵损失,学习每个类别的权重,并将样本预测概率归一化为概率分布。
组件截图
二、参数说明
字段设置
参数名称 |
参数说明 |
标签字段 |
用于训练的标签字段,数值类型,单选。 |
特征字段 |
用于预测的特征字段,数值类型,多选。注意:正常情况下请检查,在特征字段中不要勾选标签字段。 |
输入特征为KV格式 |
目前DataTrust支持KV格式的特征输入(即LIBSVM格式)。使用时,数据格式如下,其中key的下标应从1开始,value应均为数值: |
参数设置
参数名称 |
参数英文名称 |
参数说明 |
树的棵树 |
tree_num |
迭代次数,即决策树或线性模型的数量。 |
树的最大深度 |
max_depth |
决策树的最大深度。 |
学习率 |
learning_rate |
学习率,控制每轮迭代权重的缩小程度,适当调整可以加速模型收敛但也可能使模型过拟合。 |
最小叶子节点样本权重和 |
min_child_weight |
用于控制决策树分裂过程中每个叶子节点的最小样本权重和。当一个叶子节点的样本权重和小于min_child_weight时,停止拆分该节点,防止过拟合。min_child_weight的默认值是1,通常可以通过交叉验证等方法调整该参数的值。如果样本量较小,可以适当降低min_child_weight的值以避免欠拟合;如果样本量较大,可以适当增加min_child_weight的值以避免过拟合。 |
最小损失衰减 |
min_split_loss (gamma) |
控制树的叶子节点分裂的最小损失减少量,取值过大会导致欠拟合。 |
训练的子样本占整个样本集合的比例 |
subsample |
降采样,控制训练数据采样的比例,通常取值在0.5-1之间,可以避免过拟合。 |
在建立树时对特征采样的比例 |
colsample_bytree |
控制每棵树随机采样的列数的比例,通常取值在0.5-1之间。 |
权重的L1正则化项 |
reg_alpha (alpha) |
L1正则化项的系数,用于控制树的复杂度。 |
权重的L2正则化项 |
reg_lambda (lambda) |
L2正则化项的系数,用于控制树的复杂度。 |
分类数量 |
num_class |
样本将分为几个类。 |
模型的训练进程数 |
nthread |
控制模型训练的进程数,默认20,取决于本地计算环境的CPU资源。 |
正负权重平衡 |
scale_pos_weight |
正负样本的权重比例,用于解决类别不平衡的问题。 |
隐私开销 |
epsilon |
联邦学习中,差分隐私的隐私开销,数值越大,添加的噪声越小,隐私保护越弱,则越精确,训练效果越好;数值越小,隐私保护强度越强,则单样本噪音值越大,获取统计特征越困难。默认epsilon=3.0。 |
训练成功后的模型保存
训练成功后,模型将保存至标签所在的参与方平台。训练成功的模型保存在【项目台】-【模型管理】-【模型文件】中,保存名称为${工作流名称}_${建模组件名称}。例如,本项目中有成功建模的任务名为“xgb_criteo_10w”,其中有建模组件名字为“XGBOOST多分类”,则模型名字为“xgb_criteo_10w_XGBOOST多分类”,如下图所示: