Skip to content

This is a data analysis report about Starbucks

Notifications You must be signed in to change notification settings

NovelAn/starbucks

Repository files navigation

关于星巴克推广活动的实验测试

## 下载源码,请使用以下命令在你的本地上克隆repo

git init
git clone [项目源码链接]

项目背景

本项目是星巴克的一道面试题,希望能够通过训练用户数据,了解购买咖啡的用户在V1-V7(用户属性)存在哪些特性和规律,使宣传活动更有针对性,从而最大化如下两个评估指标。

要详细了解星巴克提供给应聘者的数据集,请参阅此处的说明

项目简介

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

评估指标

  • 增量响应率 (IRR)

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

    $$ IRR = \frac{purch_{treat}}{cust_{treat}} - \frac{purch_{ctrl}}{cust_{ctrl}} $$

  • 净增量收入 (NIR)

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

分析步骤

  • 数据评估与清洗
  • 显著性检验
  • 探索性分析
  • 建模
  • 得出结论

工具库及版本要求

  • python - <3.5+>
  • numpy --<1.16.5>
  • pandas --<0.25.1>
  • matplotlib.pyplot --<3.1.1>
  • imlbearn
# 该功能库用于解决数据集分类不平衡的问题,采用人工合成新数据的相关算法,解决不平衡的问题

pip install -U imbalanced-learn

相关数据集说明

本项目编写了实现数据采集的脚本

  • training.csv:用于探索和训练的数据集
  • Test.csv:用于测试模型好坏的数据集
  • test_results:用于测试模型好坏的脚本说明

本项目在建模的过程需要着重解决数据不平衡的问题,因为本项目提供的数据集在存在购买行为的用户和未存在购买行为的用户在样本量差异过于悬殊,所以如果直接将原始数据集代入模型,计算出来的模型会变得毫无意义,所以解决这个问题很重要。

About

This is a data analysis report about Starbucks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages