2.2 无监督学习:聚类、降维与关联规则


2.2 无监督学习:聚类、降维与关联规则

本节摘要:无监督学习在没有标签的数据中发现隐藏结构,三大任务是聚类(把相似样本分组)、降维(在少丢信息的前提下压缩特征)与关联规则挖掘(发现项与项的共现关系)。本节拆解 K-Means 的迭代过程与敏感点、DBSCAN 的密度思想、层次聚类的树状图、PCA 与 t-SNE 的分工,以及支持度-置信度-提升度三个关联指标。无监督学习最大的工程难点不在算法而在评估——没有标准答案,结果好坏要靠业务判断。

本节地图

阅读完本节,你应当能够:

  1. 描述 K-Means 的完整迭代流程及其三个敏感点;
  2. 对比 K-Means、层次聚类、DBSCAN 的适用数据形态;
  3. 解释 PCA"保留最大方差方向"的含义与解释性代价;
  4. 说出 PCA 与 t-SNE 在用途上的本质分工;
  5. 用支持度、置信度、提升度评估一条关联规则的好坏。

一、没有标签时能做什么

监督学习里标签像老师,无监督学习里没有老师,算法只能盯着特征自己找规律。听起来弱,实际用途很硬:客户细分、异常检测、主题发现、数据可视化、给下游模型压缩特征——这些任务天然没有标签(或者标签贵到标不起)。

三大任务的输出物不同:聚类输出"每个样本属于哪一簇",降维输出"每个样本的低维坐标",关联规则输出"哪些东西经常一起出现"。

二、聚类:三种代表算法

K-Means:最常用的质心聚类

流程只有四步:选定 K 个初始质心 → 把每个样本分给最近的质心 → 重算每簇均值作为新质心 → 重复直到质心基本不动。

它的三个敏感点都来自这个简单流程:

  1. K 要预先指定:业务上"客户应该分几群"往往没有先验答案,需要配合肘部法或轮廓系数试探;
  2. 对初始质心敏感:初始位置不好会收敛到糟糕的局部解,工程上用多次随机初始化取最优来缓解;
  3. 假设簇是凸形且大小相近:月牙形交织的两簇,K-Means 会切得很难看,且对离群点敏感——一个极端值能把质心拽偏。

层次聚类:不需要预设 K

凝聚型自底向上:每个点先各自成簇,反复合并最相似的两簇,直到满足停止条件,全过程记录为一棵树状图,在任意高度"剪一刀"就得到一个聚类结果。代价是计算复杂度高,大数据集跑不动。

DBSCAN:按密度找任意形状的簇

通过邻域半径与最少点数两个参数定义"密度可达",把密度相连的点归为一簇,密度不够的点直接标记为噪声。它不需要预设簇数、能找任意形状的簇、天然抗噪声,特别适合异常检测;弱点是对两个参数敏感,且簇间密度差异大时表现差。

算法 要预设 K 吗 簇形状 抗噪声 大数据可扩展性
K-Means 仅凸形(球状)
层次聚类 不要(事后剪) 任意
DBSCAN 不要 任意 强(识别噪声)

三、降维:PCA 与 t-SNE 的分工

当特征成百上千维时会出现"维度灾难":距离计算失真、模型过拟合、可视化无从谈起。降维把数据压到低维同时尽量保住信息。

PCA(主成分分析)是线性方法:对数据做正交变换,找出一组新的正交基(主成分),每个主成分是原始特征的线性组合,按捕获方差从大到小排序——第一主成分就是数据投影上去后散得最开的方向。取前 K 个主成分就完成降维。它快、可逆、能算保留了多少方差,但只能捕捉线性关系,且新特征失去业务含义("主成分 3"没法跟业务方解释)。

t-SNE 是非线性方法:把高维空间的相似关系(概率分布)尽量保到低维,尤其擅长保局部结构,可视化效果通常远好于 PCA。但它计算慢、结果不稳定(不同随机种子图会变)、降出来的坐标没有普适意义,基本只用于可视化,不用于给下游模型供特征。UMAP 是更快的同类替代,兼顾局部与全局结构。

四、关联规则:三个指标看懂"啤酒与尿布"

