美文网首页
星巴克广告推销效果预测

星巴克广告推销效果预测

作者: 巴黎丫丫爱生活 | 来源:发表于2020-07-20 10:49 被阅读0次

    项目概述

    这是Udacity数据科学家的毕业项目,项目提供了一系列交易相关信息,要求通过这些数据,分析出用户在什么样的广告推送下会有购买的行为发生。

    项目数据

    一共有3个数据集
    portfolio.json -- 广告特征数据

    id (string) – 推送的id

    offer_type (string) – 推送的种类,例如 BOGO、打折(discount)、信息(informational)

    difficulty (int) – 满足推送的要求所需的最少花费

    reward (int) – 满足推送的要求后给与的优惠

    duration (int) – 推送持续的时间,单位是天

    channels (字符串列表)

    profile.json -- 用户特征数据

    age (int) – 顾客的年龄

    became_member_on (int) – 该顾客第一次注册app的时间

    gender (str) – 顾客的性别(注意除了表示男性的 M 和表示女性的 F 之外,还有表示其他的 O)

    id (str) – 顾客id

    income (float) – 顾客的收入

    transcript.json -- 交易数据

    event (str) – 记录的描述(比如交易记录、推送已收到、推送已阅)

    person (str) – 顾客id

    time (int) – 单位是小时,测试开始时计时。该数据从时间点 t=0 开始

    value - (dict of strings) – 推送的id 或者交易的数额

    研究问题选择

    根据给出的数据集,我选择的研究问题是:

    不同的广告推送对不同的用户是否会有促成消费的效果。及用广告类型数据结合用户数据,预测是否会在广告推送后发生交易行为。

    因为最后预测的结果为:是否会有消费行为,属于二分类问题,这里我选择了用了随机森林作为基础模型进行预测。因为这个模型的适用范围较广,在学习数据不多的情况下也有良好表现。

    清洗数据

    step1: 我先对三个数据集进行的数据分布的观察:

    step2: 数据处理

    整理Target user数据:

    1. 将offer viewed event筛选出来

    2.将viewed event和profile数据通过user的id联系起来,把user的profile数据和event进行联系。

    3.将transition的event筛选出来和1,2步整理好的数据通过user的id连接起来

    4.通过计算transition time - view time 对比offer during 筛选出看来优惠券后在优惠券有效期内产生的消费记为yes,否则记为no。

    5.通过dummy的方式,将预测target变成target_customer_no和target_customer_yes. Offer的type也变成bogo, discount, ifnformational三个类。

    最后整理得到的模型training data 结构如下:

    member_days 是根据用户加入会员时间到reporting (2020/7/20) 时间的天数

    target_customer_no 表示这个用户在此种offer下没有发生消费

    target_customer_yes则表示这个用户在此种offer下发生了消费

    构建模型

    我选用了随机森林模型,参数选择了500棵树。最后的预测结果如下:

    模型的yes类的recision较高,no的recall 比较高,说明模型的预测性相对较好,但鲁棒性较差。

    模型的数据不是很平衡,这个是影响模型质量的原因。

    模型选择/比较 (Logistic Regression Classifier)

    接着我又尝试了Logistic Regression Classifier,尝试结果如下。比较precision, 非target customer的组预测结果很差,原因可能是no组的样本较少。target customer为yes的组precision也明显低于Random Forest。所以不选此模型。

    模型评估:

    这里我选用了Yes 类的Precision作为主要的评估指标,因为yes预判错误的损失最多是多发了几个无用的广告推荐,没有什么损失。但是如果少发的广告而落掉了目标客户,那么损失相对是较大的。

    改进:

    增加数据量,尤其是informational的数据相对较少。

    精选精细化调参,可以进一步提高模型准确率。

    最开始选择预测优惠券有效的类型,分成3类,但由于数据不足模型精度较低。转成预测是否有效的binary预测,精度相对有所提高。因为合并成两类后,增加了产生消费的数据量,精度相对提高。

    结论:

    本项目的工作流程可以总结为:

    1. 初步观察客户信息、offer信息和系统记录event,了解样本数量和质量;

    2. 定义项目目标:怎样的客户在怎样的推送下会有购买行为?

    3.确认需要的训练数据内容

    4.整理数据,构建Training dataset

    5.测试多款分类器尝试评估合适选项

    6. 确定随机森林分类器并进行模型调优

    7.生成预测结果和validation结果,计算precision进行模型评估。

    总体感觉数据的清洗过程比较有挑战,需要处理一些异常值,比如删掉超过110岁的顾客。还需要把不同的event删选处理进行拼接。

    相关文章

      网友评论

          本文标题:星巴克广告推销效果预测

          本文链接:https://www.haomeiwen.com/subject/gdalkktx.html