1 基本概念
1.1 定义
聚类是一类无监督学习与统计分析方法,目标是依据样本之间的相似性或距离,将数据自动划分为若干组。通常情况下,同一组内的对象应尽可能相近,不同组之间则应尽量区分明显。由于不依赖人工标注,聚类常被用于探索数据的潜在结构。
1.2 核心思想
聚类的核心在于“相似者归类”。算法会根据预先设定的距离度量、密度特征或概率模型,寻找数据中自然形成的群体结构。它既可以用于发现未知模式,也可以作为进一步分析的前置步骤,例如为样本压缩、异常筛查或特征概括提供依据。
1.3 相关术语
1.3.1 簇
簇是聚类结果中的基本单元,表示被划分到同一组的一批对象。簇的内部往往具有较强的一致性,而不同簇之间则存在一定差异。不同算法对“簇”的定义并不完全相同,有的强调中心,有的强调密度,有的强调图结构。
1.3.2 样本
样本是参与聚类分析的基本对象,可以是一条记录、一张图片、一个文本片段或一个生物序列。每个样本通常对应一个特征向量,算法会基于这些特征判断样本之间的接近程度。
1.3.3 特征
特征是描述样本属性的变量,是聚类计算的基础。特征既可以是数值型,也可以通过编码转化为适合计算的形式。特征的选取与表达方式,往往会直接影响聚类效果。
1.3.4 距离与相似度
距离用于衡量对象之间的差异,数值越小表示越接近;相似度则表示对象之间的接近程度,数值越大通常越相似。聚类算法常将距离或相似度作为判别依据,不同度量方式会导致不同的分组结果。
1.4 与分类的区别
分类属于监督学习,训练时需要已标注的类别信息;聚类则不依赖标签,主要任务是从数据中自行发现组别。分类关注“已知类别的预测”,聚类关注“未知结构的发掘”。因此,两者在训练数据、目标和评价方式上都有明显差别。
1.5 与降维的关系
聚类与降维常配合使用。降维方法可以减少特征维度、缓解噪声影响,并使数据结构更易观察;聚类则能在降维后的空间中更清晰地揭示分组关系。某些场景下,聚类结果本身也可作为一种结构化摘要,用于辅助理解高维数据。
2 理论基础
2.1 相似性度量
相似性度量决定了算法如何判断两个样本是否接近,是聚类理论中的基础环节。不同度量适用于不同数据类型,例如连续数值、稀疏向量或文本表示等。度量选取不当,可能使聚类结果偏离真实结构。
2.1.1 欧氏距离
欧氏距离是最常见的几何距离,适合处理数值型、维度较低且量纲较为一致的数据。它反映了点与点之间的直线距离,在K均值等算法中应用广泛。
2.1.2 曼哈顿距离
曼哈顿距离以各维度差值的绝对值之和作为衡量标准,对单个维度的极端变化相对不那么敏感。它在某些稀疏数据或栅格型数据中具有较好的实用性。
2.1.3 余弦相似度
余弦相似度关注向量方向的一致性,而不主要考虑长度大小。它常用于文本表示、推荐特征和高维稀疏场景,尤其适合比较“内容结构”而非“数值规模”。
2.2 目标函数与优化
许多聚类算法都可以表述为对某种目标函数的优化,例如最小化簇内误差、最大化类间分离度,或最大化数据在某个概率模型下的似然。实际求解时,算法通常采用迭代方式逐步逼近局部最优解,因此初始化条件和停止准则会影响最终结果。
2.3 聚类假设
不同方法隐含不同的数据生成或结构假设。理解这些假设,有助于判断算法是否适用于当前数据。
2.3.1 球状簇假设
球状簇假设认为每个簇大致围绕中心呈近似球形分布,且样本到中心的距离可较好反映归属关系。K均值等方法通常更适合这类结构。
2.3.2 密度簇假设
密度簇假设认为簇由高密度区域构成,而簇之间则以低密度区域分隔。基于该思想的算法能较好处理形状复杂、边界不规则的数据。
2.3.3 层次结构假设
层次结构假设认为数据中存在由粗到细的嵌套分组关系。层次聚类据此逐步构造树状结构,适合表达不同粒度上的关联。
2.4 可分性与紧致性
可分性描述不同簇之间是否容易区分,紧致性则衡量同一簇内部是否集中。理想的聚类结果通常表现为“簇内紧凑、簇间分离”。在实际数据中,这两者往往需要权衡,因为过度强调紧致性可能导致簇过碎,而强调可分性不足又可能使结果混杂。
3 聚类方法
3.1 划分式聚类
划分式聚类直接将数据划分为若干互不重叠的簇,通常需要事先指定簇的数量。该类方法结构清晰、实现简便,适合中等规模数据。
3.1.1 K均值聚类
K均值聚类通过反复更新簇中心和样本归属,使簇内平方误差逐步减小。它计算效率较高,但对初始中心和异常值较敏感,且更适合近似球形簇。
3.1.2 K-medoids聚类
K-medoids与K均值类似,但簇中心由真实样本点充当,因此对离群点通常更稳健。由于每次更新涉及样本间比较,计算成本一般高于K均值。
3.1.3 软聚类
软聚类允许一个样本以不同程度属于多个簇,而不是只归入单一类别。该方法更适合边界模糊的数据,能反映对象的混合属性。
3.2 层次聚类
层次聚类通过不断合并或拆分簇,形成多层次结构,最终以树状图呈现结果。它不一定要求预先精确指定簇数,但计算代价通常较高。
3.2.1 自底向上聚合
自底向上聚合从每个样本各自成簇开始,逐步合并最相近的簇,直到满足停止条件。该方式直观,常见于经典层次聚类实现。
3.2.2 自顶向下分裂
自顶向下分裂则从所有样本组成一个大簇开始,再依据某种规则逐步拆分。它适合在整体结构明确时进行细化分析。
3.2.3 树状图
树状图是层次聚类的可视化表达,展示不同层级的合并或分裂过程。通过观察树的剪切位置,可以得到不同粒度的聚类结果。
3.3 密度聚类
密度聚类以局部密度分布为依据,能够识别任意形状的簇,并对噪声具有较强鲁棒性。它特别适合存在明显稀疏背景和局部团块的数据。
3.3.1 DBSCAN
DBSCAN通过定义核心点、边界点和噪声点,寻找密度连通区域。它无需预先指定簇数,但需要设置邻域半径与最小点数等参数。
3.3.2 OPTICS
OPTICS可视为DBSCAN的扩展形式,能够更细致地刻画不同密度水平下的簇结构。它在密度变化较大的数据中往往更灵活。
3.3.3 基于密度的噪声识别
该类方法将低密度、孤立或难以归属的样本识别为噪声,而不强行并入某个簇。这样有助于提升聚类纯度,并为异常分析提供线索。
3.4 模型聚类
模型聚类假设数据由某种概率模型生成,通过估计模型参数来实现分组。此类方法通常可以给出样本属于各簇的概率解释。
3.4.1 高斯混合模型
高斯混合模型认为数据来自多个高斯分布的叠加,每个分量对应一个簇。它能描述比K均值更柔性的边界,但对分布假设和参数估计要求较高。
3.4.2 期望最大化算法
期望最大化算法常用于高斯混合模型等参数估计任务,通过“期望”和“最大化”两个阶段交替更新模型。其优点是通用性较强,但可能收敛到局部最优。
3.5 图聚类
图聚类将样本及其关系表示为图结构,通过节点连接、边权或割边策略来划分群体。该思路适合处理关系网络和非欧氏结构数据。
3.5.1 谱聚类
谱聚类利用图拉普拉斯矩阵的特征向量,将原始数据映射到更易分开的空间,再执行划分。它在处理复杂边界时具有较强表现,但对图构建方式较敏感。
3.5.2 社区发现
社区发现通常用于图网络中,目标是识别内部连接更紧密的节点群。它与聚类理念相近,常见于社交网络、协作网络和引文网络分析。
3.6 网格聚类
网格聚类将空间划分为若干网格单元,再在单元层面进行密度或结构分析。由于计算主要依赖网格而非全体样本对比,因此适合大规模数据。
3.6.1 规则网格划分
规则网格划分把数据空间按固定尺度切分,先统计每个网格的局部性质,再合并相邻高密度区域形成簇。这种方式实现简单,速度较快。
3.6.2 多分辨率网格方法
多分辨率网格方法在不同尺度上观察数据结构,既能捕捉粗粒度分布,也能保留局部细节。它有助于处理密度变化明显或层次结构复杂的数据。
4 关键流程
4.1 数据预处理
聚类前的数据预处理十分重要,因为原始数据中的缺失、噪声和量纲差异都可能显著影响结果。预处理的目标是让样本表示更稳定、更可比。
4.1.1 缺失值处理
缺失值可通过删除、填补或基于模型估计的方式处理。具体方法取决于缺失比例、变量类型及业务背景,处理不当可能改变样本间距离关系。
4.1.2 标准化与归一化
标准化与归一化用于消除量纲差异,使不同特征在计算距离时具有可比性。若各维度尺度差距较大,聚类可能被少数大范围变量主导。
4.1.3 异常值处理
异常值会拉偏簇中心或扭曲局部密度,因此常需在建模前进行识别与处理。常见做法包括截断、剔除、稳健变换或单独标记。
4.2 特征选择与特征工程
特征选择决定哪些变量进入聚类过程,特征工程则进一步构造更有信息量的表示。对于文本、图像和高维稀疏数据,合适的特征表达往往比算法本身更关键。
4.3 参数设定
多数聚类算法都含有若干关键参数,这些参数会直接影响簇的数量、形状和边界。
4.3.1 簇数选择
簇数是划分式和部分模型式算法中的重要参数。实践中可结合先验知识、评估指标或肘部法等经验方法进行选择。
4.3.2 邻域参数选择
邻域参数通常用于密度类方法,例如邻域半径或最小点数。参数过小会使簇过碎,过大则可能把不同区域连成一体。
4.4 训练与迭代
聚类过程通常通过初始化、分配、更新和收敛判断等步骤循环进行。迭代结束后,算法输出簇标签、中心位置、概率参数或层次结构等结果。
4.5 结果输出与解释
聚类结果不仅要给出分组本身,还要说明每个簇的特征、规模和代表性样本。若能进一步解释簇的含义,例如客户类型、文本主题或细胞亚群,结果的实用价值会更高。
5 聚类评估
5.1 内部指标
内部指标不依赖外部标签,主要基于数据本身的结构特征来衡量聚类质量。它们常用于无标注场景下的模型比较。
5.1.1 轮廓系数
轮廓系数综合考虑样本与本簇的紧密程度以及与其他簇的分离程度。其值越高,通常表示聚类效果越好。
5.1.2 Davies-Bouldin指数
Davies-Bouldin指数衡量簇内散度与簇间距离的相对关系,数值越小一般越理想。它适合用于比较不同参数设置下的结果。
5.1.3 Calinski-Harabasz指数
Calinski-Harabasz指数通过类间离散与类内离散的比值来评估聚类质量,数值越大通常越好。该指标常用于快速筛选较优方案。
5.2 外部指标
外部指标在存在真实标签或参考划分时使用,用于衡量聚类结果与已知类别的一致性。
5.2.1 调整兰德指数
调整兰德指数在成对样本一致性基础上进行随机校正,能更公平地比较不同划分。其值越接近1,表示聚类结果与参考标签越一致。
5.2.2 互信息指标
互信息指标用于衡量聚类结果与真实类别之间共享的信息量。常见变体会对簇数差异或随机性进行修正,以提高可比性。
5.3 稳定性评估
稳定性评估关注在样本扰动、抽样变化或参数轻微调整下,聚类结果是否保持一致。若结果稳定,通常说明所发现的结构更可靠。
5.4 可视化评估
可视化能够帮助分析人员直观判断簇的分布、重叠程度和异常点位置。对于高维数据,可视化往往是理解结果的重要补充。
5.4.1 二维散点图
二维散点图适合展示低维数据或降维后的聚类分布。不同颜色和形状可用于区分簇,便于观察边界与混叠情况。
5.4.2 热力图
热力图可用于展示样本与特征的数值模式,也可体现簇内一致性。它在基因表达、文档主题强度等场景中较常见。
5.4.3 树状图可视化
树状图可直观呈现层次聚类的合并关系与层级结构。通过观察分支高度和剪切位置,能快速判断不同层级下的分组方案。
6 应用领域
6.1 市场分析
聚类常用于客户细分、消费行为分组和产品画像构建。企业可据此识别不同偏好的用户群体,并制定差异化策略。
6.2 文本挖掘
在文本分析中,聚类可用于文档分组、主题初筛和语义近邻发现。它能够在缺少标签的情况下帮助整理大量文本资料。
6.3 图像分割
图像处理中,聚类可将像素或区域按颜色、纹理或空间属性分组,从而实现分割。该方法在背景提取、目标粗分和预处理环节中较常见。
6.4 生物信息学
聚类在基因表达分析、蛋白质分型和细胞群识别中应用广泛。它有助于从复杂生物数据中发现潜在功能模式或相近样本群。
6.5 推荐系统
推荐系统可借助聚类将用户或物品分组,以便发现相似偏好或相近属性。这样既能降低计算复杂度,也有助于构建更有针对性的推荐逻辑。
6.6 异常检测
聚类可辅助异常检测,因为难以归入任何簇或远离簇中心的样本,往往值得进一步检查。与其说它直接“识别异常”,不如说它为异常筛查提供结构参照。
7 常见问题与挑战
7.1 簇数难以确定
现实数据中簇数往往并不明确,且不同分析目标对簇粒度的要求也不同。过少会掩盖细节,过多则会导致过度拆分。
7.2 高维数据问题
在高维空间中,距离可能变得不再直观,样本之间容易出现“彼此都差不多远”的现象。此时聚类效果常会下降,需要配合降维或特征筛选。
7.3 噪声与离群点
噪声和离群点会干扰簇中心、边界和密度估计,使结果不稳定。某些方法对这类数据较为敏感,而密度类算法通常更具鲁棒性。
7.4 初始化敏感性
部分算法对初始值十分敏感,不同起点可能导致不同局部最优。为减轻这一问题,常通过多次随机初始化或启发式选点提升稳定性。
7.5 计算复杂度
随着样本数量和维度增加,聚类的时间与空间成本会迅速上升。大规模数据场景下,往往需要近似方法、采样策略或并行计算支持。
7.6 可解释性不足
某些聚类结果虽然在统计上有效,但难以直接解释簇的业务含义。若缺乏可解释性,结果就不容易转化为实际决策,因此常需结合领域知识进行分析。
8 变体与扩展
8.1 半监督聚类
半监督聚类在无标签数据的基础上引入少量先验信息,如必须同簇或必须分离的约束。它兼顾自动发现与知识引导,常用于提升结果质量。
8.2 在线聚类
在线聚类面向连续到达的数据流,能够边接收样本边更新簇结构。它适合实时场景,但通常需要在速度、精度和内存占用之间取得平衡。
8.3 增量聚类
增量聚类在已有聚类结果基础上逐步接纳新数据,而不必每次从头计算。该方式适用于数据持续扩展的任务,能有效降低重算成本。
8.4 大规模分布式聚类
大规模分布式聚类借助多机或集群环境处理海量数据,将计算任务拆分到不同节点上执行。它适合超大样本场景,但对通信和同步机制要求较高。
8.5 多视图聚类
多视图聚类同时利用同一对象的多种表示,例如图像的颜色、纹理和边缘信息,或文本的词法与语义特征。通过融合多源信息,可获得更全面的分组结果。
8.6 模糊聚类
模糊聚类允许样本对多个簇具有不同隶属度,强调边界的不确定性。它比硬聚类更灵活,常用于数据本身界限不清晰的情形。
9 相关算法与概念
9.1 距离度量学习
距离度量学习通过训练数据自动学习更合适的距离函数,使相似样本更接近、不同样本更分离。它可增强聚类对任务语义的适配能力。
9.2 降维方法
降维方法用于减少特征维数、压缩冗余信息,并改善可视化与后续建模效果。常见做法包括线性变换与非线性嵌入。
9.3 异常检测方法
异常检测方法专门用于识别偏离正常模式的样本。它与聚类在处理离群点方面有交叉,但关注点通常更偏向“异常识别”而非“群体划分”。
9.4 主题模型
主题模型用于从文档集合中提取潜在主题分布,与文本聚类在探索文档结构方面具有相似目的。不同之处在于,主题模型更强调概率解释与主题混合。
9.5 分类与回归中的预处理应用
聚类还可作为分类与回归前的辅助工具,例如用于样本分群、原型提取、特征压缩或数据清洗。通过先识别数据结构,后续监督模型有时能获得更稳定的输入基础。