案例数据
300 位电商用户 × 5 列连续变量(月消费金额、月购买频次、平均客单价、网购年限、活动参与度),演示 K-means 聚类把用户划分为 4 类典型画像,并用轮廓系数选 K、ANOVA F 检验变量区分力。
| 文件名 | cluster.xlsx |
|---|---|
| 样本量 | 300 行 |
| 变量数 | 5 列连续变量(消费行为 + 用户活跃度) |
| 数据用途 | 消费者画像:基于 5 维消费行为把电商用户分为高净值 / 重度用户 / 价值新客 / 沉睡用户 4 类 |
| 变量说明 | 月消费金额(元)、月购买频次(次)、平均客单价(元)、网购年限(年)、活动参与度(1-10)。 |
完整案例
1. 背景
某电商平台运营团队希望对存量用户做精细化分层,以便对不同人群投放不同的营销策略:高净值客户需要 1 对 1 服务,重度用户要提客单价,新客要做留存,沉睡用户要做唤醒。问题是:用户行为是连续变量(消费金额、购买频次等),没有现成标签,必须用聚类把用户"挖"出来。本案例基于 300 位用户的 5 维消费行为(月消费金额、月购买频次、平均客单价、网购年限、活动参与度)用 K-means 聚类回答三个问题:①最合适的 K 是多少?②各簇用户的典型画像是什么?③5 个变量是否都对分类有区分力?
2. 理论与公式
K-means 把 N 个样本按欧氏距离分入 K 个簇,目标是让簇内方差最小、簇间距离最大;选 K 用肘部法 + 轮廓系数;变量区分力用 ANOVA F 检验。
μk 是第 k 个簇中心。SSE 越小簇内越紧凑,但 K 越大 SSE 必然减小,需配合下面两个指标选 K。
a(i) 同簇平均距离,b(i) 最近异簇平均距离;s∈[-1,1],越接近 1 越好,一般 >0.5 视为结构清晰。
对每个变量分簇做单因素 ANOVA,F 越大、p 越小说明该变量越能区分簇。
3. 数据结构
每行 1 位用户,5 列连续变量描述其消费行为。所有变量均为定量变量,可直接进入 K-means(聚类前需标准化以消除量纲差异):
| 变量名 | 类型 | 单位 / 取值 | 业务含义 |
|---|---|---|---|
| 月消费金额 | 连续 | 元(100-30000) | 用户近 30 天总订单金额,反映消费力 |
| 月购买频次 | 连续 | 次(0-50) | 近 30 天下单次数,反映粘性 |
| 平均客单价 | 连续 | 元(50-5000) | 单笔订单平均金额,反映档次偏好 |
| 网购年限 | 连续 | 年(0-20) | 注册时长,反映成熟度 |
| 活动参与度 | 连续 | 1-10 评分 | 大促 / 优惠券使用频率,反映价格敏感性 |
K-means 仅支持定量变量;如含性别、城市等分类变量需先 One-Hot 编码或改用 K-Prototypes / 两步聚类。所有变量量纲差异大时(如金额 vs 评分)必须 Z-score 标准化,否则金额会主导距离计算。
4. 操作步骤
- 登录 SPSSzero,进入 工作台 → 上传
cluster.xlsx - 左侧方法栏 → 进阶方法 → 点击 聚类分析(K-means)
- 把 5 个变量(月消费金额 / 月购买频次 / 平均客单价 / 网购年限 / 活动参与度)拖入 聚类变量 框
- 设置 聚类个数 K(先填 K=4;如想自动选 K 可勾选"自动选 K"或先用肘部法 + 轮廓系数比较多个 K)
- (可选)勾选 标准化(默认开启,强烈建议保留)
- 点击 开始分析,查看选 K 指标表、聚类中心表、ANOVA 区分力表
5. 结果表格与结果阅读
结果区按 选 K → 看簇 → 验证变量 三步输出。下面是 K-means 在 cluster.xlsx 上的实测结果(标准化后,random_state=42, n_init=10):
| K 值 | SSE(类内平方和) | SSE 下降幅度 | 轮廓系数 | 判定 |
|---|---|---|---|---|
| K=2 | 938.83 | — | 0.369 | 结构偏弱 |
| K=3 | 528.29 | ↓ 43.7% | 0.482 | 轮廓最高 |
| K=4 | 376.92 | ↓ 28.7% | 0.444 | 业务最优 ✓ |
| K=5 | 352.35 | ↓ 6.5% | 0.370 | 肘部之后 |
| K=6 | 330.77 | ↓ 6.1% | 0.285 | 过度分割 |
| K=7 | 309.37 | ↓ 6.5% | 0.274 | 过度分割 |
| 肘部出现在 K=4(之后 SSE 下降仅 6.5%);K=3 轮廓系数最高(0.482),K=4 略低(0.444)但仍属"结构清晰",且能进一步拆出"高净值"和"重度用户"两类高价值人群,业务可解释性更强 → 最终选 K=4。 | ||||
选 K 不是纯统计问题:当多个 K 的轮廓系数都 >0.4 时,应优先选业务上能命名、能落地策略的 K。这里 K=3 会把"高净值"和"重度用户"合并,运营无法区分对待。
| 簇号 | 画像命名 | 样本数 | 占比 | 月消费金额(元) | 月购买频次(次) | 平均客单价(元) | 网购年限(年) | 活动参与度 |
|---|---|---|---|---|---|---|---|---|
| 簇 3 | 高净值客户 | 65 | 21.7% | 8223 | 5.6 | 1670 | 5.7 | 6.1 |
| 簇 2 | 重度用户 | 78 | 26.0% | 5102 | 18.3 | 373 | 8.0 | 8.5 |
| 簇 0 | 价值新客 | 91 | 30.3% | 2684 | 6.7 | 495 | 2.3 | 7.1 |
| 簇 1 | 沉睡用户 | 66 | 22.0% | 1113 | 2.0 | 397 | 4.1 | 3.1 |
| 加粗为该簇在该维度上的最高值;命名依据簇中心在 5 维上的相对位置,对应电商运营常用的"金字塔分层"。 | ||||||||
关键观察:簇 3(高净值)以客单价 1670 元领跑(其他簇 <500);簇 2(重度用户)以月 18 次购买频次 + 8.5 活动参与度领跑;簇 0(价值新客)网购年限仅 2.3 年但活动参与度高(7.1)→ 可培养潜力;簇 1(沉睡用户)所有维度都偏低 → 需唤醒。4 类规模分布均衡(22%-30%),无极端小簇。
| 变量 | F 统计量 | p 值 | 区分力排序 | 判定 |
|---|---|---|---|---|
| 月购买频次 | 508.05 | <0.001 | 1(最强) | ★★★ 核心区分变量 |
| 平均客单价 | 334.70 | <0.001 | 2 | ★★★ 核心区分变量 |
| 月消费金额 | 330.84 | <0.001 | 3 | ★★★ 核心区分变量 |
| 网购年限 | 261.71 | <0.001 | 4 | ★★ 重要 |
| 活动参与度 | 173.46 | <0.001 | 5 | ★★ 重要 |
| 5 个变量的 ANOVA 均 p<0.001 → 全部对聚类有显著区分力;月购买频次(F=508)区分力最强,月消费金额 + 平均客单价 + 月购买频次 3 个金额/行为变量共同主导聚类结构。 | ||||
7. 文字分析
对 300 位电商用户的 K-means 聚类(K=4)综合分析:
- 选 K 依据:肘部法显示 K=4 之后 SSE 下降幅度从 28.7% 骤降到 6.5%(肘部明显);轮廓系数 K=3 (0.482) 略高于 K=4 (0.444),但两者均 >0.4 属结构清晰;最终从业务可解释性选 K=4,能区分"高净值(高客单)"和"重度用户(高频次)"两类高价值人群。
- 变量贡献:5 个变量 ANOVA 全部 p<0.001,区分力排序为 月购买频次(F=508)> 平均客单价(F=335)> 月消费金额(F=331)> 网购年限(F=262)> 活动参与度(F=173),说明聚类结构由消费行为而非用户属性主导,结果稳健。
- 4 类典型画像:
- 高净值客户(21.7%,月均 8223 元 / 客单 1670 元):低频高客单的精品消费者;
- 重度用户(26.0%,月 18 次 / 活动参与 8.5):粘性最强的"刷子用户",对优惠敏感;
- 价值新客(30.3%,年限 2.3 年 / 活动参与 7.1):注册时间短但活跃度高的待培养客群;
- 沉睡用户(22.0%,月 1113 元 / 频次 2 次):所有维度均偏低的流失边缘人群。
结论:用户消费行为存在清晰的 4 层分布,可对应制定差异化运营策略 —— ①高净值:1 对 1 客户经理 + 专属高端商品推荐,重点提复购;②重度用户:通过满减阶梯 + 跨品类券提客单价(当前客单仅 373 元,提升空间最大);③价值新客:新人专享券 + 内容种草加速首单到二单转化;④沉睡用户:召回短信 + 大额优惠券激活,6 个月仍不动则降低触达成本。
8. 剖析提醒
聚类结果依赖变量尺度,连续变量必须先做 Z-score 标准化再聚类,否则量纲大的变量(如月消费金额)会主导距离计算。K-means 对初始簇中心敏感,建议设置 n_init > 10 取最优解;对离群值也敏感,可先做离群点剔除再聚类。聚类是无监督方法,簇命名必须结合业务知识,不能仅看簇号。