本章学习目标:

  • 理解聚类的本质:发现数据中的自然分组,而非预测
  • 掌握K-Means聚类的核心思想(知道“找K个中心点”就够了)
  • 了解手肘法、轮廓系数等选择K值的方法
  • 理解聚类结果如何转化为业务洞察
  • 核心能力:知道什么时候用聚类、如何解读聚类结果

一、聚类是什么?

1.1 聚类的定义

聚类是一种无监督学习算法,用于发现数据中的自然分组——把相似的数据点归为一组,不同组之间的差异尽可能大。

与监督学习的核心区别:聚类没有“正确答案”,模型自己发现数据中的结构。

1.2 一个直观的例子

想象你是一家超市的经理,你有1000名顾客的购买数据:

监督学习的思路:

  • 告诉模型:“这是高价值用户,这是低价值用户”
  • 模型学习如何区分

聚类的思路:

  • 不给任何标签
  • 让模型根据购买行为自动分组
  • 模型发现:有一类顾客只买生鲜,有一类只买零食,有一类什么都买…

1.3 聚类能解决什么问题?

业务场景聚类应用价值
电商用户分群精细化运营、差异化营销
银行客户分层不同群体推荐不同产品
内容平台文章/视频聚类个性化推荐
零售商品关联分组货架布局、捆绑销售
风控异常行为检测识别欺诈模式

1.4 聚类 vs 分类

对比维度分类聚类
学习方式监督学习无监督学习
有没有标签✅ 有❌ 无
目标预测新数据属于哪类发现数据自然分组
分组的依据人为定义的标签数据本身的相似性
例子判断邮件是垃圾还是正常把新闻自动分成几类

关键理解:你不知道应该分几类,也不知道每类长什么样——聚类帮你发现。

二、K-Means聚类

2.1 K-Means是什么?

K-Means是最常用、最经典的聚类算法。K代表你要分多少组,Means代表每组的中心点(质心)。

一句话概括:选择K个中心点,把每个点分配给最近的中心,然后移动中心到该组的平均位置,重复直到稳定。

2.2 K-Means的工作步骤

第1步:选择K值
    ↓
“我想把用户分成3组”(K=3)

第2步:随机放置K个中心点
    ↓
在数据空间中随机放3个点

第3步:分配每个点到最近的中心
    ↓
每个用户去最近的“中心”报到

第4步:移动中心到该组的平均位置
    ↓
计算每组所有用户的“平均位置”,把中心移过去

第5步:重复第3-4步
    ↓
直到中心不再移动(收敛)

2.3 一个直观的动图理解

初始状态                第1次迭代              第2次迭代              最终结果

    ×                       ×                       ×                    ×
  点 点                   点 点                   点 点                点 点
 点  点                  点  点                  点  点               点  点
   ▲                       ▲                       ▲                    ▲
 点 点                   点 点                   点 点                点 点
    ×                       ×                       ×                    ×

○ ○ ○                   ○ ○ ○                   ○ ○ ○                 ○ ○ ○
   ▲                       ▲                       ▲                    ▲
    ×                       ×                       ×                    ×

■ ■ ■                   ■ ■ ■                   ■ ■ ■                 ■ ■ ■
  • ▲ = 中心点移动轨迹
  • ○ × ■ = 不同组的点

每次迭代,中心点都在走向“组的中心”。

2.4 如何理解K-Means的结果?

每个用户会得到一个标签:0组、1组、2组…

然后你需要分析每组的特点:

组别特征业务解读
组0低消费、高频次、买生鲜日常采购型
组1高消费、低频次、买家电大促囤货型
组2中消费、中频次、买服装时尚购物型

这就是聚类的核心价值:不是你告诉模型怎么分,而是模型告诉你“原来用户可以分为这几类,每类长这样”。

2.5 K-Means的优缺点

优点缺点
简单快速,容易理解需要预先指定K值
适合大数据集对初始中心点敏感
结果稳定(多次运行后)假设聚类是球形的
实现广泛(sklearn内置)对异常值敏感

