个人 O2O 优惠券预测分析
扫描二维码
随时随地手机看文章
DOI:10.16667/j.issn.2095-1302.2019.12.020
引 言
本课题基于商业 O2O 优惠券发放问题与机器学习相结合,使用经过特征提取的往期数据训练数学模型,通过训练好的数学模型对优惠券核销二分类问题进行精准预测。随机投放优惠券这种行为方式不仅会对无需求的用户造成无意义的干扰,还可能致使商家品牌声誉降低、营销成本增高。个性化投放是提高优惠券核销率的重要技术 [1],利用该技术不仅可以让具有一定偏好的消费者从中获利,同时还可以使商家获得更好的营销效果。数据来源于天池大数据比赛《生活大实惠 :O2O 优惠券使用预测》,比赛提供 O2O 相关场景的丰富数据,通过分析建模,精准预测用户是否会在规定时间内使用相应优惠券。
1 研究背景及意义
O2O 是 Online To Offline(在线离线 / 线上线下)的简称,是将线下商业机会与线上平台相结合的一种电商发展方式 [2],将线上平台作为线下消费的前站。为了吸引互联网用户在线上浏览商业信息,商家采取发送优惠券(团购,如GroupOn)、提供优惠信息、服务(预定,如 Opentable)等方式吸引顾客 [3]。线下商店推送的消息会被互联网用户收到,从而增大网民转化为自家店铺线下消费者的几率。同时店铺的线下服务可以用于线上揽客,消费者又可以从线上平台筛选线下服务,并在线结算,店铺能够很快达到规模 [4]。该模式最重要的特点是推广效果可观,交易流水可跟踪。O2O 作为下一代新兴电子商务模式,其使命是把电子商务的效力引入目前消费中占比 90% 以上的本地消费中去 [5-6]。除此之外,线上与线下的对接将打破电商、店商挤兑份额的竞争格局,两者将化敌为友,相互弥补、相互促进,并且使整体消费市场迎来一个全新发展的局面。
2 研究现状
很多学者对消费预测问题进行了研究, 例如 Zhu Zhenfeng等(2018)基 于 传 统 GBDT(GradientBoosting DecisionTree)算法,提出了一种具有层次化集成的改进预测模型(HGBDT)。该模型通过分析往期商品数据来预测商品未来的销售趋势 [7]。Jain(2017)等通过使用 XGBoost(eXtremeGradientBoosting)模型来预测和估计欧洲主要药店的零售额。与传统的回归算法相比,XGBoost模型算法性能优于传统的建模方法 [8]。国内学者郭倩(2018)对农村人均生活消费进行预测,运用 BP神经网络对农村居民的人均消费支出进行分析,结合数据拟合和精度检验,对农村居民未来三年的生活消费支出进行预测 [9]。学者魏艳华(2015) 通过对甘肃省农村居民在 1978~2011年中支出与收入的数据进行分析,建立以 ARIMAX模型为基础的消费支出预测模型,通过此模型对甘肃省农村居民未来一年的消费支出进行了预测研究 [10]。Qiumei Pu 使用 XGBoost 模型对陕西省气象干旱情况进行预测,分别以人工神经网络算法和 XGBoost算法构建数学模型,预测结果表明 XGBoost 模型比 DLNM和人工神经网络能更精确地预测 SPEI[11]。Junqi Guo 等学者在研究青少年身体体质情况时,使用 XGBoost 算法对每个青年的身体健康水平进行分类,并通过贝叶斯优化自适应调整参数。实验结果表明,该模型不仅比现有参考模型具有更高的评估精度,相较于传统的经验模型,通过 XGBoost 模型可以更好地为未来青少年的体质评估提供有效的解决方案 [12]。
由上述论述可知,逻辑回归、GBDT 及 XGBoost 模型早已被用于实际应用中,很多学者在各领域中的研究均使用了这几种模型和两两融合后的模型,预测效果得到显著提升。在商品预测领域,这些模型在顾客行为和数据挖掘竞赛中得到了深度使用 [13]。将数学模型引入实际问题进行分析研究已成为预测产业发展走向的一种新的研究方式,并且在实际预测中得到了验证[14]。
3 研究路线
本文利用天池大数据众智平台赛题《生活大实惠 :O2O 优惠券使用预测》中的真实消费者行为数据进行研究的步骤如下 :
(1)对原始数据集中的字段进行解释、数据探查、数据处理等操作。
(2)利用特征工程对线下消费和优惠券领取行为数据集构造提取出用户(User)、商家(Merchan)、优惠券(Coupon)、用户 - 商家(User-Merchan)、其他特征(Other)等五大特征群,共 96个特征值的线下特征集,再利用特征工程对用户线上点击 / 消费和优惠券领取行为数据集构造提取出 13 个用户(User)特征值的线上特征集。
(3)通过线下特征集共 96个特征值及线上和线下特征集共 109 个特征值,构建两组不同的预测模型。
研究流程如图 1 所示。
4 数据处理
4.1 数据介绍
根据天池大数据众智平台赛题《生活大实惠 :O2O优惠券使用预测》提供的相关真实消费数据 :2016年 1月 1日至 2016年 6月 30日,O2O场景相关的消费者线上和线下发生行为数据,通过训练模型预测 2016 年 7 月 1 日至 2016 年7 月 31 日消费者领取优惠券后 15 天内优惠券的核销情况。
模型预测结果的评判标准 :使用数学模型对优惠券预测的概率值取平均 AUC 值。
赛题共提供 4 个数据集,分别对 4 个数据集进行数据分析。
用户线下消费和优惠券领取行为数据集(后面称为线下数据集)中共有 1 754 884 条消费者行为数据,其中1 053 282 条数据对优惠券有操作行为,包含 539 438 个用户,8 415 个商家,9 738 种优惠券,消费者领取优惠券的日期为2016 年 1 月 1 日至 2016 年 6 月 15 日,消费者的消费日期为2016 年 1 月 1 日至 2016 年 6 月 30 日。
用户线上点击 / 消费和优惠券领取行为数据集(后面称为线上数据集)中共有 11 429 826 条数据,其中 872 357 条数据有优惠券 ID,表明消费者对优惠券有操作行为,线上数据集中含 762 858 个用户(其中 267 448 用户在线下集)。
用户 O2O 线下优惠券使用预测集(后面称为预测集)中包含 2 050 种优惠券,领取日期为 2016 年 7 月 1 日至2016 年 7 月 31 日,有 76 309 个用户(其中 76 307 个在线下数据集,35 965 个在线上数据集,线上与线下数据集中存在用户交叉),1 559 家商铺(其中 1 558 家在用户线下数据集)。
预测集提交字段和字段说明,选手提交文件字段。其 中 use_id,coupon_id 与 date_received 均来自数据集,Probability 字段为通过机器学习建立数学模型预测得到的预测值。
4.2 特征工程
“数据决定了机器学习的上限,而算法只是尽可能逼近这个上限”[15],这句话中数据的含义是对原始数据经特征工程转换和处理等一系列操作而得到的数据。特征工程流程如图 2 所示。
图 3 所示为特征群分布情况。
5 算法介绍
本文所使用的算法为逻辑规模,GBDT,XGBoost。
5.1 逻辑回归
Logistic回归是一种广义线性回归(GeneralizedLinear Model),它是一个分类算法而不是回归算法[16]。其核心思想是 :线性回归的输出结果是一个连续且范围无法确定的值,如果 出现需要利用结果值映射为判断结果的情况,并且输出结果 是一个概率值,则可通过 Sigmoid 函数确定,所以 Logistic 函数又称 Sigmoid 函数。Sigmoid函数曲线如图 4所示。
图 4 Sigmoid 函数曲线
通常情况下,将一个已知的自变量预测成一个离散型因变量的值(如二进制值 0/1,对 / 错,男 / 女)。可考虑利用逻辑函数(logit fuction)建立的数学模型对事件发生的概率进行计算,得到一个预估值。而该预估值一般为概率值,因此输出结果值在 0 ~ 1 范围内。
5.2 GBDT
GBDT(Gradient Boosting Decision Tree)是一种基于迭代构造的决策树算法,该算法是将决策树赋予集成算法思想得到的一种数学模型。回归决策树、Gradient Boosting 与缩减共同组成了 GBDT 模型 [1]。
5.2.1 回归决策树
GBDT 模型中的决策树为回归决策树,而非分类决策树。回归决策树可预测数值,如员工薪金、大树高度等,对回归树得到的数值进行加减计算是有意义的,例如 12 岁 +4 岁 -4 岁 =12 岁,而这也是回归树区别于分类树的一个显著特征。GBDT 正是利用回归树得到数值的性质,汇总所有树的结果, 从而输出最终结果。
5.2.2 梯度上升
“Boosting”意为迭代,迭代多棵树对结果值进行共同决策 [17]。采用弱学习器的结论进行综合评判,进而得到 GBDT模型。整个过程采用增量思想对每个弱学习器进行累加。
5.2.3 缩减
缩减(Shrinkage)的思想 :逐渐逼近实际结果值,该操作方式比快速逼近结果值的方式更容易降低出现过拟合的概率。因为每一个残差弱学习器只学到了真理的一小部分,并且都有可能出现过拟合现象,但在这个学习过程中增加弱学习器的数量,使用多个弱学习器进行学习可以弥补上述不足。
5.3 XGBoost
GBDT 算法的运行往往要生成一定数量的树才能达到令人满意的准确率。当面对的数据集结果较为庞大且复杂时, 可能需要进行上千次迭代运算,还会造成一定的计算瓶颈, 并增加计算空间的消耗。华盛顿大学的陈天奇博士研发出的XGBoost(eXtreme Gradient Boosting)解决了这一技术难点, 此算法基于Gradient Boosting Machine 框架,并使用c++ 实现, 从而极大地提升了模型训练速度和预测精度 [18]。
XGBoost 是一个优化的分布式梯度增强库,作为 GBDT 模型的升级版,集高效性、灵活性和便携性等特点于一身。利用 XGBoost 模型可以在较短周期内解决数据科学问题,得到较高精度的实验结果。利用 XGBoost 算法构建的数学模型单台机运行速度比当下使用的数学模型训练速度快十倍以上,并且当分布式模式或内存设置需要限制时仍可获得较为准确的实验结果。
6 实验结果6 实验结果
6.1 评判标准
在一些二分类问题中给出预测结果的同时也会给出相应的预测概率,例如假定 0.6 为正确的判定阈值,那么若预测概率大于 0.7,则判定为正确值,否则为错误值 ;若阈值降低到 0.5,则可以判断出更多的正确值。数据中正确数占比提高的同时,也导致实际为真实值但判定为错误值的数量的升高。为了直观表示该变化,引入 ROC(Receiver Operating Characteristic Curve)。ROC 曲线的横坐标为 FPR,纵坐标为 TPR,ROC 曲线下的面积即为 AUC[19]。
6.2 实验结果分析
通过提取特征数量和不同模型两个角度总结实验。
6.2.1 从特征数量分析实验结果
通过图 5 可以看到,逻辑回归、GBDT+ 逻辑回归融合模型、XGBoost 单模型仅含受线下特征集训练后的预测效果, 没有经线下和线上特征训练后模型的预测效果好。说明特征数量适量增加可以提升数学模型的预测能力和实验效果。
6.2.2 从模型的角度分析实验结果
经过线上和线下特征模型训练,XGBoost 模型的预测效果最好,GBDT+ 逻辑回归模型的效果次之,逻辑回归模型的预测效果相对较差。在经线下模型的特征模型训练后,GBDT+ 逻辑回归模型的预测效果最好,XGBoost 模型的预测效果次之,逻辑回归模型的预测效果相比较差。说明先利用训练完成的 GBDT 模型输出逻辑回归模型训练所需要的实验结果和实验结果值,再将这些实验结果和实验结果值作为训练逻辑回归模型的特征值输入到逻辑回归模型中进行学习后,预测效率得到明显提高。但总体来说,GBDT+ 逻辑回归,XGBoost 模型对此课题的预测有较好的准确性和稳定性。并且使用 GBDT+ 逻辑回归模型比传统逻辑回归模型有更好的预测效果、更高的预测精度。GBDT+ 逻辑回归,XGBoost模型是比较理想的消费预测研究模型。图 6 所示为不同模型对比预测集提交测试 AUC 值。
7 结 语
本论文研究基于简单的集成模型,以 O2O 优惠券为数据载体对消费者领取优惠券(15 天内)后对优惠券是否核销进行了精确预测。采用简单的集成学习模型预测用户在领取优惠券后 15 天内的使用情况。
除此之外,对于大量往期数据,实际数据中无实际特征可直接使用,但这些数据中含有大量可以提取的特征,所以如何科学合理地利用应用特征工程是一个重点问题。如果没有合理的特征工程,将极大地限制数学模型预测精度的提高。
在科技越来越发达的今天,数学模型已被大量用于医疗、餐饮、工业等领域,比如在医学中使用数学模型对人体检测数据进行扫描,使用数学模型预测餐饮店中的消费人数等。通过这种方式,精确预测行业运营及行业日常的管理对于后期事物的良性发展具有重要意义。