ARTICLE

聚类

%% id: 4516 word: "聚类" created\_model: "stub" verified: true verified\_at: "2025-10-29T22:00:00" created\_by\_id: 1 view\_counts: 0 inserted\_at: "2025-10-29T21:42:33" updated\_at:

浏览 0

%%

id: 4516 word: "聚类" created\_model: "stub" verified: true verified\_at: "2025-10-29T22:00:00" created\_by\_id: 1 view\_counts: 0 inserted\_at: "2025-10-29T21:42:33" updated\_at: "2025-10-29T22:00:00" \%\%

聚类

定义

聚类(Clustering) 是一种无监督学习方法,旨在根据数据对象之间的相似性或距离,将数据集划分为若干个组(称为簇或类),使得同一簇内的数据对象尽可能相似,不同簇之间的数据对象尽可能相异。与分类(Classification)不同,聚类不依赖于预先标记的训练数据,而是从数据本身的结构中自动发现潜在的 grouping 模式。

核心概念

相似性度量

聚类的基础是度量数据对象之间的相似性或距离。常用的距离度量包括:

  • 欧氏距离(Euclidean Distance):最常用的距离度量,适用于连续数值型数据。对于两个 n n 维向量 x=(x1,,xn) \mathbf{x}=(x_1,\dots,x_n) y=(y1,,yn) \mathbf{y}=(y_1,\dots,y_n) ,欧氏距离定义为:
d(x,y)=i=1n(xiyi)2 d(\mathbf{x},\mathbf{y}) = \sqrt{\sum_{i=1}^{n}(x_i - y_i)^2}
  • 曼哈顿距离(Manhattan Distance):也称为 L1 距离,计算各维度绝对差之和:
d(x,y)=i=1nxiyi d(\mathbf{x},\mathbf{y}) = \sum_{i=1}^{n}|x_i - y_i|
  • 余弦相似度(Cosine Similarity):衡量两个向量方向的相似程度,常用于文本数据:
cos(x,y)=xyxy \cos(\mathbf{x},\mathbf{y}) = \frac{\mathbf{x}\cdot\mathbf{y}}{\|\mathbf{x}\|\|\mathbf{y}\|}
  • 杰卡德相似系数(Jaccard Similarity):常用于集合数据的相似性度量。

主要聚类算法

聚类算法种类繁多,根据其底层原理可大致分为以下几类:

1. 基于划分的方法(Partitioning Methods)

K-means 算法 是最经典的聚类算法之一。其核心思想是:给定簇数 k k ,通过迭代优化簇内误差平方和(Sum of Squared Errors, SSE)来寻找最优簇划分:

SSE=j=1kxCjxμj2\text{SSE} = \sum_{j=1}^{k}\sum_{\mathbf{x}\in C_j}\|\mathbf{x} - \boldsymbol{\mu}_j\|^2

其中 μj \boldsymbol{\mu}_j 是簇 Cj C_j 的中心(质心)。算法步骤如下:

  1. 随机选择 k k 个初始质心;
  2. 将每个样本分配到最近的质心所在的簇;
  3. 重新计算每个簇的质心;
  4. 重复步骤 2-3 直至收敛。

K-means 简单高效,但需预先指定 k k 值,且对初始质心选择和异常值敏感。改进版本包括 K-means++(优化初始化使质心分布更均匀)、Mini-batch K-means(每次随机采样子集更新,适用于大规模数据)和 Bisecting K-means(二分K均值,通过递归二分达到全局更优解)。

K-medoids 算法(如 PAM, Partitioning Around Medoids)使用实际数据点作为簇中心(Medoid),对异常值更为鲁棒,但计算复杂度较高。

2. 基于层次的方法(Hierarchical Methods)

层次聚类通过构建层次结构来表示数据的聚类关系,分为两种策略:

  • 凝聚(Agglomerative)层次聚类:自底向上,初始时将每个样本视为一个独立的簇,然后逐步合并最相似的簇,直至达到预设的簇数或所有样本归入一个簇。
  • 分裂(Divisive)层次聚类:自顶向下,从包含所有样本的大簇开始,逐步分裂为更小的簇。

常用的簇间距离度量包括单连接(Single Linkage,基于最近邻)、全连接(Complete Linkage,基于最远邻)、平均连接(Average Linkage,基于组平均距离)和 Ward 方法(最小化合并时簇内方差的增量)。层次聚类的优势在于不需要预先指定簇数,且可以通过树状图(Dendrogram)直观展示聚类过程及层级关系。

3. 基于密度的方法(Density-based Methods)

DBSCAN(Density-Based Spatial Clustering of Applications with Noise) 是一种基于密度的聚类算法,能够发现任意形状的簇并识别噪声点。其核心参数包括:

  • ε \varepsilon (Eps):邻域半径;
  • MinPts:邻域内最少样本数。

DBSCAN 将样本分为核心点、边界点和噪声点三类,通过密度直达和密度可达关系形成簇。与 K-means 相比,DBSCAN 不需要预先指定簇数,且能有效处理不规则形状的簇和噪声数据。其变体包括 OPTICS(对 ε \varepsilon 参数更鲁棒)和 HDBSCAN(层次化 DBSCAN)。

4. 基于高斯混合模型的方法(Gaussian Mixture Model, GMM)

GMM 假设数据由多个高斯分布混合生成,通过期望最大化(EM)算法估计参数。GMM 是一种软聚类方法,每个样本以概率形式属于各个簇,适用于处理重叠分布的数据。

5. 基于图的方法(Graph-based Clustering)

谱聚类(Spectral Clustering)利用数据的相似度矩阵构建拉普拉斯图,然后对图的特征向量进行 K-means 聚类。谱聚类能有效处理非凸形状的簇,在图像分割等领域有广泛应用。

聚类评估

聚类作为无监督学习方法,其结果评价是重要且具有挑战性的问题。评估方法通常分为三类:

  • 内部评估(Internal Validation):仅基于数据本身的特征来评价聚类质量,如轮廓系数(Silhouette Coefficient)、Calinski-Harabasz 指数、Davies-Bouldin 指数等。
  • 外部评估(External Validation):利用真实标签(Ground Truth)与聚类结果进行比较,如调整兰德指数(Adjusted Rand Index, ARI)、互信息(Mutual Information)、纯度(Purity)等。
  • 相对评估(Relative Validation):比较同一算法在不同参数设置下的聚类结果,以确定最优参数组合。

应用领域

聚类分析在自然科学、社会科学和工程技术的各个领域都有着广泛的应用:

  • 市场营销:客户细分(Customer Segmentation),根据消费行为将客户分为不同群体以制定差异化营销策略;
  • 图像处理:图像分割、物体识别、颜色量化;
  • 生物信息学:基因表达数据分析、蛋白质序列聚类、物种分类;
  • 社交网络分析:社区发现、用户兴趣分组;
  • 异常检测:识别与大多数数据对象不同的离群点;
  • 数据压缩:通过聚类减少数据存储量,如向量量化(Vector Quantization)。

局限与挑战

聚类分析面临的主要挑战包括:高维数据中的"维数灾难"导致距离度量失效;簇数 k k 的确定缺乏统一标准;算法对初始参数和噪声敏感;大规模数据的可扩展性问题;以及聚类结果的可解释性等。近年来,深度聚类(Deep Clustering)和自监督聚类等方法将深度学习与聚类结合,在图像和文本等高维数据上展现出良好的性能。

总结

聚类作为无监督学习的核心任务之一,为数据探索和模式发现提供了强大的工具。不同类型的聚类算法各有优劣,实际应用中需要根据数据特征、问题需求和计算资源选择合适的算法与参数。随着大数据和人工智能技术的发展,聚类分析在自动化和智能化数据分析中将继续发挥重要作用。