聚类分析是机器学习中的一种无监督学习方法,旨在将数据划分为具有相似特征的组(簇)。以下是常见聚类算法的总结及其关键要点:
1. K-means算法
- 原理:基于质心,通过迭代优化将数据划分为K个簇。
- 步骤:
- 随机初始化K个质心。
- 将样本分配到最近的质心形成簇。
- 重新计算质心,重复直至收敛。
- 优点:简单高效,适合大规模数据。
- 缺点:
O 需预先指定K值(可用肘部法则或轮廓系数确定)。
O 对非凸簇、噪声敏感,可能陷入局部最优。
- 改进:K-means++优化初始质心选择。
2. 层次聚类(Hierarchical Clustering)
- 类型:
O 凝聚型(自底向上):从单点开始逐步合并簇。
O 分裂型(自顶向下):从整体开始逐步分裂。
- 距离度量:欧氏距离、曼哈顿距离等。
- 簇间距离方法:单链接(最小距离)、全链接(最大距离)、平均链接。
- 优点:无需预设簇数,树状图直观展示层次结构。
- 缺点:计算复杂度高(O(n^3)),不适合大数据集。
3. DBSCAN(基于密度的聚类)
- 原理:通过核心点扩展高密度区域,识别噪声。
- 参数:
O eps(邻域半径)和 minPts(核心点最小邻居数)。
- 步骤:
- 标记核心点、边界点和噪声点。
- 从核心点出发,密度可达的点形成簇。
- 优点:处理任意形状簇,抗噪声,无需预设簇数。
- 缺点:对参数敏感,高维数据效果差。
- 参数选择:k-距离图确定eps,minPts通常取数据维度+1。
4. 高斯混合模型(GMM)
- 原理:假设数据由多个高斯分布混合生成,EM算法估计参数。
- 优点:软聚类(概率归属),适合复杂分布。
- 缺点:假设高斯分布,计算复杂度高,可能过拟合。
5. 谱聚类(Spectral Clustering)
- 原理:基于图论,对相似度矩阵进行特征分解后聚类。
- 步骤:
- 构建相似度矩阵和拉普拉斯矩阵。
- 对矩阵进行特征分解,取前k个特征向量。
- 对特征向量应用K-means聚类。
- 优点:适合非凸簇,如图像分割。
- 缺点:对相似度矩阵敏感,计算复杂度高。
应用场景
- K-means:客户分群、数值型数据。
- 层次聚类:生物分类、小规模层次数据。
- DBSCAN:地理数据、噪声环境。
- GMM:复杂分布数据(如语音识别)。
- 谱聚类:社交网络分析、图像分割。
评估指标
- 内部指标:轮廓系数(衡量紧密度与分离度)、Calinski-Harabasz指数、Davies-Bouldin指数。
- 外部指标(需真实标签):调整兰德指数(ARI)、归一化互信息(NMI)。
注意事项
- 高维数据:先降维(如PCA、t-SNE)再聚类。
- 参数调优:结合领域知识和可视化方法选择参数。
选择合适的算法需综合考虑数据特性(形状、噪声、维度)、计算效率及是否需要预设簇数。