2.6 什么时候用K-Means?

适合不适合
数据量较大数据有异常形状(如环形)
K值可以合理估计类别大小差异很大
聚类大致是球形的需要概率输出
追求速度和简单高维数据(>20维)

三、如何选择K值?

这是K-Means最核心的问题:我应该分成几组?

3.1 方法一:业务经验

最简单的思路:根据业务需求决定。

业务场景凭经验决定K
用户分群运营可管理:3-5组是人力可接受的;10组以上运营没法针对
产品分类按品类自然数量
城市分级按战略需要(一线/新一线/二线/三线/四线)

3.2 方法二:手肘法(Elbow Method)

核心思想:随着K增加,组内误差会下降。找到下降速度变缓的“拐点”。

组内误差
    ↑
    │              
    │          ●  ← 拐点(手肘)
    │        ●
    │      ●
    │    ●
    │  ●
    │●
    └────────────────────→ K值
        1   2   3   4   5

解读:

  • K从1到2:误差大幅下降(明显变好)
  • K从2到3:误差继续下降(改善)
  • K从3到4:下降变缓(改善有限)
  • K从4到5:几乎没变化

结论:K=3是最佳选择(之后增加K的收益很小)。

3.3 方法三:轮廓系数(Silhouette Score)

核心思想:同时衡量两个维度——组内紧密程度(自己组里够近)、组间分离程度(与其他组够远)。

轮廓系数含义
接近 +1聚类合理(点离自己组近,离其他组远)
接近 0点在边界上(可能重叠)
接近 -1聚类错误(点可能分错了组)

选择标准:选择轮廓系数最高的K值。

3.4 三种方法对比

方法核心逻辑优点缺点
手肘法找“拐点”直观可视化拐点可能不明显
轮廓系数紧密度+分离度有量化指标计算量大
业务经验按业务需求直接可用可能错过自然分组

四、其他聚类算法简介

4.1 层次聚类(Hierarchical Clustering)

核心思想:从每个点自成一类开始,不断合并最近的两类,形成一棵“树”。

输出形式:树状图(Dendrogram)

     ┌─────────┐
     │         ├─────┐
   ┌─┼─┐     ┌─┼─┐   │
   │A│ │     │B│C│   │
   └─┘ └─────┘─┴─┘   │
                     ┌─┼─┐
                     │D│E│
                     └─┴─┘

优点:不需要预先指定K,可以从树状图“切”出想要的K。缺点:计算慢,不适合大数据。

4.2 DBSCAN(基于密度的聚类)

核心思想:把密集区域的点聚成一类——圈出“稠密”的邻居。

优点:可以发现任意形状的簇、自动识别异常点;不需要指定K值。

缺点:对参数敏感,高维数据效果差。

4.3 算法选择指南

算法适用场景不适用场景
K-Means数据量大,聚类大致球形非球形聚类,类别大小悬殊
层次聚类小数据量,需要树状图大数据量
DBSCAN可能有任意形状,需要发现异常密度不均匀,高维数据

五、聚类结果的业务解读

5.1 RFM用户分群案例

RFM模型是最经典的用户分群方法,常用于电商、零售行业。

维度全称含义
RRecency最近一次消费时间(越小越好)
FFrequency消费频率(越大越好)
MMonetary消费金额(越大越好)

5.2 K-Means聚类结果

假设K=4,得到4组用户:

组别R(最近)F(频率)M(金额)业务解读运营策略
组0高(很久没买)低低流失用户发送优惠券唤醒
组1低(最近买过)高高高价值活跃用户VIP权益,会员关怀
组2中中低普通活跃用户提升客单价
组3低低低新用户培养习惯

5.3 从数字到洞察

聚类输出的原始数据(每组中心点):

组别R(天)F(次/月)M(元)
0890.245
138.51200
2153.2180
350.865

业务翻译:

组别业务标签一句话画像
0流失用户快3个月没来了,以前也买得少
1高价值核心用户最近刚买、买得多、花得多
2普通活跃用户经常来,但买的不贵
3新/低频用户最近来过,但不常买

