O2O优惠券预测

O2O优惠券预测

赛题理解

赛题类型

本赛题要求提交的结果是预测15 天内用券的概率,这是一个连续值,但是因为用券只有用与不用两种情况,而且评测指标是典型的二分类评测指标AUC,所以这是一个二分类问题

解题思路

总结来说,解题流程是数据分析 -> 特征工程 -> 训练与验证 -> 模型融合。

数据探索

理论知识

数据可视化分布

1、箱线图

箱线图(Box-Plot) 是用于显示一组数据分散情况的统计图,因其形状如箱子而得名。

箱线图的绘制过程:首先,找出一组数据的上下边缘、中位数及两个四分位数;然后,连接这两个四分位数,画出箱体;最后,将上下边缘分别与箱体连接,这样中位点就位于箱体中间。

箱线图可以观察数据分布的特征,也可以用于对多组数据分布特征进行比较。

2、直方图和Q-Q图

直方图(Histogram)是用一系列高度不等的纵向条纹或线段来表示数据的分布情况,是一种统计报告图。一般横轴是数据类型,纵轴是统计特征(比如频数)。

Q-Q图( Quantile-Quantile Plot)以散点图的方式,通过绘制两个概率分布对应的分位数对不同分布进行比较。Q-Q图可以用于检验数据是否为正态分布。在Q-Q图上,将数据的分位数作为x轴坐标值,同时将计算出的假定为正态分布时的数据分位数作为y轴坐标值。当实际数据近似为正态分布时,Q-Q图的点会落在一条直线上。

3、分布对比

我们可以通过绘制不同特征项的核密度(Kdeplot)来对比数据分布。由于核密度估计是通过核函数对数据点进行拟合,因此得到的数据分布图比直方图更加平滑。

4、线性关系

使用regplot()函数可以对两个特征项之间的线性回归关系进行可视化展示。

特征工程

赛题特征工程思路

(1)首先可以通过offline训练数据直接提取训练集特征并进行标记(结合"Date_recieved"和"Date"即可判断该优惠券是否使用),通过测试数据提取测试集特征。

(2)在训练集中可以直接提取的特征主要与优惠券相关,包括折扣率、优惠券类型(是否为满减)、满额、减额、距离等。

(3)进一步可以提取统计特征。包括用户统计特征,如用户领取优惠券次数(总数,核销,未核销)、用户消费次数(总数,用券,未用券)、折扣率(最大,最小,平均)等;优惠券统计特征,如核销率、领取次数、消费次数、使用距离(最大,最小,平均)等;商家统计特征,如优惠券被领取次数及使用概率(总数,核销,未核销)、使用距离(最大,最小,平均)、被使用优惠券的折扣率(最大,最小,平均)等;关联统计特征,如用户领取商家的优惠券次数、用户领取商家优惠券后的不核销次数、用户领取商家优惠券后的核销次数、用户领取商家优惠券后的核销率等。

(4)评估穿越。在机器学习中,我们之所以要将样本划分为训练集和测试集,主要就是希望在测试集上做评估,而不是在训练集上做评估,防止发生过拟合,进而使评估结果更加准确。评估穿越,指的就是由于样本划分不当,使测试集中的信息"穿越"到了训练集中, 导致评估结果更偏爱过拟合的模型,致使结果不够准确。为了防止评估穿越,本赛题在滑窗的过程中,要注意预测区间和特征区间一定不能重叠,直接使用全局数据的统计量更是不可取

(5)滑窗。滑窗(滑动窗口)就是指定单位长度的时间序列,然后计算窗口区间的统计指标。这一过程也相当于让一个指定长度的滑块在刻度尺上面滑动,每滑动一个单位即可反馈滑块内的数据。采用滑窗的方法可以得到多份训练数据集,特征的窗口区间越小,得到的训练数据集的数量越多。

对特征区间的数据集可以提取各种统计特征,对预测区间的数据集可以提取优惠券等数据本身的特征,同时对是否用券进行标记。

(6)穿越特征。就是在训练集上提取的特征,或者外部取得的在目标时间段内的数据。穿越特征在实际应用中意义不大,因为用的是"未来"的数据,在实际过程中是得不到的。但是在比赛过程中,经常对分数有很大提高。以本赛题为例,在提供的预测集中包含了同一个用户在整个7月的优惠券领取情况,这实际上是一种穿越。比如,存在这种情况:某一个用户在7月10日领取了某优惠券,然后在7月12日和7月15日又领取了相同的优惠券,那么7月10日领取的优惠券被核销的可能性就很大了。在加入这部分特征后,AUC可以提升约10个百分点。

说明:不同的比赛对穿越特征的要求不一样,有的比赛绝对不允许使用穿越特征,有的比赛允许。在参加比赛时,如果发现穿越特征,则一定要与主办方确认是否可以使用!

(7)特征方案。正如前面章节所讲,机器学习方案是一个不断迭代的过程,作为机器学习关键环节的特征工程,更是需要不断地迭代、优化。上面我们已

经分析了要提取的特征,在此基础上,按照由浅入深、由简单到复杂的顺序提取了三个版本的特征。

特征V1:直接在训练集、测试集上提取的特征,也就是将给定数据项进行数值化的结果。

特征V2:在特征V1的基础上,增加了滑窗统计特征,包括用户统计特征、优惠券统计特征、商家统计特征、关联统计特征等。

模型训练与验证

相关推荐
顶顶年华正版软件官方3 小时前
IDM下载器如何下载网盘文件 IDM下载器支持哪些网盘
阿里云·腾讯云·idm
凭栏落花侧6 小时前
决策树:简单易懂的预测模型
人工智能·算法·决策树·机器学习·信息可视化·数据挖掘·数据分析
bin91538 小时前
【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
bin91531 天前
【EXCEL数据处理】000009 案列 EXCEL单元格数字格式。文本型数字格式和常规型数字格式的区别
大数据·前端·数据库·信息可视化·数据分析·excel·数据可视化
安冬的码畜日常1 天前
【D3.js in Action 3 精译_028】3.4 小节 DIY 实战:使用 Observable 在线绘制 D3 条形图
前端·javascript·信息可视化·数据可视化·d3.js·observable
FUXI_Willard1 天前
MATLAB绘图基础9:多变量图形绘制
开发语言·matlab·信息可视化·数据可视化·matlab绘图
bin91532 天前
【EXCEL数据处理】000014 案例 EXCEL分类汇总、定位和创建组。附多个操作案例。
信息可视化·数据挖掘·数据分析·excel·数据可视化·数据图表·excel 数据分析
bin91532 天前
【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换,和文本日期格式转换。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
强heaven2 天前
【Streamlit案例】制作销售数据可视化看板
python·信息可视化
安冬的码畜日常2 天前
【D3.js in Action 3 精译_025】3.4 让 D3 数据适应屏幕(中)—— 线性比例尺的用法
前端·javascript·信息可视化·数据可视化·d3.js·d3比例尺·javascript可视化