个人O2O优惠券预测分析 陈浩阳 曾诚摘 要:为了建立更加完善的特征体系和优化预测模型,提出优化特征工程体系,增加特征值数量,并改进传统逻辑回归预测模型,使用GBDT+逻辑回归的组合模型及XGBoost+逻辑回归的组合模型达到提高预测精度、提升模型预测能力的目的实验结果证明,通过优化特征工程体系和改进预测模型解决O2O优惠券发放这种预测方式可以更准确地预测消费者的消费行为,为优惠券的个性化投放提供可靠的决策支持关键词:O2O;特征工程;逻辑回归;GBDT;XGBoost;预测模型:TP39:A:2095-1302(2019)12-00-040 引 言本课题基于商业O2O优惠券发放问题与机器学习相结合,使用经过特征提取的往期数据训练数学模型,通过训练好的数学模型对优惠券核销二分类问题进行精准预测随机投放优惠券这种行为方式不仅会对无需求的用户造成无意义的干扰,还可能致使商家品牌声誉降低、营销成本增高个性化投放是提高优惠券核销率的重要技术[1],利用该技术不仅可以让具有一定偏好的消费者从中获利,同时还可以使商家获得更好的营销效果数据来源于天池大数据比赛《生活大实惠:O2O优惠券使用预测》,比赛提供O2O相关场景的丰富数据,通过分析建模,精准预测用户是否会在规定时间内使用相应优惠券。
1 研究背景及意义O2O是Online To Offline(离线/线上线下)的简称,是将线下商业机会与线上平台相结合的一种电商发展方式[2],将线上平台作为线下消费的前站为了吸引互联网用户上浏览商业信息,商家采取发送优惠券(团购,如GroupOn)、提供优惠信息、服务(预定,如Opentable)等方式吸引顾客[3]线下商店推送的消息会被互联网用户收到,从而增大网民转化为自家店铺线下消费者的几率同时店铺的线下服务可以用于线上揽客,消费者又可以从线上平台筛选线下服务,并结算,店铺能够很快达到规模[4]该模式最重要的特点是推广效果可观,交易流水可跟踪O2O作为下一代新兴电子商务模式,其使命是把电子商务的效力引入目前消费中占比90%以上的本地消费中去[5-6]除此之外,线上与线下的对接将打破电商、店商挤兑份额的竞争格局,两者将化敌为友,相互弥补、相互促进,并且使整体消费市场迎来一个全新发展的局面2 研究现状很多学者对消费预测问题进行了研究,例如Zhu Zhenfeng等(2018)基于传统GBDT(Gradient Boosting Decision Tree)算法,提出了一种具有层次化集成的改进预测模型(HGBDT)。
该模型通过分析往期商品数据来预测商品未来的销售趋势[7]Jain(2017)等通過使用XGBoost(eXtreme Gradient Boosting)模型来预测和估计欧洲主要药店的零售额与传统的回归算法相比,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,XGBoost5.1 逻辑回归Logistic回归是一种广义线性回归(Generalized Linear Model),它是一个分类算法而不是回归算法[16]其核心思想是:线性回归的输出结果是一个连续且范围无法确定的值,如果出现需要利用结果值映射为判断结果的情况,并且输出结果是一个概率值,则可通过Sigmoid函数确定,所以Logistic函数又称Sigmoid函数Sigmoid函数曲线如图4所示通常情况下,将一个已知的自变量预测成一个离散型因变量的值(如二进制值0/1,对/错,男/女)可考虑利用逻辑函数(logit fuction)建立的数学模型对事件发生的概率进行计算,得到一个预估值而该预估值一般为概率值,因此输出结果值在0~1范围内。
5.2 GBDTGBDT(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 XGBoostGBDT算法的运行往往要生成一定数量的树才能达到令人满意的准确率当面对的数据集结果较为庞大且复杂时,可能需要进行上千次迭代运算,还会造成一定的计算瓶颈,并增加计算空间的消耗华盛顿大学的陈天奇博士研发出的XGBoost(eXtreme Gradient Boosting)解决了这一技术难点,此算法基于Gradient Boosting Machine框架,并使用c++实现,从而极大地提升了模型训练速度和预测精度[18]XGBoost是一个优化的分布式梯度增强库,作为GBDT模型的升级版,集高效性、灵活性和便携性等特点于一身利用XGBoost模型可以在较短周期内解决数据科学问题,得到较高精度的实验结果利用XGBoost算法构建的数学模型单台机运行速度比当下使用的数学模型训练速度快十倍以上,并且当分布式模式或内存设置需要限制时仍可获得较为准确的实验结果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模型输出逻辑回归模型训练所需要的实验结果和实验结果值,再将这些实验。