当前位置:首页 期刊杂志

基于GBDT 的个体收入水平预估*

时间:2024-05-04

谭 波 潘庆雯 程 雯

(武汉邮电科学研究院 武汉 430074)

1 引言

个体收入水平评估任务常见于那些依赖于捐款而存在的非营利性组织。了解个体的收入情况可以帮助一个非营利性的机构更好地了解他们要捐赠多少,或他们是否应该接触这些人。近年来,许多机器学习算法被用于个体收入水平的评估中,比如高斯朴素贝叶斯(GaussianNB)[1],支撑向量机(SVM)[2],决策树(DecisionTree)等。决策树模型对缺失值不敏感,易于实现和理解,数据预处理简单[3],但在处理特征关联性强的数据表现不好,如果有时间顺序的数据,需要大量的预处理,同时容易出现过拟合现象;支撑向量机在样本数据较小时可以有效地处理高纬度[4]的数据,由于只使用一部分子集进行模型训练,不需要太大内存,但是当数据集中缺少较多数据,模型对于数据缺失敏感。然而这些算法在数据缺省,数据样本比例不均衡,数据集存在异常值的情况下,模型预测的准确率会受到影响。GBDT 通过将多个基学习器组合提升模型的预测性能。同时GBDT 可以处理混合类型的数据[5],也能处理非平衡数据和缺省数据,通过选取适当的损失函数,可以提升模型在输出空间存在异常值情况下的健壮性。在UCI 公开的人口普查数据集中,验证了GBDT 在个体收入评估上的实用性和准确性。

2 Boosting介绍

GBDT属于Boosting算法[6]的一种,这类算法的工作机制都比较类似,首先需要从初始的训练集中训练出一个基学习器,再根据基学习器的表现对样本的权重进行调整,使得先前基学习器中的误分类训练样本在后续的训练中得到更多的关注,然后用调整后的样本分布来训练下一个基学习器。经过反复地进行这个过程,会产生指定个数为N个的基学习器,最终将这N 个基学习器进行加权结合,得到最终的模型。

为了对回归和分类问题进行非线性拟合,可以创建一种自适应基函数模型,它有如下形式:是第 m 个基函数[7],该基函数形式可以通过输入的数据确定。通常而言,基函数是参数化的,可以写成其中vm是基函数自身的参数,通过将表示整个参数集,这样得到的模型参数就不再是线形化的。因此我们只能计算出估计值θ的局部最优值,然而这样的模型在性能方面通常比线形模型表现更好。

Boosting 是一种贪心算法,用来拟合自适应基模型,φm为基函数/弱学习器。通过将弱学习器循环作用于加权的数据中,每次循环后提高误分样本的分布概率,误分样本在训练集中所占权重增大,使得下一次循环弱学习器能集中对误分样本进行判断。该弱学习器可以是任意分类器或者回归器,但是通常使用CART 模型。在1998 年,Leo Breiman 提出在boosting中浅层的决策树是最佳的弱学习器。这一观点在2006 年Caruana 和Niculescu-Mizil 的实验中通过将10 种不同分类器进行广泛的试验比较后得到证实的[9],同时该实验通过ROC 曲线显示提升决策树在降低分类误差和产生良好校准概率两方面均表现最佳。

Boosting最初是在计算机学习理论中推导出来的,主要解决二分类问题。将分类准确率高于0.5的学习器作为弱分类器。在训练集上,可以通过组合任意多个弱学习器进而获得分类准确率性能的提升。1998 年,Breiman 提出 boosting 可以通过函数空间的梯度下降方式解释的观点,这一观点通过Friedman在2000年得到进一步扩展,Friedman提出boosting是可用于处理各种各样的损失函数包括鲁棒回归,泊松回归等[10]。

3 GBDT原理

通过将boosting 方法推广到更加一般的情况,可以得到梯度提升方法(grading boosting),当我们的目标是最小化公式(1):

其中f=(f(x1),…,f(xN))是参数,将通过梯度下降的方式得到最佳解。在第m步时,令gm是在f=fm-1时刻L(f)的梯度,如式(2):

对fm进行更新,fm=fm-1-ρmgm,其中ρm是步长。以上就是函数式梯度下降。在当前形式中,该算法只是在N个数据点上优化f,通过修改算法,将一个弱学习器近似为负梯度,如式(3)。

整个算法流程可以总结如下:

如果squared loss 作为该算法的损失函数,那么可以得到L2Boosting,如果log-loss作为该算法的损失函数,可以得到BinomialBoost。该算法相比LogitBoost 的优势在于,可以相对容易地能扩展到多分类的问题[11],同时该算法对于许多损失函数都适用。

4 实验结果分析

