XGBOOST多分类

XGBOOST多分类

更新时间:
一键部署

一、组件说明

XGBoost是一种基于梯度提升决策树(Gradient Boosting Decision Tree)的机器学习算法。它通过改进传统梯度提升决策树的方式,加入正则化项、特征子采样和并行化等优化技术。XGBoost的优点是能够自动处理缺失值、异常值和噪声数据,同时具有较高的预测准确率和泛化能力。

在多分类问题中,XGBoost将输入数据特征映射到多元分类输出,即预测样本所属的多个类别的概率。XGBoost的多分类算法采用Softmax函数作为损失函数,通过最小化交叉熵损失,学习每个类别的权重,并将样本预测概率归一化为概率分布。

组件截图

image.png

二、参数说明

字段设置

参数名称

参数说明

标签字段

用于训练的标签字段,数值类型,单选。

特征字段

用于预测的特征字段,数值类型,多选。注意:正常情况下请检查,在特征字段中不要勾选标签字段。

输入特征为KV格式

目前DataTrust支持KV格式的特征输入(即LIBSVM格式)。使用时,数据格式如下,其中key的下标应从1开始,value应均为数值:

image.png

参数设置

参数名称

参数英文名称

参数说明

树的棵树

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多分类”,如下图所示:

image.png