星巴克客户推广策略探索

作者:jcmp      发布时间:2021-04-25      浏览量:0
一、背景介绍本数据是星巴克公开数据,包含

一、背景介绍

本数据是星巴克公开数据,包含 120,000 个数据点,按照 2:1 的比例划分为训练文件和测试文件。数据模拟的实验测试了一项广告宣传活动,看看该宣传活动能否吸引更多客户购买定价为 10 美元的特定产品。由于公司分发每份宣传资料的成本为 0.15 美元,所以宣传资料最好仅面向最相关的人群。每个数据点都有一列表示是否向某个人发送了产品宣传资料,另一列表示此人最终是否购买了该产品。每个人还有另外 7 个相关特征,表示为 V1-V7。

优化策略

通过训练数据了解 V1-V7 存在什么规律表明应该向用户分发宣传资料。具体而言,目标是最大化两项指标:

IRR 表示与没有收到宣传资料相比,因为推广活动而购买产品的客户增加了多少。从数学角度来说,IRR 等于推广小组的购买者人数与购买者小组客户总数的比例 ( treatment ) 减去非推广小组的购买者人数与非推广小组的客户总数的比例 ( control )。

NIR 表示分发宣传资料后获得(丢失)了多少收入。从数学角度来讲,NIR 等于收到宣传资料的购买者总人数的 10 倍减去分发的宣传资料份数的 0.15 倍,再减去没有收到宣传资料的购买者人数的 10 倍。

针对预测应该包含推广活动的个人比较指标,即第一象限和第二象限。由于收到宣传资料的第一组客户(在训练集中)是随机收到的,因此第一象限和第二象限的参与者人数应该大致相同。 比较第一象限与第二象限可以知道宣传策略未来效果如何即可。 也就是说, 我们对预测参与宣传推广活动的客户应用两项指标计算,力争使其最大化。

二、设计构想

1.预测在收到宣传资料更可能会购买的客户,参与推广活动;

2.预测在收到宣传资料更倾向购买且未收到宣传资料不会主动购买的客户,参与推广活动。

三、构想实施

导入数据并查看

0: 83494 1 :1040

Yes :42364 No :42170

收到宣传且购买的用户特征

收到宣传未购买的用户特征

未收到宣传购买的用户特征

未收到宣传未购买的用户特征

发现:

策略一

数据预处理

对连续数据v2,v3进行标准化,其他分类特征one_hot编码,使用策略1对收到推广之后购买的客户标签记为1,其余记为0 标签:

可以看出:这是一个标签分布非常不平衡的数据集,0标签是1标签数据的110多倍。

验证数据的比例甚至更加悬殊

直接使用xgboost分类

简单评估下这个分类结果,在标签比列为16773:134的数据集中,如果随机进行选择,我们期望应该是就像抛硬币,各占一半,也就是8387:8386:67:67,现在9057:7716:34:100的结果显然超过这个最低要求,说明在xgb算法中设置scaleposweight = 114这个权重参数起到了一定的调节作用。

计算验证集指标

将模型应用到测试数据

输出结果

smote过采样处理

经过过采样处理之后的标签数量持平,这里简单介绍一下过采样和smote方法。

过采样就是制作与原数据相似的或者相同的数据,增大其数量占比

smote是一种过采样方法,通过随机选择需要过采样的数据点,使用k近邻算法匹配附近的同类样本,并在他们之间添加新的样本。

过采样之后使用xgb预测

策略二

数据预处理

模型训练

收到宣传用户模型预测

未收到宣传用户模型预测

策略二获得了更高指标分数,甚至没有进行迭代调优,没有收到推广的用户模型auc值仅达到0.54,但它仍然轻松超过了策略一的分数,不过策略二直接使用了策略一的部分参数设置,可以说是在策略一基础上的一个发展策略。

四、总结

本次星巴克客户宣传推广策略的探索,其实是一个很有代表性的问题,商家谋求精准定位潜在营销对象,实施精准推广宣传,降低转化成本和行为成本,但是用户特征往往差异很小,极难做出精确分辨,尤其是类似数据很不平衡的分类问题,准确率是一个误导指标,xgboost的scale pos weight权重指标和SMOTE过采样方法提供了一个比较好的解决方案,可以帮助快速实现分类性能的提升,同样重要的还有策略的内在逻辑,好的方法与好的逻辑相结合,才能获得好的结果。