经典案例:超市购物篮数据中发现买尿布的顾客常买啤酒。关联规则挖掘用 Apriori 算法从交易数据中找频繁项集再生成规则,评估一条规则看三个数:

  • 支持度:项集出现的频率,衡量规则覆盖面。"尿布且啤酒"占总交易的 2%;
  • 置信度:买 X 的人里多大比例也买 Y,衡量规则强度。买尿布的人里 70% 买啤酒;
  • 提升度:置信度除以 Y 本身的购买率。啤酒总体购买率 35%,则提升度约 2——说明尿布确实把啤酒购买概率提高了一倍。

只有提升度大于 1,规则才有协同意义。置信度 70% 看着很高,但如果啤酒本来就人手一份,这条规则毫无价值——这是新手最容易掉进去的坑。

五、无监督的评估困境

没有标签就没有客观对错。工程上两条路:内部指标(如轮廓系数,同时考虑簇内紧凑度与簇间分离度)给个数量级参考;业务评审(把每一簇的画像拉出来给运营看,"这群人客单价高、复购低、集中在周末活跃"——说得通才是真的簇)。后者才是决定性环节。

💡 关键直觉:无监督项目先问"分完组之后打算干什么"。如果答不出"对不同组采取不同行动",聚类就只是把数据集切成几份的自我安慰。

⚠️ 常见坑:拿 t-SNE 图上的簇间距下结论。t-SNE 不保距——图上两团离得远不代表真实数据里差异大,只看局部邻域关系是安全的。

六、聚类实战细节与异常检测路线

K 值怎么定。 两个常用工具:肘部法——画"簇内平方和随 K 变化"的曲线,拐点处的 K 值是增加簇数收益骤减的位置;轮廓系数——对每个 K 算平均轮廓系数,取峰值。两者都是参考而非判决,最终 K 要拿到业务里问一句"分出来的群运营上养得起吗"——十八个客户群比五个难运营得多,有时合并到业务能处理的粒度才是对的答案。

聚类前的特征准备比算法更重要。 三件事必须做:标准化(否则量纲大的特征垄断距离)、去掉高度相关的冗余特征(相关性 0.9 以上的两个特征等于给同一信息双倍投票)、慎重对待类别变量(独热后欧氏距离的语义会变形,必要时换用专门度量的算法)。聚类结果难看时,九成问题出在这里而不是算法本身。

异常检测的两条技术路线。 路线一基于重构:训练自编码器只学正常样本的重建(4.2 节详述),异常样本重构误差大即报警;路线二基于密度或隔离:孤立森林反复随机切分数据,异常点因"与众不同"更早被单独隔离出来,效率高、无需距离度量假设,是表格数据上的流行选择。两条路线可以并联投票,降低单方法误报。

常见问题

聚类结果业务方不认怎么办? 换沟通方式:别给质心坐标,给画像。每个簇提取三五个最显著特征(均值对比、占比对比),翻译成"高价值低频次客群""价格敏感尝鲜客群"这类业务语言,并附每群规模与可执行动作建议。算法输出到业务语言之间隔着一层翻译,这层翻译是数据科学家的本职。

PCA 保留多少维度合适? 看累计方差解释率:取前若干主成分使累计解释率达到八成到九成是常见做法;同时看碎石图(特征值从大到小排列的折线)找拐点。要提醒业务方的是降维的代价——主成分没有业务名字,若下游需要解释每个特征的贡献,PCA 可能不如特征选择。

关联规则挖出一堆规则,哪些值得用? 三个过滤条件:支持度过阈(覆盖足够多交易)、提升度明显大于 1(真协同而非巧合)、规则本身符合业务逻辑或至少不荒谬。然后做小流量实验验证摆放调整是否真带来连带销售——离线规则到在线收益之间隔着行为验证。

要点串联

  • 三大任务:聚类分组、降维压缩、关联规则挖共现;
  • K-Means 三敏感:K 值、初始质心、凸形假设,多次初始化是廉价保险;
  • DBSCAN 优势:任意形状、免设 K、识别噪声,适合异常检测;
  • PCA 与 t-SNE 分工:前者供模型压缩特征,后者只做可视化,别混用;
  • 关联规则看提升度:大于 1 才有协同意义,只看置信度必被误导;
  • 评估靠业务:内部指标辅助,业务可解释性才是无监督结果的裁判。

单个模型总有短板,下一节看如何把一群弱学习者组合成强学习器。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U