- Python 3.6
- 操作系统 Windows
- pandas==1.0.5、numpy==1.19.5、sklearn==0.23.2、lightgbm==2.3.1、tqdm==4.50.2
- 将初赛训练数据集train_mchnt_1.csv、train_trans_1.csv、test_trans_1.csv放在当前目录下,将决赛文件包final_data_set也放在当前目录下
- 运行YLSW.py文件
- 生成predict_2.csv文件
-
由于本题主要是基于时间序列数据的分类问题,我们需要进行日期相关的特征提取,日期间隔特征便是非常重要的特征之一,离被预测日期的最后一次交易的日期间隔,日期间隔的差分统计特征包括最大值最小值方差等等,包括总的(三个月的)以及月内的统计,不同月内间隔统计特征做差、做除,可以刻画出靠近预测月商户的交易活动画像;
-
使用滑动窗口做特征统计,包括距离预测月的一周、两周、三周三个时间维度,将最靠近预测月的一周的统计特征与其他时间窗口的统计特征做差、做除来进一步刻画商户画像;
-
交易流水数据的聚合特征,包括商户交易金额的特征统计(包括最大值、最小值、均值、方差等等)、银行卡信息等的unique特征等(均包含总特征与月特征), 对不同月的金额统计特征做差,以及求比例,对unique特征也同样采用不同月份间做差的方式来处理;
-
另外还有静态信息表的基础特征,以及这些基础特征的计数特征;
-
因为非同分布数据集,对所有的数据新增了一列t特征,初赛训练集的t值为1,而决赛的训练集t值为2,用于表明数据的来源,可视为一种类别变量;
-
本方案最终采用了两个lightgbm模型进行概率加权融合来对客户流失进行预测: 具体权重为0.5 * lgb1 + 0.5 * lgb2;
-
两个模型都采用了相同的总特征以及相同的参数,但是特征使用情况不同、训练方法不同。首先是特征的不同之处,第一个模型根据树模型的特征重要性对473维基础特征进行筛选,使用了重要性大于0.2的共计397维特征,而第二个模型根据null importance的特征选择方法,最后使用筛选出的共计270维特征;然后是训练方法的不同之处,第一个模型使用初赛训练集以及决赛训练集作为全部的训练集,进行五折交叉验证,而第二个模型在使用初赛训练集以及决赛训练集的同时,只采用决赛训练集作为验证集(因为决赛的训练集与测试集分布较为相近)。