该实验将使用1994 年美国人口普查收集的数据,数据集来自UCI机器学习知识库。这个数据集是由 Ron Kohavi 和 Barry Becker 在发表文章“Scaling Up the Accuracy of Naive-Bayes Classifiers:A Decision-Tree Hybrid”之后捐赠的,这里探索的数据集相比于原有的数据集有一些小小的改变,比如说移除了特征“fnlwgt”以及一些遗失的或者是格式不正确的记录。通过选用几个监督学习算法来准确建模被调查者的收入。然后根据初步结果从中选择出最佳的候选算法,并进一步优化该算法从而更好地建模这些数据。目标是建立一个能够准确预测被调查者年收入是否超过50000 美元的模型。通过使用高斯朴素贝叶斯、随机森林以及GBDT 方法,进行收入分类性能比较实验。为了保证GBDT 的最佳分类预测性能,采取5 折交叉验证方法。交叉验证法可以提升训练样本和测试样本的多样性,同时降低模型偏差。通过将数据集随机划分为同等规模的五份,轮流地将四份数据作为训练集,剩余一份作为验证集。在训练集上得到训练的参数,在验证集上计算分类误差。通过最小化分类误差,得到模型的最佳参数。

该实验期望模型具有准确预测那些能够年收入大于$50,000 的能力比模型具有高的查全率更重要,于是使用F-beta score 作为评价指标,这样能够同时考虑查准率和查全率如式(4)所示:

尤其是,当β=0.5 的时候更多强调查准率,该指标称为F0.5score。通过对多个模型的实验结果比较如表1所示。

表1 Naive-Bayes、Random Forest、GBDT模型结果

由表1 中实验数据可以看出,GBDT 模型有最佳的精度和F 得分结果,随机森林[12]模型效果次之,朴素贝叶斯模型[13]效果最不佳。GBDT 唯一的缺点是模型需要更多的训练时间,但是在本文中,训练时间并不是问题,因为GBDT只需要9s左右的训练时间,训练时间在合理范围内。

将GBDT 作为最佳的候选模型,利用网格搜索(GridSearchCV)方法进行模型调优。在GBDT的提升过程中主要调整基分类器个数,以及学习率;对每个树基分类器调整最大深度和最小样本分割数目;最后通过最小化学习率来提高模型健壮性。模型参数调优完成后,在测试集上完成模型的评估。模型在测试集上效果如表2所示。

表2 测试集上模型结果对比

由表2 可以看出,经过优化的GBDT 模型比未优化的模型在精确率方面提升了0.7%,在F-score方面提升了1.1%。而经过优化的GBDT 比基准水平在精确度上提高350.73%,在F-score 方面提升了大概256.26%。通过交叉验证和网格搜索,得到的优化后的模型准确率和F-score比基准预测器高的多,但是比未优化的模型比,提升不大。因为GBDT 算法自适应性已经很强大了,增加弱学习器的数量并不能大幅度地提高算法的准确度和F-score。

在数据上(比如这里使用的人口普查的数据)使用监督学习算法的一个重要的任务是决定哪些特征能够提供最强的预测能力。专注于少量的有效特征和标签之间的关系,能够更加简单地理解这些现象,这在很多情况下都是十分有用的。在本文的情境下期望选择一小部分特征,这些特征能够在预测被调查者是否年收入大于$50,000 这个问题上有很强的预测能力。通过提取五个用于预测被调查者年收入是否大于$50,000 最相关的特征信息。主成分特征如图1所示。

图1 主成分特征

可以看出年龄和工时这两个特征对收入的影响最大,而学历和职业反而不是影响收入的较大因素。通过观察图1 展示五个用于预测被调查者年收入是否大于$50,000 最相关的特征的可视化图像,可以看到前五个最重要的特征贡献了数据中所有特征中超过一半的重要性。这提示我们可以尝试去减小特征空间,简化模型需要学习的信息。通过使用更少的特征来训练,在评价指标的角度来看,本文的期望是训练和预测的时间会更少。最终将模型在只使用五个特征的数据上和使用所有的特征数据上的F-score 和Accuracy 进行比较,结果如表3全量特征与部分特征结果对比所示。

表3 全量特征与部分特征结果对比

通过表3 发现使用部分特征会导致Accuracy和F-score都略有下降。一般而言会考虑部分特征作为一种备选方案,可以看出精确度降低的并不多,而F-score 反映地是查准率/查全率的不同偏好。有些场景比如商品推荐系统,更希望推荐内容确实是用户感兴趣的,那么查准率更重要一些,那么需要的特征需要多一点。又比如逃犯信息检索系统中,尽可能地少漏掉逃犯,那么查全率希望高一些。如果是第二种情况,那么适当的减少点特征值相对影响较小。最后通过选择已训练的GBDT模型在测试集上完成模型效果评估,在测试集上Accuracy是0.8648,F-score是0.7443。

5 结语

本文针对当前收入水平预估算法只应用于某种类型单一且数据比例平衡的问题,提出基于Gradient Boosted Decision Tree(GBDT)的个体收入水平预估方法,实验表明GBDT 算法相对工业常用随机森林[14],朴素贝叶斯算法保持较高分类准确率[15],以及更好的稳定性和普适性。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!