获奖团队简介
团队名称:保住绿码
团队成员:计炜梁(队长)、王雪涵、李雨晨、程唯、高于科
本团队5名成员分别来自中国工程物理研究院、东南大学、海康威视、南京大学以及上海工程技术大学。
计炜梁(队长),现就职于中国工程物理研究院,曾获2022 AIWIN发债企业的违约风险预警亚军、2021 CCF BDCI系统风险预测冠军、2021讯飞开发者大赛环境空气质量预测赛道亚军等。
王雪涵(队员),毕业于东南大学。
李雨晨(队员),现就职于海康威视,曾获2022 AIWIN发债企业的违约风险预警亚军、2021 CCF BDCI系统风险预测冠军、2021ATEC科技精英赛科技新星榜冠军,2021招商银行FinTech精英训练营冠军等。
程唯(队员),毕业于南京大学。
高于科(队员),就读于上海工程技术大学。
所获奖项:三等奖
摘 要
本赛题中,我们使用中国联通的信令数据、通话数据以及互联网行为等数据,基于多种树模型和神经网络模型,同时结合特征交叉,通过stacking及排序加权平均等方法对异质模型进行融合,最终实现对个人是否会返乡工作的高质量高鲁棒性预测。
关 键 词
分类预测,梯度提升树,神经网络
1 数据探索
本赛题将基于中国联通的信令数据、通话数据、互联网行为等数据进行建模,构建用户返乡行为特征模型,对个人是否会返乡工作进行判断。比赛数据是联通数科根据真实数据模拟的数据并均为匿名特征,其中根据特征类别可分为位置类特征、互联网类特征以及通话类特征。
1.1 探索性数据分析(EDA)
本赛题数据集分为训练集与测试集,训练集包含59872条数据,测试集包含49926条数据。其中包含46个特征,f1-f2与f4-f6为位置类特征,f3与f7-f42为互联网类特征以及f43-f46通话类特征。
首先对特征数据进行数据类型标准化与空值分析。如图1-2,数据中不包含空值特征不需要进行空值填补,使用LabelEncoder对特征f3进行编码。
图1:特征字段info图
如图2所示,训练集与测试集中包含有较多重复数据,考虑到通信场景下信令数据的重复与重复的次数等具有实际意义,选择在特征工程部分进一步分析处理。
图2:数据去重图
1.2 训练集与测试集数据质量与分布分析
在实际生产环境中,噪声数据的产生往往无法避免,而噪声会大大影响数据质量,进而对后续数据应用与模型构建都会造成很大的问题。因此,对数据进行质量检测,噪声过滤是数据探索分析(EDA)中重要的一部分。如图3,使用对抗验证思想将训练集分为6份构建简单模型并使用auc评价指标进行验证。结果显示,训练集中1-50000条数据的auc评价指标分数均在0.89以上,说明有较好的分类能力,而训练集中50000-59872条分数的auc评分为0.5左右,说明此部分数据分类能力弱,为干扰数据。
图3:训练集分段数据AUC评分图
大部分机器学习算法都有一个前提假设:训练数据样本和位置的测试样本来自同一分布。如果测试数据的分布跟训练数据不一致,那么就会影响模型的效果。在一些机器学习相关的竞赛中,给定的训练集和测试集中的部分特征本身很有可能就存在分布不一致的问题。实际应用中,随着业务的发展,训练样本分布也会发生变化,最终导致模型泛化能力不足。
检测模型训练集与测试集特征分布一致性的方法有:KDE核密度估计分布图、KS检验。如图4-5,在进行EDA过程中主要使用了KDE分布图进行分布一致性检验,结果表明各特征分布一致性较好。
图4:f2特征数据分布一致性KDE图
图5:f46特征数据分布一致性KDE图
1.3 特征与标签相关性分析
在二分类问题中,通常进行数据探索性分析的过程时,需要对各个分类特征中不同类别对于标签列的映射关系进行分析。在本赛题中,当分类特征中不同类别的取值对于标签列的敏感度大,即此类别相比于其他类别其返乡率较高,即可初步将其预分为重要特征进行下一步分析。当存在某些特征类别其返乡率高但数据量较小时,其特征相对不稳定,则可以进行类别组合。如图6-7,结果表明各个特征中类别的返乡率有不同趋势,可以作为进一步的进行特征的组合交叉与提取的参考。而针对于图7,此类特征中某类别值的比例超过99%,这类特征对于模型的训练价值不大,可以对其进行drop操作。
图6:f3特征中各类别的返乡率
图7:f16特征中各类别的返乡率
2 特征提取
由于所给数据为匿名数据,并未给出各列特征的具体含义,仅将除id之外的特征分为了位置类特征、互联网特征以及通话类特征三类。在原始特征的基础上,我们通过特征交叉等方式衍生了更多特征。总的来说,所使用特征包括以下三部分。
2.1 原始特征
原始特征除f3为明显的类别特征之外,其余均可看作数值特征直接输入模型,则对f3采用LabelEncoder进行编码。同时从前述数据探索可知,部分特征其99%以上均为相同值,这种特征的信息含量少,应予以删除。
2.2 交叉特征
由于数据匿名,难以从业务角度进行分析与构造特征,我们采用暴力特征交叉的方式,对3种特征分别交叉,对其中每两两进行加减乘除的操作。
此外,根据模型中的重要度,还构造了更多的交叉特征,如:f4+f5+f6,f1/(f4+f5+f6)及f2/(f4+f5+f6)等。
2.3 重复次数特征
如前述所述,样本中存在大量完全相同的行,考虑到其可能存在业务意义,因此对其出现的重复次数进行计数,构造成为新特征。
3 模型搭建
3.1 模型选择
我们同时采用了树模型和神经网络模型作为基模型进行模型搭建。其中树具有代表性地选取了Lightgbm[1]、Catboost[2]及Xgboost[3]。而神经网络方面,一是采用了经典的全连接层堆叠的MLP结构(加入了Dropout以降低过拟合),同时也采用了自动化网络学习框架TabTransformer[4]。
虽然网络模型的得分普遍低于树模型,但将其作为融合的备选模型更进一步提升了整体性能。
3.2 数据集划分
为了保证训练集和验证集正负样本比例与原始数据集相同如图11所示,采样多折分层交叉验证(StratifiedKFold)的方法进行训练集与验证集的划分。
图11:分层交叉验证示意图
4 模型融合
我们采用了两种模型融合方式,第一种是stacking,另一种则是取rank后加权平均。
如图12所示,Stacking方法是一种分层模型集成框架。在我们的模型中,我们进行了多组Stacking操作,例如将一个lightgbm模型和一个catboost模型作为初级学习器,将数据集分成多折训练集和验证集,利用训练集训练得到的初级学习器,然后用初级学习器对验证集进行预测,并将输出值作为下一阶段训练的输入值,最终的标签作为输出值,用于训练次级学习器。我们的次级学习器采用逻辑回归。
图12:Stacking示意图
为了使预测结果更为鲁棒,我们选取了多个相关系数差异较大的结果进行加权平均融合。由于评价指标AUC仅对排序敏感,因此融合前先对预测结果求rank,再进行加权求和并归一化获得最终的融合结果。
致 谢
感谢竞赛主办方提供的平台与机会,感谢联通提供的宝贵数据集,感谢队友间的相互鼓励与合作。
参 考
[1] Ke G, Meng Q, Finley T, et al. Lightgbm: A highly efficient gradient boosting decision tree, Advances in neural information processing systems. 2017: 3146-3154.
[2]Prokhorenkova L, Gusev G, Vorobev A, et al. CatBoost: unbiased boosting with categorical features. Advances in neural information processing systems, 2018, 31.
[3]Chen T, Guestrin C. Xgboost: A scalable tree boosting system. Proceedings of the 22nd acm sigkdd international conference on knowledge discovery and data mining. 2016: 785-794.
[4]Huang X, Khetan A, Cvitkovic M, et al. Tabtransformer: Tabular data modeling using contextual embeddings. arXiv preprint arXiv:2012.06678, 2020.
—End—
戳“阅读原文”,速来参赛办赛~
原文始发于微信公众号(DataFountain):【三等奖方案】返乡发展人群预测「保住绿码」团队思路