本节摘要:无监督学习在没有标签的数据中发现隐藏结构,三大任务是聚类(把相似样本分组)、降维(在少丢信息的前提下压缩特征)与关联规则挖掘(发现项与项的共现关系)。本节拆解 K-Means 的迭代过程与敏感点、DBSCAN 的密度思想、层次聚类的树状图、PCA 与 t-SNE 的分工,以及支持度-置信度-提升度三个关联指标。无监督学习最大的工程难点不在算法而在评估——没有标准答案,结果好坏要靠业务判断。
阅读完本节,你应当能够:
监督学习里标签像老师,无监督学习里没有老师,算法只能盯着特征自己找规律。听起来弱,实际用途很硬:客户细分、异常检测、主题发现、数据可视化、给下游模型压缩特征——这些任务天然没有标签(或者标签贵到标不起)。
三大任务的输出物不同:聚类输出"每个样本属于哪一簇",降维输出"每个样本的低维坐标",关联规则输出"哪些东西经常一起出现"。
流程只有四步:选定 K 个初始质心 → 把每个样本分给最近的质心 → 重算每簇均值作为新质心 → 重复直到质心基本不动。
它的三个敏感点都来自这个简单流程:
凝聚型自底向上:每个点先各自成簇,反复合并最相似的两簇,直到满足停止条件,全过程记录为一棵树状图,在任意高度"剪一刀"就得到一个聚类结果。代价是计算复杂度高,大数据集跑不动。
通过邻域半径与最少点数两个参数定义"密度可达",把密度相连的点归为一簇,密度不够的点直接标记为噪声。它不需要预设簇数、能找任意形状的簇、天然抗噪声,特别适合异常检测;弱点是对两个参数敏感,且簇间密度差异大时表现差。
| 算法 | 要预设 K 吗 | 簇形状 | 抗噪声 | 大数据可扩展性 |
|---|---|---|---|---|
| K-Means | 要 | 仅凸形(球状) | 弱 | 好 |
| 层次聚类 | 不要(事后剪) | 任意 | 中 | 差 |
| DBSCAN | 不要 | 任意 | 强(识别噪声) | 中 |
当特征成百上千维时会出现"维度灾难":距离计算失真、模型过拟合、可视化无从谈起。降维把数据压到低维同时尽量保住信息。
PCA(主成分分析)是线性方法:对数据做正交变换,找出一组新的正交基(主成分),每个主成分是原始特征的线性组合,按捕获方差从大到小排序——第一主成分就是数据投影上去后散得最开的方向。取前 K 个主成分就完成降维。它快、可逆、能算保留了多少方差,但只能捕捉线性关系,且新特征失去业务含义("主成分 3"没法跟业务方解释)。
t-SNE 是非线性方法:把高维空间的相似关系(概率分布)尽量保到低维,尤其擅长保局部结构,可视化效果通常远好于 PCA。但它计算慢、结果不稳定(不同随机种子图会变)、降出来的坐标没有普适意义,基本只用于可视化,不用于给下游模型供特征。UMAP 是更快的同类替代,兼顾局部与全局结构。
经典案例:超市购物篮数据中发现买尿布的顾客常买啤酒。关联规则挖掘用 Apriori 算法从交易数据中找频繁项集再生成规则,评估一条规则看三个数:
只有提升度大于 1,规则才有协同意义。置信度 70% 看着很高,但如果啤酒本来就人手一份,这条规则毫无价值——这是新手最容易掉进去的坑。
没有标签就没有客观对错。工程上两条路:内部指标(如轮廓系数,同时考虑簇内紧凑度与簇间分离度)给个数量级参考;业务评审(把每一簇的画像拉出来给运营看,"这群人客单价高、复购低、集中在周末活跃"——说得通才是真的簇)。后者才是决定性环节。
💡 关键直觉:无监督项目先问"分完组之后打算干什么"。如果答不出"对不同组采取不同行动",聚类就只是把数据集切成几份的自我安慰。
⚠️ 常见坑:拿 t-SNE 图上的簇间距下结论。t-SNE 不保距——图上两团离得远不代表真实数据里差异大,只看局部邻域关系是安全的。
K 值怎么定。 两个常用工具:肘部法——画"簇内平方和随 K 变化"的曲线,拐点处的 K 值是增加簇数收益骤减的位置;轮廓系数——对每个 K 算平均轮廓系数,取峰值。两者都是参考而非判决,最终 K 要拿到业务里问一句"分出来的群运营上养得起吗"——十八个客户群比五个难运营得多,有时合并到业务能处理的粒度才是对的答案。
聚类前的特征准备比算法更重要。 三件事必须做:标准化(否则量纲大的特征垄断距离)、去掉高度相关的冗余特征(相关性 0.9 以上的两个特征等于给同一信息双倍投票)、慎重对待类别变量(独热后欧氏距离的语义会变形,必要时换用专门度量的算法)。聚类结果难看时,九成问题出在这里而不是算法本身。
异常检测的两条技术路线。 路线一基于重构:训练自编码器只学正常样本的重建(4.2 节详述),异常样本重构误差大即报警;路线二基于密度或隔离:孤立森林反复随机切分数据,异常点因"与众不同"更早被单独隔离出来,效率高、无需距离度量假设,是表格数据上的流行选择。两条路线可以并联投票,降低单方法误报。
聚类结果业务方不认怎么办? 换沟通方式:别给质心坐标,给画像。每个簇提取三五个最显著特征(均值对比、占比对比),翻译成"高价值低频次客群""价格敏感尝鲜客群"这类业务语言,并附每群规模与可执行动作建议。算法输出到业务语言之间隔着一层翻译,这层翻译是数据科学家的本职。
PCA 保留多少维度合适? 看累计方差解释率:取前若干主成分使累计解释率达到八成到九成是常见做法;同时看碎石图(特征值从大到小排列的折线)找拐点。要提醒业务方的是降维的代价——主成分没有业务名字,若下游需要解释每个特征的贡献,PCA 可能不如特征选择。
关联规则挖出一堆规则,哪些值得用? 三个过滤条件:支持度过阈(覆盖足够多交易)、提升度明显大于 1(真协同而非巧合)、规则本身符合业务逻辑或至少不荒谬。然后做小流量实验验证摆放调整是否真带来连带销售——离线规则到在线收益之间隔着行为验证。
单个模型总有短板,下一节看如何把一群弱学习者组合成强学习器。