5.4 运营策略建议

组别策略具体动作
流失用户强力唤醒大额优惠券、新品推荐
高价值用户维护提升专属客服、积分倍率、新品优先购
普通活跃用户提升客单价满减活动、捆绑销售、会员激励
新用户培养习惯引导复购、新手任务、打卡奖励

六、实战案例:二手车用户分群(RFM变体)

6.1 问题定义

二手车平台希望了解不同类型的买家和卖家,以便制定差异化的运营策略。

6.2 构造聚类特征

维度构造方法业务含义
活跃度过去30天访问次数用户粘性
购买力历史成交均价消费水平
价格敏感度浏览均价 / 成交均价是否追求性价比

6.3 聚类结果(K=4)

组别活跃度购买力价格敏感度业务标签占比
组0高高低实力买家15%
组1高低高淘便宜货35%
组2中中中普通买家40%
组3低--低频用户10%

6.4 业务解读与策略

标签特征策略
实力买家看高端车,价格不敏感推荐高端车型,1对1专属服务
淘便宜货反复对比,要便宜推荐性价比车型,推送降价提醒
普通买家主流需求推荐热门车型,标准服务
低频用户偶尔来看看推送优质车源,引导注册

七、聚类完整流程总结

第1步:明确业务问题
    ↓
“我想把用户分成几类?用来做什么?”

第2步:构造特征
    ↓
R(最近)、F(频率)、M(金额)及其他业务指标

第3步:数据预处理
    ↓
标准化(因为R、F、M量纲不同)

第4步:选择K值
    ↓
手肘法 + 轮廓系数 + 业务经验

第5步:运行K-Means
    ↓
得到分组标签

第6步:解读结果
    ↓
分析每组的特征,给出业务标签

第7步:制定策略
    ↓
针对每组制定差异化运营策略

八、如何向AI描述聚类需求

你的需求你应该这样告诉AI
做聚类分析“对用户做K-Means聚类分群,K=4”
特征标准化“对R、F、M三个特征做标准化,量纲差异很大”
选择K值“用手肘法帮我确定最佳的K值”
轮廓系数“计算不同K值的轮廓系数,告诉我哪个K最好”
解读结果“帮我分析每个聚类的特征,给出业务解读”
可视化“把聚类结果画成散点图,用不同颜色表示不同组”

九、本章总结

聚类核心概念速记

概念一句话
聚类发现数据中的自然分组
K-Means找K个中心点,不断迭代优化
手肘法找误差下降变缓的“拐点”
轮廓系数越接近1聚类越好
RFMR最近、F频率、M金额——用户分群经典模型

算法选择速记

场景选什么
数据量大,要快K-Means
不知道K,要可视化层次聚类
形状不规则,要自动识别异常DBSCAN

聚类 vs 分类速记

分类聚类
有没有答案✅ 有❌ 无
目标预测类别发现分组
评估准确率、召回率等轮廓系数、业务判断

核心心法

“聚类的价值不在算法本身,而在于你能不能用业务语言解读每组特征,让运营人员看得懂、用得上。”

十、思考题

  1. K-Means中K=3,分析后发现每组人数分别是:800人、150人、50人。这个分组结果有什么问题?可能是什么原因?

  2. 某电商平台对用户做RFM聚类,发现“高价值用户”组里大部分人近3个月没消费,这个聚类结果有什么问题?应该怎么调整?

  3. 手肘法图中,误差随着K增加一直下降,没有明显“拐点”。这意味着什么?应该怎么选择K?

  4. 用户消费特征极度偏态(少数用户消费极高),直接做K-Means会有什么问题?应该怎么预处理?

  5. 聚类后发现某一组的特征非常模糊,与其他组边界不清晰。这是聚类算法的问题,还是数据本身的问题?应该怎么办?


下一节预告:7.5 模型调参与优化 —— 模型效果不够好怎么办?如何调参数、防止过拟合、提升泛化能力?

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