一文搞懂XGBoost回归——从原理到应用
概念
是"极端梯度上升"( )的简称, 算法是一类由基函数与权重进行组合形成对数据拟合效果佳的合成算法。
和传统的梯度提升决策树( GBDT )不同, 给损失函数增加了正则化项,且由于有些损失函数是难以计算导数的, 使用损失函数的二阶泰勒展开作为损失函数的拟合。
由于在处理大规模数据集和复杂模型时更高效,同时在防止过拟合和提高泛化能力方面也表现出色。因此自提出后,便受到了统计学、数据挖掘、机器学习领域的欢迎。
2. 梯度提升树和提升算法
是基于梯度提升树的算法,因此首先要了解梯度提升树的原理。
梯度提升树是一种集成学习方法,通过逐步迭代地训练一系列弱学习器(通常是决策树),每一次迭代都尝试纠正前一次迭代的误差,最终将这些弱学习器组合成一个强学习器。
3. 模型公式
对于包含 n 条 m 维的数据集 , 模型可表示为:
其中,
F={f(x)=wq(x)}(q:Rm→{1,2,...T},w∈RT)" role="" style=": 0px; max-width: none; -wrap: ; : -block; line-: ; font-size: 16px; word-: ; float: none; : ltr; max-: none; min-width: 0px; min-: 0px; -width: 0px; -style: ; -color: ;">={�(�)=��(�)}(�:��→{1,2,...�},�∈��)是CART决策树结构集合, q 为样本映射到叶子节点的树结构,T 为叶子节点数,w 为叶节点的实数分数。构建 模型时,需要根据目标函数最小化的原则寻找最优参数,以建立最优模型。 模型的目标函数可分为误差函数项 L 和模型复杂度函数项 Ω。
目标函数可写为:
Obj=L+Ω" role="" style=": 0px; max-width: none; -wrap: ; : -block; line-: ; font-size: 16px; word-: ; float: none; : ltr; max-: none; min-width: 0px; min-: 0px; -width: 0px; -style: ; -color: ;">
在使用训练数据对模型进行优化训练时,需要保留原有模型不变,加入一个 新的函数 f 到模型中,使目标函数尽可能大的减少,具体过程为:
此时目标函数表示为:
在 算法中,为快速寻找到使目标函数最小化的参数,对目标函数 进行了二阶泰勒展开,得到近似目标函数:
当去掉常数项后可知:目标函数仅仅与误差函数的一阶和二阶导数相关。此时,目标函数表示为:
若树的结构部分 q 已知,可使用目标函数寻找最优 Wj,并得到最优目标函数值。其本质可归为二次函数的最小值求解问题。解得:
Obj 是可作为评价模型的打分函数, Obj 值越小则模型效果越好。通过递归调用上述树的建立方法,可得到大量回归树结构,并使用 Obj 搜索 最优的树结构,将其放入已有模型中,从而建立最优的 模型。
4. 案例及软件实现4.1 案例介绍
研究“幸福感”的影响因素,有四个变量可能对幸福感有影响,他们分别是:经济收入、受教育程度、身体健康、情感支持。建立 模型来预测幸福度。
4.2 软件实现
Step1:打开,新建分析;
Step2:上传数据;
Step3:选择对应数据打开后进行预览,确认无误后点击开始分析;
step4:选择【 回归】;
step5:查看对应的数据数据格式,按要求输入【 回归】数据;
step6:进行参数设置(“更多设置”里的参数在客户端可进行设定)
step7:点击【开始分析】,完成全部操作。
4.3 结果展现
输出结果 1:模型参数
图表说明:上表展示了训练该模型的时候,输入的参数以及训练所耗的时间。
输出结果 2:特征重要性
图表说明:上柱形图或表格展示了各特征(自变量)的重要性比例。(附:有时候可以利用特征重要性反推该变量在实际生活中的价值,因为该重要性往往决定分类结果。)
分析: 模型中决定分类结果的重要因素是受教育程度。
输出结果 3:模型评估结果
图表说明:上表中展示了交叉验证集、训练集和测试集的预测评价指标,通过量化指标来衡量 的预测效果。其中,通过交叉验证集的评价指标可以不断调整超参数,以得到可靠稳定的模型。
MSE(均方误差):预测值与实际值之差平方的期望值。取值越小,模型准确度越高。
RMSE(均方根误差):为 MSE 的平方根,取值越小,模型准确度越高。
MAE(平均绝对误差):绝对误差的平均值,能反映预测值误差的实际情况。取值越小,模型准确度越高。
MAPE(平均绝对百分比误差):是 MAE 的变形,它是一个百分比值。取值越小,模型准确度越高。
R²:将预测值跟只使用均值的情况下相比,结果越靠近 1 模型准确度越高。
分析:训练集中 R 方为 0.989,测试集中为 0.987,拟合效果优秀。
输出结果 4:测试数据预测评估结果
图表说明:上表展示了 模型对测试数据的分类结果,第一列是预测结果,第二列是因变量真实值。
输出结果 5:测试数据预测图
图表说明:上图中展示了 对测试数据的预测情况。由图可知,真实值与预测值十分接近,说明训练出来的 模型在测试集上预测效果极好。
输出结果 6:模型预测与应用(此功能只在客户端支持使用)
注:当无法进行预测功能时,可检查数据集中是否存在定类变量或者缺失值:
当存在定类变量时,请在用于训练模型的数据集和用于预测的数据集中将变量编码,再进行操作。
(:数据处理->数据编码->将定类变量编码为定量)
当用于预测数据的数据集中存在缺失值时,请删去缺失值再进行操作。
情况 1:在上面模型评估后,模型分类结果较好,具有实用性,这时我们将该模型进行应用。点击【模型预测】上传文件可以直接得到预测结果。
经上述操作后,得到以下结果:
情况 2:若是上传的数据包括因变量真实值,不仅仅可以得到预测结果,还可以得到当前应用数据预测评估效果。
经上述操作后,得到以下结果:
由于 具有随机性,每次运算的结果不一样。若需要保存本次训练模型,需要使用 客户端进行。
5. 总结
通过前面的介绍,我们了解到回归模型有一些参数是需要设计者给出的,也有一些参数是模型自己学习得到的。那么,哪些参数是需要模型设计者确定的呢?
回归模型的超参数是需要模型设计者确定的,包括学习率、树的数量、树的最大深度、正则化参数等。这些超参数的选择对模型的性能和泛化能力有着重要的影响。模型设计者需要通过经验、交叉验证和网格搜索等方法来确定最优的超参数组合。
另一方面,回归模型会根据给定的超参数通过梯度提升树算法进行训练,并自动学习普通参数,如树的结构、叶节点的权重等。这些参数是模型根据数据自动调整和优化的,无需手动指定。
然而,超参数的确定是一个困难的任务,需要通过实践和尝试来找到最佳的超参数组合。希望设计者通过持续的努力和探索,能够充分发挥回归的优势并取得更好的模型表现。
编辑 / 张志红
审核 / 范瑞强
复核 / 张志红
点击下方