无监督学习:聚类、降维与关联规则
什么是无监督学习
无监督学习是机器学习的一大分支,与有监督学习的核心区别在于:训练数据没有标签。模型需要在没有“正确答案”指导的情况下,自行发现数据内部隐藏的结构、模式或关系。这更贴近人类认知世界的方式——我们并非总是被明确告知什么是猫什么是狗,但通过观察大量动物,依然能自然地将它们归为不同类别。
本教程将聚焦无监督学习中三个核心方向:聚类(将相似数据点分组)、降维(在保留关键信息的前提下压缩数据维度)和关联规则(发现数据项之间的频繁模式)。掌握这些方法,你就能从原始数据中提炼出高价值的洞察,为用户分群、异常检测、推荐系统等任务打下基础。
聚类:让相似数据“物以类聚”
聚类算法的目标是将样本划分成若干个簇,使得簇内样本尽可能相似,簇间样本尽可能不同。它不需要预先定义类别标签,常用于客户细分、图像分割、文档归类等场景。
K-Means 聚类
K-Means 是最经典、最易于实现的聚类算法。其核心思想是通过迭代,找到 K 个簇中心,将每个点分配给最近的中心。
算法步骤:
- 随机初始化 K 个质心(centroid)。
- 将每个数据点分配到离其最近的质心所在的簇。
- 重新计算每个簇的质心(簇内所有点的均值)。
- 重复第 2、3 步,直到质心不再明显变化或达到最大迭代次数。
关键注意点:
- 需要预先指定 K 值,可用肘部法则(Elbow Method)辅助选择:绘制 K 值与簇内误差平方和(SSE)的关系曲线,曲线“拐点”即为较优 K。
- 对初始质心敏感,可能陷入局部最优。实践中常采用 K-Means++ 初始化策略提升稳定性。
- 擅长处理球形簇,对不规则形状或不同密度的簇效果欠佳。
层次聚类
层次聚类不需要预设簇的数量,它会构建一个树状的簇层级结构(树状图,Dendrogram)。分为两种策略:
- 凝聚层次聚类(自底向上):初始每个点为一个簇,不断合并最近的两个簇,直到所有点合并为一个簇。
- 分裂层次聚类(自顶向下):初始所有点为一个簇,不断分裂,直到每个点单独成簇。
如何定义簇间距离? 常用方法包括:
- 单链接(Single Linkage):取两个簇中最近点的距离,对噪声敏感,容易产生“链状”簇。
- 全链接(Complete Linkage):取两个簇中最远点的距离,倾向生成紧凑的球形簇。
- 平均链接(Average Linkage):取两个簇所有点对距离的平均值,是一种折中方案。
层次聚类计算复杂度较高,适合小规模数据集,其树状图能直观展示数据的多尺度结构。
DBSCAN:基于密度的聚类
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)不依赖簇形状,能识别任意形状的簇,并能自动标记噪声点。它依赖两个参数:
- ε(eps):邻域半径。
- MinPts:核心点所需的最小邻域内样本数。
核心概念:
- 核心点:在半径 ε 内至少包含 MinPts 个点。
- 边界点:在核心点的邻域内,但自身邻域点数不足 MinPts。
- 噪声点:既不是核心点也不是边界点。
算法从任意未访问的核心点出发,将其所有密度可达的点聚为一簇,最终留下噪声点。DBSCAN 对参数敏感,尤其在高维数据中,ε 的选择极具挑战。
聚类评估指标
由于没有真实标签,聚类评估常用内部指标:
- 轮廓系数(Silhouette Coefficient):综合了簇内凝聚度和簇间分离度,取值范围 [-1, 1],越接近 1 表示聚类效果越好。
- Davies-Bouldin Index:度量簇间相似度的平均值,越小越好。
- 若存在标签(如人工标注),可用 调整兰德指数(ARI)、归一化互信息(NMI) 等外部指标。
降维:化繁为简,保留本质
高维数据往往包含冗余特征和噪声,不仅增加计算负担,还可能导致“维度灾难”。降维技术旨在找到一个低维表示,尽可能保留原始数据的重要结构。
主成分分析(PCA)
PCA 是最常用的线性降维方法,通过正交变换将原始特征转换为线性无关的新特征,即主成分。主成分按照方差大小排序:第一主成分捕获最多方差,第二主成分在与之正交的方向上捕获次大方差,以此类推。
关键步骤:
- 数据中心化(减去均值)。
- 计算协方差矩阵。
- 对协方差矩阵进行特征分解,得到特征值和特征向量。
- 选择前 k 大特征值对应的特征向量,构成投影矩阵。
- 将原始数据投影到这些主成分上,得到低维表示。
如何选择 k? 通常要求保留的方差比例(如 95%),计算累积解释方差比例即可。
PCA 假设数据符合线性结构,且对方差小的方向敏感,故常需先进行标准化预处理。
t-SNE:面向可视化
t-SNE(t-distributed Stochastic Neighbor Embedding)是一种非线性降维技术,特别善于将高维数据嵌入到 2 维或 3 维空间进行可视化。它的核心思想是保持高维空间中数据点间的概率分布与低维空间中的分布尽可能一致,尤其注重保持局部结构。
注意事项:
- t-SNE 对参数(如困惑度 perplexity)敏感,不同参数可能产生截然不同的可视化结果。
- 结果中的簇间距离没有明确意义,不可用于衡量簇间相似度。
- 计算复杂度高,不适合作为大型数据集的通用降维工具,主要适用于探索性数据分析。
- 随机性较强,多次运行结果可能不同,建议固定随机种子。
UMAP:兼顾全局与局部的现代降维
UMAP(Uniform Manifold Approximation and Projection)是近年流行的降维算法,在许多场景下速度优于 t-SNE,且能更好地保留数据的全局结构。它基于拓扑流形理论,也支持监督降维,已成为单细胞基因组学、自然语言处理等领域的标准工具。
与 t-SNE 相比,UMAP 的可视化结果中簇间距离更具解释性,并且可直接降维到任意维度。但 UMAP 同样有超参数需要调节(如邻居数量、最小距离),建议通过实验找到最优设置。
其他降维方法速览
- 线性判别分析(LDA):一种监督降维方法,寻找最能区分类别的投影方向,但其标签需求使其不属于纯粹的无监督学习。
- 自编码器:基于神经网络的非线性降维,由编码器和解码器组成,通过重构误差学习低维潜在表示,可处理复杂的非线性关系。
关联规则:发现商品背后的捆绑逻辑
关联规则挖掘旨在从大规模数据中发现频繁出现的项集以及项与项之间的强关联关系。最经典的案例是购物篮分析:“购买尿布的顾客往往也会购买啤酒”。
基本概念
- 项(Item):如一件商品。
- 项集(Itemset):多个项组成的集合。
- 支持度(Support):项集在总事务中出现的比例。反映规则的普遍性。
Support(A→B) = P(A∪B) = 包含A和B的事务数 / 总事务数 - 置信度(Confidence):在出现A的事务中,同时出现B的比例。衡量规则的可靠性。
Confidence(A→B) = P(B|A) = Support(A∪B) / Support(A) - 提升度(Lift):置信度与 B 本身出现概率的比值。Lift > 1 表示 A 的出现对 B 的出现有正向提升作用;Lift = 1 表示独立;Lift < 1 表示负相关。
Lift(A→B) = Confidence(A→B) / Support(B)
强关联规则通常需要满足用户设定的最小支持度和最小置信度阈值。
Apriori 算法
Apriori 是挖掘频繁项集的经典算法,其核心基于 先验原理:频繁项集的所有非空子集也一定是频繁的;反之,如果一个项集是非频繁的,那么它的所有超集也一定非频繁。
算法流程:
- 扫描数据,找到所有满足最小支持度的频繁 1-项集。
- 通过频繁 k-项集自连接生成候选 (k+1)-项集。
- 再次扫描数据,剪除不满足最小支持度的候选项集。
- 重复步骤 2-3,直到无法产生新的频繁项集。
- 从所有频繁项集中,根据最小置信度生成关联规则。
Apriori 需要多次扫描数据集,I/O 开销较大,但易于实现,是理解关联规则的基础。
FP-Growth 算法
FP-Growth(Frequent Pattern Growth)是 Apriori 的改良版,只需扫描两次数据集,通过构建一棵紧凑的 FP 树 (频繁模式树)来存储频繁项集的计数信息,然后直接在树上递归挖掘频繁项集,避免了生成大量候选项集和反复扫描。
FP-Growth 通常比 Apriori 快一个数量级,尤其适合大规模稀疏数据集。
关联规则应用须知
- 关联规则易产生大量结果,需通过提升度、确信度(Conviction)等指标过滤掉虚假相关的规则。
- 规则解读需结合业务背景,统计相关不一定代表因果关系。
- 在实践中,支持度和置信度的阈值设定需要反复调整,过低会淹没在海量规则中,过高可能漏掉隐藏但高价值的模式。
无监督学习的实战要点
-
数据预处理决定上限
无论聚类还是降维,特征缩放(标准化、归一化)几乎必不可少。噪声、缺失值和离群点会严重干扰模型,必要时可先用 DBSCAN 等标记噪声后再处理。 -
超参数没有“银弹”
K-Means 中的 K,DBSCAN 的 eps 和 MinPts,t-SNE 的困惑度,Apriori 的支持度阈值——都需要结合领域知识、可视化探索和评估指标反复调试。 -
可视化是发现的眼睛
PCA 散点图、t-SNE/UMAP 投影、层次聚类的树状图、关联规则网络图,都是理解数据、验证假设的有效工具。不要跳过这一步。 -
无监督不是终点,而是起点
聚类结果可以作为新特征加入有监督模型;降维后的表示可用于加速下游任务;关联规则可生成推荐理由或交叉销售策略。将无监督学习与业务目标紧密串联,才能真正释放其价值。
总结
无监督学习是一把打开数据内部世界大门的钥匙。聚类帮你理解数据如何分组,降维让你能在低维空间窥探高维数据的样貌,关联规则则揭示事物之间的共生关系。从理论到实践,你需要反复锤炼数据敏感度,学会倾听数据自身的声音。现在,你可以选择一个真实数据集,从 K-Means 聚类开始,亲自动手探索无监督学习的奇妙之处。