用户分群方法¶
📒 模块一:K-Means 算法¶
一、K-Means 到底是什么?¶
✅ 专业解释¶
K-Means 是一种无监督学习算法,用于将样本自动划分为 K 个互不重叠的簇(Cluster)。它的核心思想是:让同一个簇内的样本尽可能相似,不同簇之间的样本尽可能不同。
“相似”在 K-Means 中是通过距离来衡量的,通常使用欧氏距离。算法通过反复迭代,不断优化簇中心(质心),最终使每个样本都归属于离它最近的那个质心。
🗣️ 通俗解释¶
想象你是一个班主任,班里有一群学生,你事先不知道他们应该分成几类,但你决定按“性格+成绩+兴趣”把他们分成 K 个小组。
K-Means 就像是一个自动分组机器人:
- 你先告诉它“分成 K 组”;
- 它随便选 K 个“组长”(初始质心);
- 然后每个学生站到离自己最近的组长那边;
- 接着每个小组重新选一个“中心位置”作为新组长(均值);
- 大家再重新站队;
- 反复几次,直到没人换组为止。
二、数据预处理要求¶
✅ 专业解释¶
-
必须做标准化
-
K-Means 基于欧氏距离计算样本相似度。
- 如果不同特征的量纲差异很大(例如年龄 0-70,月消费 0-20000),那么数值范围大的特征会主导距离计算,导致聚类结果被该特征绑架。
-
因此必须做标准化(如 Z-score 标准化、Min-Max 归一化),让每个特征在同一尺度上参与距离计算。
-
不能直接输入分类变量
-
K-Means 计算的是数值距离,分类变量(如性别、城市)无法直接计算欧氏距离。
-
类别特征需要编码(如独热编码 One-Hot Encoding),或改用适合混合数据的算法(如 K-Prototypes)。
-
异常值处理
-
异常值会严重拉扯均值,导致质心偏移。
- 预处理阶段应考虑异常值检测与处理(如盖帽法、删除、替换)。
🗣️ 通俗解释¶
就像给全班同学打分:
- 如果一门课满分 100,另一门课满分 10000,那满分 10000 的那门课会完全决定排名;
- 所以要先统一标准,让每门课都在同一个尺度上比较;
- 另外,性别、城市这种“文字”信息不能直接算距离,要先变成数字;
- 少数极端值(如月消费 999999)会把小组中心拉偏,要提前处理。
📌 业务案例¶
电商用户分群,特征包含:
- 年龄:0-70
- 月消费:0-20000
如果不标准化:
- 月消费的数值范围远大于年龄;
- 距离计算几乎只由月消费决定;
- 年龄对分群几乎不起作用。
标准化后:
- 年龄和月消费在同一尺度;
- 两个特征都能对分群产生影响。
📝 考试记忆点¶
K-Means 预处理三件套:标准化、编码分类变量、处理异常值。
三、迭代运行原理¶
✅ 专业解释¶
K-Means 的迭代过程如下:
① 人工预先给定 K
- K 是簇的数量,属于超参数。
- 算法无法自动确定 K,必须由人指定。
- 这是 K-Means 与许多自动确定簇数的算法(如 DBSCAN)的重要区别。
② 选定初始质心
- 随机选择 K 个样本点作为初始质心。
- 初始质心的选择会影响最终结果,因此有 K-Means++ 等改进方法。
③ 分配样本到最近的簇中心
- 对每个样本,计算它到 K 个质心的距离;
- 将它分配到距离最近的那个质心所在的簇。
④ 用簇内样本均值更新质心
- 对每个簇,计算簇内所有样本的均值;
- 将该均值作为新的质心。
⑤ 重复迭代,直到停止条件满足
- 停止条件:质心不再变动,或达到最大迭代次数。
- 此时算法收敛,输出最终的 K 个簇。
⚠️ 高频混淆:K-Means vs K-NN¶
| 对比项 | K-Means | K-NN(K近邻) |
|---|---|---|
| 学习方式 | 无监督聚类 | 有监督分类 |
| K 的含义 | 簇的数量 | 邻近样本的数量 |
| 核心操作 | 和簇中心比较距离 | 看周围邻近样本点 |
| 是否需要标签 | 不需要 | 需要 |
| 典型用途 | 用户分群、物品聚类 | 分类、回归 |
考试中极易混淆,务必区分!
🗣️ 通俗解释¶
K-Means 就像:
- 你先说“分 K 组”;
- 随便选 K 个组长;
- 每个人站到离自己最近的组长那边;
- 每组重新选一个中心位置当新组长;
- 大家再重新站队;
- 直到没人换组为止。
K-NN 则是:
- 来了一个新同学;
- 看他周围最近的 K 个同学是什么类别;
- 然后判断他属于哪一类。
📌 业务案例¶
电商用户分群:
- 先设定 K=5;
- 随机选 5 个用户作为初始质心;
- 每个用户归到最近的质心;
- 重新计算每个簇的均值作为新质心;
- 反复迭代,直到质心稳定;
- 最终得到 5 类用户群体。
📝 考试记忆点¶
K-Means 迭代五步:定 K → 选质心 → 分配 → 更新 → 重复。
K 是人工指定,算法不会自动确定。
四、优缺点¶
✅ 专业解释¶
优点:
1.时间复杂度近似线性
- K-Means 的时间复杂度为 O(n × K × t),其中 n 是样本数,K 是簇数,t 是迭代次数。
- 与样本数近似线性,适合大数据集。
2.伸缩性好
- 可以处理百万级甚至更大规模的数据。
3.效率较高
- 算法简单,收敛速度快,易于实现。
缺点:
1.对异常值很敏感
- 异常样本会拉扯均值,偏移簇的质心。
- 一个极端值可能让整个簇的中心偏离真实中心。
2.需要预先指定 K
- K 值选择困难,不同 K 可能得到完全不同结果。
3.对初始质心敏感
- 不同的初始质心可能导致不同的最终聚类结果。
4.假设簇是球形且大小相近
- 对于非球形、密度差异大的簇,效果可能不好。
🗣️ 通俗解释¶
优点:
- 算得快,适合大公司海量用户数据;
- 简单好用,容易落地。
缺点:
- 少数极端用户(如月消费 10 万)会把小组中心拉偏;
- 你得事先决定分几组,分错了就不好用;
- 初始组长选得不好,最后分组结果可能不一样;
- 如果真实群体形状很奇怪,它可能分不好。
📌 业务案例¶
电商用户分群:
- 大部分用户月消费 500-2000;
- 少数用户月消费 10 万;
- 如果不处理异常值,月消费 10 万的用户会把所在簇的质心拉高;
- 导致该簇中心偏移,其他用户被错误分配。
📝 考试记忆点¶
优点:快、适合大数据、伸缩性好。
缺点:对异常值敏感、需预先定 K、对初始质心敏感、假设簇球形。
五、K 值选择原则¶
✅ 专业解释¶
1.K 不是越大越好
- K 过大:容易过分割,簇样本太少,业务无法落地。
- K 过小:簇内差异大,分群不够精细。
2.肘部法则(Elbow Method)
- 计算不同 K 值下的簇内平方和(WS)或总距离;
- 随着 K 增大,WS 会减小;
- 当 K 增大到某个点后,WS 下降速度明显变缓;
- 这个“拐点”就是较合适的 K。
3.业务可解释性
- K 的选择还要考虑业务能否落地;
- 一般业务场景尝试 3-7 个群体;
- 分群太多,运营无法针对性施策。
🗣️ 通俗解释¶
分小组不是越多越好:
- 分 20 组,每组只有几个人,没法搞活动;
- 分 2 组,太粗糙,看不出差异;
- 一般分 3-7 组,既精细又能落地。
肘部法则就像:
- 你不断加小组,组内差异会变小;
- 但加到某个点后,再增加小组,差异下降不明显;
- 那个点就是比较合适的 K。
📌 业务案例¶
电商用户分群:
- 尝试 K=2,3,4,5,6,7,8;
- 计算每个 K 的簇内平方和;
- 发现 K=5 之后下降变缓;
- 结合业务,最终选择 K=5。
📝 考试记忆点¶
K 不是越大越好;肘部法则辅助选 K;业务一般 3-7 个群体。
📝 模块一总结口诀¶
K-Means 要点:事先定 K、必须标准化;对异常值敏感;迭代更新质心;≠K-NN!K 不是越大越好。
📒 模块二:聚类的优化:预处理、降维¶
一、Ward 法(沃德法-离差平方和法,系统聚类)¶
✅ 专业解释¶
Ward 法是一种系统聚类(层次聚类)方法,全称是“离差平方和法”。
核心思想:
- 每次优先选择合并之后组内离差平方和增加最小的两个簇进行合并。
- 目标是尽量保持簇内部紧密。
- 离差平方和越小,说明簇内样本越相似、越紧密。
与 K-Means 的区别:
| 对比项 | K-Means | Ward 法 |
|---|---|---|
| 类型 | 划分聚类 | 层次聚类 |
| 是否需要预先定 K | 需要 | 不需要,可通过树状图切分 |
| 合并依据 | 距离最近质心 | 组内离差平方和增加最小 |
| 结果形式 | 扁平的 K 个簇 | 层次树状结构 |
🗣️ 通俗解释¶
Ward 法就像合并小组:
- 每次挑两个组合并;
- 合并后组内差异增加最小的那两个组优先合并;
- 这样合并后,组内成员尽量保持相似;
- 不会一下子把差异很大的组合并在一起。
📌 业务案例¶
产品有 25 项评价指标:
- 使用 Ward 法进行系统聚类;
- 每次合并后组内离差平方和增加最小的两个簇;
- 最终得到层次树状图;
- 根据业务需要在合适位置切分,得到最终分群。
📝 考试记忆点¶
Ward 法:合并后组内离差平方和增加最小;目标是保持簇内紧密。
二、聚类优化的场景陷阱¶
✅ 专业解释¶
场景①:聚类还没有开始,准备阶段
- 优先做标准化预处理,消除量纲。
- 这是聚类前的标准动作。
场景②:已经完成聚类,聚类结果不理想
- 标准化已经做过了;
- 此时适合采用因子分析。
- PCA(主成分分析):仅数学降维,新指标业务含义很难解释;
- 因子分析:降维 + 挖掘背后潜在业务因子,消除多重共线性;
- 用提炼之后的公因子重新聚类,改善聚类质量。
为什么不是重复标准化?
- 标准化已经做过,重复标准化不会改善聚类质量;
- 问题可能出在指标太多、高度相关、存在多重共线性;
- 因子分析可以提炼潜在因子,降低维度,改善聚类效果。
🗣️ 通俗解释¶
- 还没跑聚类:先统一指标尺度(标准化);
- 跑完发现分得很乱:说明指标太多、太杂、高度相关;
- 这时候需要提炼背后深层业务因素(因子分析);
- 再用提炼出的公因子重新分群;
- 而不是重复标准化。
📌 业务案例¶
产品有 25 项评价指标:
- 大量指标高度相关(如“外观好看”“颜值高”“设计美”高度相关);
- 使用因子分析提炼出:性价比、外观、性能三个潜在因子;
- 基于这 3 个因子再开展聚类分析;
- 聚类质量明显改善。
📝 考试记忆点¶
未跑聚类→标准化;跑完聚类效果差→因子分析;Ward 法看组内离差平方和。
📝 模块二总结口诀¶
未跑聚类先标准化;跑完效果差做因子分析;Ward 法看组内离差平方和。
📒 模块三:聚类 vs 分类 & 聚类的业务应用¶
一、概念区分¶
✅ 专业解释¶
| 类型 | 学习方式 | 标签 | 典型算法 | 结果特点 |
|---|---|---|---|---|
| 聚类 | 无监督学习 | 无标签 | K-Means、DBSCAN、层次聚类、谱聚类 | 依据相似度自动划分,不一定等于真实业务分类 |
| 分类 | 有监督学习 | 有标签 | 决策树、朴素贝叶斯、逻辑回归 | 输出确定分类结果 |
| 关联规则分析 | 不属于聚类 | — | Apriori(购物篮分析) | 挖掘商品共同购买关系 |
关键区别:
1.聚类是无监督学习
- 样本不带标签;
- 机器依据相似度自动划分群体;
- 聚类结果不一定等于真实业务分类;
- 聚类结果不保证完全贴合现实。
2.分类是有监督学习
- 已有标签样本训练模型;
- 输出确定分类结果;
- 典型算法:决策树、朴素贝叶斯、逻辑回归。
3.关联规则分析不属于聚类
- 购物篮分析(Apriori)挖掘商品共同购买关系;
- 人脸识别一般属于分类任务。
🗣️ 通俗解释¶
- 聚类:先不分好类别,让机器自己抱团;
- 分类:先教机器认识类别,之后做判断;
- 购物篮分析:只看商品经常一起买,不是分群。
📌 业务案例¶
运营希望挖掘几类流失风险客户:
- 使用聚类做用户分群,构建用户画像;
- 但机器分出来的群体不一定完全契合业务人员心里划分的客户类型;
- 因为聚类是无监督的,没有真实标签指导。
📝 考试记忆点¶
聚类无标签,结果未必真;分类有标签,结果已确定;购物篮≠聚类!
二、聚类典型业务场景(第3、9题考点)¶
✅ 专业解释¶
✅ ① 物品聚类
- 电影平台把相似电影归类;
- 电商平台把相似商品归类;
- 新闻平台把相似新闻归类。
✅ ② 用户聚类
- 挖掘不同客户群体;
- 做用户画像;
- 支撑用户留存运营;
- 精准营销、个性化推荐。
❌ ③ 人脸识别
- 属于分类任务;
- 不是聚类。
❌ ④ 购物篮分析
- 属于关联挖掘;
- 不是聚类。
🗣️ 通俗解释¶
聚类可以用来:
- 把相似电影放一起;
- 把相似用户分一群;
- 做用户画像;
- 支撑运营策略。
但不能用来:
- 人脸识别(那是分类);
- 购物篮分析(那是关联规则)。
📌 业务案例¶
电商用户分群:
- 使用聚类做用户分群;
- 构建用户画像;
- 识别高价值客户、流失风险客户;
- 支撑用户留存运营。
📝 考试记忆点¶
聚类用于用户画像、物品分群;人脸识别是分类;购物篮是关联规则。
📝 模块三总结口诀¶
聚类无标签,结果未必真;分类有标签,结果已确定;购物篮≠聚类!
📒 模块四:聚类结果评估指标¶
一、BS 与 WS¶
✅ 专业解释¶
BS(组间平方和,Between-cluster Sum of Squares):
- 衡量簇和簇之间分离程度;
- BS 越大,簇之间差异越大,聚类效果越好。
WS(组内平方和,Within-cluster Sum of Squares):
- 衡量同一个簇内部样本离散程度;
- WS 越小,簇内部样本越紧密,聚类效果越好。
理想聚类:
- 组间 BS 尽量大;
- 组内 WS 尽量小。
总平方和 TSS = BS + WS:
- TSS 固定时,BS 越大,WS 越小;
- 因此 BS 和 WS 是相互关联的。
🗣️ 通俗解释¶
理想聚类:
- 同一个圈子内部大家尽量相似(WS 小);
- 不同圈子之间差异要尽可能大(BS 大)。
就像分班:
- 每个班内部学生水平接近(WS 小);
- 不同班之间水平差异明显(BS 大);
- 这样的分班才合理。
📌 业务案例¶
做完客户分群之后评估分群质量:
- 好的分群:
- 同一类客户行为模式接近(WS 小);
- 不同客户群体行为差异明显(BS 大)。
- 差的分群:
- 同一类客户内部差异很大(WS 大);
- 不同客户群体之间差异不明显(BS 小)。
📝 考试记忆点¶
组间尽量大,组内尽量小。
📝 模块四总结口诀¶
BS 越大越好,WS 越小越好;组间分离,组内紧密。
📖 整体复习提纲(超详细版)¶
1. K-Means 算法¶
- 预处理:标准化、编码分类变量、处理异常值;
- K 值:人工指定,算法无法自动确定;
- 迭代:定 K → 选质心 → 分配 → 更新 → 重复;
- 优缺点:快、适合大数据;对异常值敏感、需预先定 K、对初始质心敏感;
- 区分 KNN:KNN 有监督分类,K-Means 无监督聚类;
- K 不是越大越好:肘部法则辅助选 K,业务一般 3-7 个群体。
2. 聚类优化场景¶
- 未跑聚类:先做标准化;
- 跑完聚类效果差:做因子分析,提炼公因子重新聚类;
- Ward 法:系统聚类,合并后组内离差平方和增加最小;
- PCA vs 因子分析:PCA 仅数学降维,因子分析可挖掘潜在业务因子。
3. 聚类 vs 分类¶
- 聚类:无监督,无标签,结果未必真;
- 分类:有监督,有标签,结果已确定;
- 关联规则:购物篮分析,不属于聚类;
- 聚类应用:用户画像、物品分群;
- 非聚类应用:人脸识别(分类)、购物篮(关联规则)。
4. 聚类评估指标¶
- BS(组间平方和):越大越好,簇间差异大;
- WS(组内平方和):越小越好,簇内紧密;
- 口诀:组间尽量大,组内尽量小。
🎯 考前冲刺必背清单¶
- K-Means 必须标准化,不能直接输入分类变量。
- K 是人工指定,算法无法自动确定。
- K-Means 对异常值敏感,异常值会拉扯均值。
- K-Means ≠ K-NN,前者无监督聚类,后者有监督分类。
- K 不是越大越好,肘部法则辅助选 K。
- 未跑聚类先标准化;跑完效果差做因子分析。
- Ward 法看组内离差平方和增加最小。
- 聚类无标签,结果未必真;分类有标签,结果已确定。
- 购物篮分析≠聚类,人脸识别是分类。
- BS 越大越好,WS 越小越好。