重要价值客户占 7.67% 的人数,贡献 49.05% 的金额;流失客户占 15.92%,只贡献 4.83%。 四类客户对应四套花钱办法——如果处置办法一样,这次分群等于白做。 方法的局限要写在报告里:只有三个维度、M 不看时间、没有预测能力。
上一篇把名单定下来了,这一篇把它变成结论和动作,再给第 12 章和四个项目收尾。 这一篇的核心是一张表:人数占比对金额占比。
一、两个占比一对比,故事就出来了
| 类别 | 人数占比 | 金额占比 | 平均 R | 平均 F |
|---|---|---|---|---|
| 重要价值 | 7.67% | 49.05% | 57 | 29.0 |
| 潜力 | 41.50% | 33.06% | 113 | 7.5 |
| 一般 | 34.92% | 13.06% | 310 | 4.9 |
| 流失 | 15.92% | 4.83% | 569 | 4.4 |
这张表是整章的结论。人数占比和金额占比一对比,故事自己就出来了。 重要价值客户只占 7.67%,却贡献了 49.05% 的金额——将近一半的钱来自不到一成人。 流失客户占 15.92%,只贡献 4.83%。他们已经用脚投票了。
潜力客户 41.50% 的人贡献 33.06% 的钱,人数和金额的比例接近,说明这一堆「够活跃但还不够值钱」。
二、四类客户,四套花钱办法
| 类别 | 特征 | 该做什么 |
|---|---|---|
| 重要价值 | 来得勤、买得多、最近还来 | 重点维护、专属客服 |
| 潜力 | 最近来过,买得还不多 | 推高客单、交叉销售 |
| 一般 | 偶尔来,金额不高 | 低成本触达 |
| 流失 | 很久没来,本来就买得少 | 低成本召回,不行就放 |
四个类别对应四种花钱方式,这才是客户分群的目的。 如果四类客户的处置办法一模一样,那这个分群等于白做——只是把名单换了个颜色。 算一笔账:重要价值客户 92 人,平均 M 25865 元。流失一个,等于丢掉两万五。
所以维护他们的预算该按「挽回成本」算,而不是按人头平均分。这就是分群带来的第一个改变。
三、这套方法的局限,要写进报告
第一,只有 R、F、M 三个维度。品类偏好、渠道来源、获客成本,一个都没进来。 第二,M 用的是累计金额,没考虑时间。五年前花十万和去年花十万,被当成一样。 第三,没有预测能力。它说的是「现在像谁」,不是「以后会怎样」。
想补第三点,得用第 8 章的分类模型:拿「是否流失」当标签训练一遍,输出的是概率。 想补第一点,得把品类、渠道这些列拼进来——特征工程永远是下一步。 主动写出局限,比等人问出来强。一份报告的可信度,往往就在这几句话上。
四、第 12 章小结:这一章真正教的是什么
技术上有三件:命名聚合算 RFM、标准化之后聚类、按均值给簇起名。 方法上有两件更要紧:「越小越好」的指标要翻方向,聚类结果要拿外部标准验一次。 业务上有一件:模型的输出要能翻译成动作。说不清「这堆人该怎么办」,分群就没完成。
这三层缺一层,项目都只能算做了一半。技术做得再漂亮,说不清动作也是白做。
五、四个项目,一套流程
第 9 章连数据库,第 10 章读 Excel 做预测,第 11 章带图表模块,第 12 章做客户分群。 四个项目,同一套流程:取数、洗数、统计、建模、出结论。变的是数据形状和问题类型。 第 9 章的重点是「数据不在手边」,第 10 章是「怎么评分」,第 11 章是「怎么选特征」。
这一章的重点是「怎么把模型输出翻译成业务动作」——聚类给堆号,人给名字和策略。 四件事凑齐,一个数据分析项目才算完整。少一件,都只是半成品。 全书正文到此结束。最后一篇附录是 PyCharm 快捷键速查,纯查表用,不涉及分析。
六、动手 Demo:客户价值结果分析
把四类客户的人数占比、金额占比、平均 R 和平均 F 摆在一张表里。 这张表就是整章的结论,也是写报告时唯一必须带上的那张表。
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
rfm = pd.read_csv("rfm.csv", index_col=0)
Z = StandardScaler().fit_transform(rfm[ ["R", "F", "M"]].values.astype(float))
Z[:, 0] = -Z[:, 0]
rfm["簇"] = KMeans(n_clusters=4, n_init=10, random_state=42).fit_predict(Z)
g = rfm.groupby("簇").agg(平均M=("M", "mean"))
by_m = list(g.sort_values("平均M", ascending=False).index)
NAME = {by_m[0]: "重要价值客户", by_m[1]: "潜力客户",
by_m[2]: "一般客户", by_m[3]: "流失客户"}
rfm["类别"] = rfm["簇"].map(NAME)
a = rfm.groupby("类别").agg(人数=("R", "size"), 金额=("M", "sum"),
平均R=("R", "mean"), 平均F=("F", "mean"))
a["人数占比"] = a["人数"] / len(rfm) * 100
a["金额占比"] = a["金额"] / rfm["M"].sum() * 100
print(a.sort_values("金额占比", ascending=False).round(2).to_string())
实跑输出:
--------------------------------------------------------------------
客户价值结果分析
--------------------------------------------------------------------
① 人数占比与金额占比,两个都要看
--------------------------------------------------------------------
| 类别 | 人数占比 | 金额占比 | 平均 R | 平均 F |
|---|---|---|---|---|
| 重要价值客户 | 7.67% | 49.05% | 57 | 29.0 |
| 潜力客户 | 41.50% | 33.06% | 113 | 7.5 |
| 一般客户 | 34.92% | 13.06% | 310 | 4.9 |
| 流失客户 | 15.92% | 4.83% | 569 | 4.4 |
这张表是整章的结论。人数占比和金额占比一对比,故事就出来了。
重要价值客户只占 7.67%,却贡献了 49.05% 的金额。
流失客户占 15.92%,只贡献 4.83%。
② 每类该怎么对待
--------------------------------------------------------------------
| 类别 | 特征 | 该做什么 |
|---|---|---|
| 重要价值 | 来得勤、买得多、最近还来 | 重点维护,专属客服,别让他走 |
| 潜力 | 最近来过,但买得还不多 | 推高客单,交叉销售 |
| 一般 | 偶尔来,金额不高 | 低成本触达,别投太多钱 |
| 流失 | 很久没来,本来买得也少 | 低成本召回,不行就放掉 |
四个类别对应四种花钱方式,这才是客户分群的目的。
如果四类客户的处置办法一模一样,那这个分群等于白做。
③ 这套方法的局限
--------------------------------------------------------------------
第一,只有 R、F、M 三个维度。品类偏好、渠道来源、获客成本,一个都没进来。
第二,M 用的是累计金额,没考虑时间。五年前花十万和去年花十万,被当成一样。
第三,没有预测。它说的是「现在像谁」,不是「以后会怎样」。
想补第三点,得用第 8 章的分类模型:拿「是否流失」当标签训练一遍。
想补第一点,得把品类、渠道这些列拼进来——特征工程永远是下一步。
④ 第 12 章小结,也是四个项目的收尾
--------------------------------------------------------------------
第 9 章连数据库,第 10 章读 Excel 做预测,第 11 章带图表模块,第 12 章做客户分群。
四个项目,同一套流程:取数、洗数、统计、建模、出结论。变的是数据形状和问题类型。
第 9 章的重点是「数据不在手边」,第 10 章是「怎么评分」,第 11 章是「怎么选特征」。
这一章的重点是「怎么把模型的输出翻译成业务动作」——聚类给堆号,人给名字和策略。
四件事凑齐,一个数据分析项目才算完整。少一件,都只是半成品。
! 全书最后一篇是附录:PyCharm 快捷键速查,纯查表用,不涉及分析。
两个占比的分母不一样:人数除以客户数,金额除以总金额。写成同一个分母是最常见的错。
sort_values("金额占比") 让表按重要性从上往下排,老板第一眼看到的就是最值钱那类。
平均 R 和平均 F 放进来是为了让读者能自己复核「为什么这堆叫重要价值」——结论要能被检查。
30 秒实验
- 把「重要价值」和「流失」两类的平均 R 相减,看差多少天。
- 算一算:如果流失客户里有 20% 能被召回,金额能多多少?
- 想一想:如果公司只有 1000 块预算,你会全花在重要价值客户身上吗?为什么?
常见误区
- 两个占比用同一个分母:人数占比和金额占比的分母不同,搞混了整张表就没意义。
- 四类客户给同一套策略:那样分群等于白做,只是把名单换个颜色。
- 不写局限:只有三维度、M 不看时间、没有预测能力,这三条必须交代。
- 把分群当终点:分群只是起点,后面还有预算怎么分、动作怎么落地、效果怎么量。
自测三问(点开对答案)
1. 为什么「两个占比」这张表是整章的结论? —— 它把人数和金额放在一起看,一眼能看出「谁撑起了收入」,也一眼能看出「谁已经走了」。 2. 重要价值客户只有 92 人,为什么值得单独维护? —— 他们贡献了 49.05% 的金额,平均每人 25865 元。流失一个的损失,抵得上几十个一般客户。 3. 这套 RFM 分群最大的局限是什么? —— 只有三个维度、M 不看时间、没有预测能力。它描述「现在像谁」,不说「以后会怎样」。正文到此结束。最后是附录:PyCharm 常用快捷键速查,纯查表用。
- ☐ (本篇完,下一篇 A.1 PyCharm 常用快捷键速查)