生活大实惠:O2O优惠券使用预测

转载的博主blog链接在此
wepon第一名代码

workflow

数据探索 EDA

  • 熟悉数据的分布、特点等等,为数据预处理和特征工程做基础。

数据预处理

  • 不属于同一量纲
  • 信息冗余
  • 定性特征不能直接使用
  • 将定性特征转换为定量特征
  • 存在缺失值
  • 信息利用率低

特征工程: 主要是来自wepe的特征
特征主要分为这几类:

  • 用户线下相关的特征
  • 用户线上相关的特征
  • 商家相关的特征
  • 用户-商家交互特征
  • 优惠券相关的特征
  • 其它特征

这里对于特征的选择,我大量参考了别人的代码和第一届比赛后的开源代码。首先搜集到尽可能足够多的特征,然后再去判断特征是否有用,考虑是否删除还是其他操作。

  • 特征选择时候可以考虑使用过拟合训练的方法,使用100%数据集训练,使用100%数据集测试,观察auc
  1. 当auc距离1越远的时候,说明你的特征不足够多,再去探索寻找更多的特征,直到这里的auc接近1
  2. 然后,过拟合训练完成后,输出特征重要性。删除一些特征重要性低的特征,不断过拟合训练,保持auc基本不变。
  3. 最后你得到的是尽可能少的特征数量,但又能足够表示这批数据的特性。

模型选择: 尝试尽可能多的回归和分类模型

  • wepe当时只使用了三个模型,这里你可以尝试更多的模型,比他做的更好。
  • 尝试所有分类回归的模型,只要这些模型的表现还可以,就尽可能的单模型调到最优。
    (使用CV本地验证即可,一般来说本地CV和线上LB是基本一致的)
  • 我当时只是使用了8个模型,然后直接blending,加权融合(我首先单个模型依次提交,给auc高的模型打高的权重,但这其实是很容易过拟合的)
  • 训练多个基模型完成后,使用stacking或者bagging进行模型融合

建议 or 上分指南

  • 特征一定要保证合适
  • 训练足够多的基模型,使用stacking
    第一层使用基模型训练出多个预测的auc
    第二层使用逻辑回归(或者其他模型)来拟合第一层的输出作为这一层的输入,然后输出最终的auc

tips:集成学习
常见的 Ensemble 方法:
Bagging
Boosting
Blending
Stacking
从理论上讲,Ensemble 要成功,有两个要素:
Base Model 之间的相关性要尽可能的小
Base Model 之间的性能表现不能差距太大

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!针对O2O优惠券使用预测的问题,您可以考虑使用机器学习算法来进行预测。以下是一个简单的预测流程: 1. 数据收集:收集O2O优惠券使用的历史数据,包括用户的消费行为、领取优惠券的情况以及优惠券的属性等信息。 2. 数据预处理:对收集到的数据进行清洗和处理,包括处理缺失值、异常值和重复值等,同时进行特征工程,从原始数据中提取有用的特征。 3. 特征选择:根据问题的具体情况,选择合适的特征进行建模,可以考虑用户的历史消费情况、优惠券的属性、用户的个人信息等。 4. 模型选择和训练:选择适合的机器学习模型进行训练。常用的模型包括逻辑回归、决策树、随机森林、支持向量机等。可以使用交叉验证等技术来评估模型性能并选择最佳模型。 5. 模型评估和优化:使用测试集对训练好的模型进行评估,评估指标可以包括准确率、召回率、F1值等。如果模型表现不佳,可以考虑调整模型参数或者尝试其他模型。 6. 使用模型进行预测使用训练好的模型对新数据进行预测,可以根据用户的消费行为、优惠券属性等信息,预测用户是否会使用优惠券。 需要注意的是,预测的准确性可能会受到数据质量和特征选择的影响,因此在进行预测之前,确保数据的质量和特征的有效性非常重要。另外,不同业务场景下可能需要调整模型和特征选择的方法,具体情况需要根据实际需求进行调整。希望这些信息对您有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值