XGBOOST回归
一、组件说明
XGBoost是一种基于梯度提升决策树(Gradient Boosting Decision Tree)的机器学习算法。它通过改进传统梯度提升决策树的方式,加入正则化项、特征子采样和并行化等优化技术。XGBoost的优点是能够自动处理缺失值、异常值和噪声数据,同时具有较高的预测准确率和泛化能力。
在回归问题中,XGBoost每个决策树都是一个回归模型,它通过递归地分裂特征空间,将输入数据映射到一个连续的输出值。XGBoost通过最小化平方损失函数,学习每个决策树的叶子节点权重,并将所有决策树的输出值加权求和得到最终的预测结果。
组件截图
二、参数说明
字段设置
参数名称 | 参数说明 |
标签字段 | 用于训练的标签字段,数值类型,单选。 |
特征字段 | 用于预测的特征字段,数值类型,多选。注意:正常情况下请检查,在特征字段中不要勾选标签字段。 |
输入特征为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正则化项的系数,用于控制树的复杂度。 |
模型的训练进程数 | nthread | 控制模型训练的进程数,默认20,取决于本地计算环境的CPU资源。 |
正负权重平衡 | scale_pos_weight | 正负样本的权重比例,用于解决类别不平衡的问题。 |
隐私开销 | epsilon | 联邦学习中,差分隐私的隐私开销,数值越大,添加的噪声越小,隐私保护越弱,则越精确,训练效果越好;数值越小,隐私保护强度越强,则单样本噪音值越大,获取统计特征越困难。默认epsilon=3.0。 |
训练成功后的模型保存
训练成功后,模型将保存至标签所在的参与方平台。训练成功的模型保存在【项目台】-【模型管理】-【模型文件】中,保存名称为${工作流名称}_${建模组件名称}。例如,本项目中有成功建模的任务名为“xgb_criteo_10w”,其中有建模组件名字为“XGBOOST回归”,则模型名字为“xgb_criteo_10w_XGBOOST回归”,如下图所示: