聚类是一种无监督学习算法,用于将数据集划分为多个组(或簇),使得同一簇内的数据点更相似,不同簇之间的点差异更大。以下是主要的聚类算法及其特点、应用场景和局限性:
1. K-Means 聚类
特点:
- 将数据划分为 (k) 个簇,每个簇由一个质心(Centroid)表示。
- 通过最小化簇内点到质心的平方距离,迭代优化。
步骤:
- 随机选择 (k) 个初始质心。
- 将每个点分配到最近的质心,形成簇。
- 重新计算每个簇的质心。
- 重复步骤 2 和 3,直到质心收敛或达到最大迭代次数。
优点:
- 简单、高效,适合大规模数据。
- 算法时间复杂度为 (O(n \cdot k \cdot t))((t) 为迭代次数)。
缺点:
- 需预先指定簇数 (k)。
- 对初始质心敏感,易陷入局部最优。
- 不适用于非球形分布的簇,且对噪声和离群点敏感。
适用场景:
- 客户分群
- 图像分割
2. 层次聚类 (Hierarchical Clustering)
特点:
- 根据数据点之间的相似性逐层建立层次关系。
- 分为自底向上(凝聚聚类)和自顶向下(分裂聚类)。
步骤:
- 每个点初始作为一个簇。
- 计算簇之间的相似度,合并最相似的簇。
- 重复直到形成一个簇或达到预设簇数。
优点:
- 不需预设簇数。
- 可生成聚类树(Dendrogram),直观显示聚类关系。
缺点:
- 计算复杂度高((O(n^2 \log n)))。
- 对大规模数据不适用。
- 聚类结果不可调整(需要从头重新运行)。
适用场景:
- 基因序列分析
- 文本分类
3. DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
特点:
- 基于密度的聚类算法,通过点的密度分布发现任意形状的簇。
参数:
- (Eps):邻域半径。
- (MinPts):定义簇的最小点数。
步骤:
- 标记所有点为核心点、边界点或噪声点。
- 以核心点为中心,将 (Eps) 范围内的点归为一个簇。
- 重复直到所有核心点处理完成。
优点:
- 能发现任意形状的簇。
- 对噪声和离群点鲁棒。
- 无需指定簇数。
缺点:
- 参数 (Eps) 和 (MinPts) 选择困难。
- 对高维数据效果较差。
适用场景:
- 地理区域聚类
- 异常检测
4. 均值漂移 (Mean-Shift)
特点:
- 基于核密度估计(Kernel Density Estimation),通过迭代寻找高密度区域。
步骤:
- 初始化点集。
- 计算每个点的密度梯度,向密度更高方向移动。
- 重复直到点收敛。
优点:
- 不需预设簇数。
- 能发现任意形状的簇。
缺点:
- 对带宽参数敏感。
- 计算复杂度较高,适合中小规模数据。
适用场景:
- 图像分割
- 模式识别
5. 高斯混合模型 (GMM, Gaussian Mixture Model)
特点:
- 假设数据由多个高斯分布组成,每个簇对应一个高斯分布。
- 使用期望最大化(EM)算法优化参数。
步骤:
- 初始化高斯分布参数(均值、方差、权重)。
- E 步:计算每个点属于各高斯分布的概率。
- M 步:更新高斯分布参数。
- 重复直到收敛。
优点:
- 能处理不同形状和大小的簇。
- 提供每个点的软分类概率。
缺点:
- 需要预设簇数。
- 对初始参数敏感,可能陷入局部最优。
适用场景:
- 图像处理
- 聚类分析中的概率建模
6. 谱聚类 (Spectral Clustering)
特点:
- 基于图论,通过数据点的相似性构建图,然后使用图的特征值进行聚类。
步骤:
- 构建相似度矩阵。
- 计算图的拉普拉斯矩阵并求特征向量。
- 对特征向量进行 K-Means 聚类。
优点:
- 适用于复杂形状的簇。
- 能处理非线性分割问题。
缺点:
- 相似度矩阵计算复杂,适合小规模数据。
- 对参数敏感。
适用场景:
- 社交网络分析
- 图像分割
7. OPTICS (Ordering Points To Identify the Clustering Structure)
特点:
- 是 DBSCAN 的扩展版本,能更好处理不同密度的簇。
步骤:
- 以递增方式扫描数据点,记录点的可达性距离。
- 根据距离生成聚类结果。
优点:
- 适合密度分布不均的数据。
- 不需严格指定参数。
缺点:
- 参数选择复杂。
- 计算复杂度较高。
适用场景:
- 密度变化明显的数据集。
总结
算法 | 适合数据分布 | 参数要求 | 适用场景 |
---|---|---|---|
K-Means | 球形分布、均匀密度 | 簇数 (k) | 快速分群 |
层次聚类 | 小规模数据 | 无需参数 | 直观展示数据关系 |
DBSCAN | 任意形状、含噪声 | (Eps)、(MinPts) | 噪声鲁棒分析 |
均值漂移 | 高密度数据分布 | 带宽参数 | 模式识别 |
GMM | 高斯分布 | 簇数、初始参数 | 概率建模 |
谱聚类 | 任意形状 | 相似度矩阵参数 | 图分析、复杂分割 |
OPTICS | 不均匀密度分布 | (Eps)、(MinPts) | 密度变化数据集 |
选择算法时应根据数据分布特性、规模和具体任务需求进行权衡。