聚类算法学习
聚类算法的类型非常多,按照不同的分类标准可以划分为多种类别。下面我帮你梳理一下常见的聚类算法类型及其代表方法,方便你理解和选择。
---
1. 按聚类方法分类
# 1.1 基于划分的方法(Partitioning Clustering)
- 通过划分数据集,将数据分成若干个互斥的子集。
- 代表算法: K-Means 、K-Medoids(PAM)、CLARANS。
# 1.2 基于层次的方法(Hierarchical Clustering)
- 通过构建层次树(树状图)进行聚类,分为自底向上(凝聚式)和自顶向下(分裂式)。
- 代表算法: AGNES (凝聚式)、DIANA(分裂式)、BIRCH。
# 1.3 基于密度的方法(Density-Based Clustering)
- 根据数据点的密度分布进行聚类,能够发现任意形状的簇,且能识别噪声。
- 代表算法: DBSCAN 、OPTICS、DENCLUE。
# 1.4 基于网格的方法(Grid-Based Clustering)
- 将数据空间划分成有限数量的单元(网格),在网格层面进行聚类,计算效率高。
- 代表算法:STING、CLIQUE、WaveCluster。
# 1.5 基于模型的方法(Model-Based Clustering)
- 假设数据由若干个模型生成,通过拟合模型参数实现聚类。
- 代表算法: 高斯混合模型(GMM) 、隐马尔可夫模型(HMM)。
---
2. 按数据类型分类
- 基于数值型数据的聚类 :如K-Means、DBSCAN。
- 基于类别型数据的聚类 :如K-Modes、ROCK。
- 混合数据类型聚类 :如K-Prototypes。
---
3. 按算法特点分类
- 硬聚类(Hard Clustering) :每个样本属于一个簇,如K-Means。
- 软聚类(Fuzzy Clustering) :每个样本属于多个簇,带有隶属度,如模糊C均值(FCM)。
---
4. 常见聚类算法总结表
| 类型 | 代表算法 | 特点 |
|----------------|------------------------|----------------------------------|
| 划分方法 | K-Means, K-Medoids | 简单高效,适合球状簇 |
| 层次方法 | AGNES, DIANA, BIRCH | 生成树状结构,适合层次分析 |
| 密度方法 | DBSCAN, OPTICS | 能发现任意形状簇,识别噪声 |
| 网格方法 | STING, CLIQUE | 计算速度快,适合大规模数据 |
| 模型方法 | GMM, HMM | 基于概率模型,适合复杂分布 |
| 软聚类 | FCM | 样本可属于多个簇,适合模糊边界 |
---
5. 总结
聚类算法类型繁多,选择时应根据:
- 数据规模和维度
- 数据类型(数值、类别或混合)
- 期望的簇形状和数量
- 是否需要识别噪声
- 计算资源和效率要求