公共 EDA(第 3 部分):Pandas 客户细分的 RFM 分析

如何逐步构建、评分和解释 RFM 细分公共 EDA 后(第 3 部分):Pandas 中客户细分的 RFM 分析首先出现在 Towards Data Science 上。

来源:走向数据科学

!如果您一直在关注,我们已经走了很长的路。在第 1 部分中,我们做了清洁和准备的“脏活”。

在第 2 部分中,我们缩小到 NovaShop 世界的高空视图  — 发现大风暴(高收入国家/地区)和季节性模式(第四季度的大规模高峰)。

但事情是这样的:企业实际上并不销售给“几个月”或“国家”。它卖给人类。

如果您一视同仁地对待每个客户,您就会犯两个代价高昂的错误:

  • 超额折扣:向已经掏腰包的人提供“20% 折扣”优惠券。
  • 忽略“安静”的客户:没有注意到以前的忠实客户何时停止访问,直到他们已经离开六个月并且为时已晚才能重新赢得他们。
  • 解决方案?行为细分。

    我们将使用数据让客户告诉我们他们是谁,而不是猜测。我们使用零售分析的黄金标准:RFM 分析来做到这一点。

  • Recency (R):他们最近多久购买的? (他们还和我们交往吗?)
  • 频率 (F):他们多久购买一次? (他们是忠诚的,还是一次性的?)
  • 货币 (M):他们花了多少钱? (他们的总体业务影响是什么?)
  • 在本部分结束时,我们将超越“十大产品”,并为 NovaShop 数据库中的每个客户实际分配一个特定的、可操作的标签。

    数据准备:“缺失 ID”数据透视点

    在开始评分之前,我们必须解决我们在第 1 部分中做出的决定。

    如果您还记得我们的初始检查,我们注意到大约 25% 的行缺少 CustomerID。当时,我们做出了保留这些行的战略业务决策。我们需要他们计算准确的总收入,并了解哪些产品总体上很受欢迎。

    对于 RFM 分析,规则发生了变化。如果没有一致的身份,您就无法跟踪行为。如果我们不知道客户是谁,我们就无法知道客户的“频率”有多高!

    设计 RFM 指标

    定义快照日期

    snapshot_date = df['InvoiceDate'].max() + dt.timedelta(days=1)