聚类的主要算法和介绍

聚类是一种无监督学习算法,用于将数据集划分为多个组(或簇),使得同一簇内的数据点更相似,不同簇之间的点差异更大。以下是主要的聚类算法及其特点、应用场景和局限性:


1. K-Means 聚类

特点

  • 将数据划分为 (k) 个簇,每个簇由一个质心(Centroid)表示。
  • 通过最小化簇内点到质心的平方距离,迭代优化。

步骤

  1. 随机选择 (k) 个初始质心。
  2. 将每个点分配到最近的质心,形成簇。
  3. 重新计算每个簇的质心。
  4. 重复步骤 2 和 3,直到质心收敛或达到最大迭代次数。

优点

  • 简单、高效,适合大规模数据。
  • 算法时间复杂度为 (O(n \cdot k \cdot t))((t) 为迭代次数)。

缺点

  • 需预先指定簇数 (k)。
  • 对初始质心敏感,易陷入局部最优。
  • 不适用于非球形分布的簇,且对噪声和离群点敏感。

适用场景

  • 客户分群
  • 图像分割

2. 层次聚类 (Hierarchical Clustering)

特点

  • 根据数据点之间的相似性逐层建立层次关系。
  • 分为自底向上 (凝聚聚类)和自顶向下(分裂聚类)。

步骤

  1. 每个点初始作为一个簇。
  2. 计算簇之间的相似度,合并最相似的簇。
  3. 重复直到形成一个簇或达到预设簇数。

优点

  • 不需预设簇数。
  • 可生成聚类树(Dendrogram),直观显示聚类关系。

缺点

  • 计算复杂度高((O(n^2 \log n)))。
  • 对大规模数据不适用。
  • 聚类结果不可调整(需要从头重新运行)。

适用场景

  • 基因序列分析
  • 文本分类

3. DBSCAN (Density-Based Spatial Clustering of Applications with Noise)

特点

  • 基于密度的聚类算法,通过点的密度分布发现任意形状的簇。

参数

  • (Eps):邻域半径。
  • (MinPts):定义簇的最小点数。

步骤

  1. 标记所有点为核心点、边界点或噪声点。
  2. 以核心点为中心,将 (Eps) 范围内的点归为一个簇。
  3. 重复直到所有核心点处理完成。

优点

  • 能发现任意形状的簇。
  • 对噪声和离群点鲁棒。
  • 无需指定簇数。

缺点

  • 参数 (Eps) 和 (MinPts) 选择困难。
  • 对高维数据效果较差。

适用场景

  • 地理区域聚类
  • 异常检测

4. 均值漂移 (Mean-Shift)

特点

  • 基于核密度估计(Kernel Density Estimation),通过迭代寻找高密度区域。

步骤

  1. 初始化点集。
  2. 计算每个点的密度梯度,向密度更高方向移动。
  3. 重复直到点收敛。

优点

  • 不需预设簇数。
  • 能发现任意形状的簇。

缺点

  • 对带宽参数敏感。
  • 计算复杂度较高,适合中小规模数据。

适用场景

  • 图像分割
  • 模式识别

5. 高斯混合模型 (GMM, Gaussian Mixture Model)

特点

  • 假设数据由多个高斯分布组成,每个簇对应一个高斯分布。
  • 使用期望最大化(EM)算法优化参数。

步骤

  1. 初始化高斯分布参数(均值、方差、权重)。
  2. E 步:计算每个点属于各高斯分布的概率。
  3. M 步:更新高斯分布参数。
  4. 重复直到收敛。

优点

  • 能处理不同形状和大小的簇。
  • 提供每个点的软分类概率。

缺点

  • 需要预设簇数。
  • 对初始参数敏感,可能陷入局部最优。

适用场景

  • 图像处理
  • 聚类分析中的概率建模

6. 谱聚类 (Spectral Clustering)

特点

  • 基于图论,通过数据点的相似性构建图,然后使用图的特征值进行聚类。

步骤

  1. 构建相似度矩阵。
  2. 计算图的拉普拉斯矩阵并求特征向量。
  3. 对特征向量进行 K-Means 聚类。

优点

  • 适用于复杂形状的簇。
  • 能处理非线性分割问题。

缺点

  • 相似度矩阵计算复杂,适合小规模数据。
  • 对参数敏感。

适用场景

  • 社交网络分析
  • 图像分割

7. OPTICS (Ordering Points To Identify the Clustering Structure)

特点

  • 是 DBSCAN 的扩展版本,能更好处理不同密度的簇。

步骤

  1. 以递增方式扫描数据点,记录点的可达性距离。
  2. 根据距离生成聚类结果。

优点

  • 适合密度分布不均的数据。
  • 不需严格指定参数。

缺点

  • 参数选择复杂。
  • 计算复杂度较高。

适用场景

  • 密度变化明显的数据集。

总结

算法 适合数据分布 参数要求 适用场景
K-Means 球形分布、均匀密度 簇数 (k) 快速分群
层次聚类 小规模数据 无需参数 直观展示数据关系
DBSCAN 任意形状、含噪声 (Eps)、(MinPts) 噪声鲁棒分析
均值漂移 高密度数据分布 带宽参数 模式识别
GMM 高斯分布 簇数、初始参数 概率建模
谱聚类 任意形状 相似度矩阵参数 图分析、复杂分割
OPTICS 不均匀密度分布 (Eps)、(MinPts) 密度变化数据集

选择算法时应根据数据分布特性、规模和具体任务需求进行权衡。

相关推荐
森焱森30 分钟前
无人机三轴稳定控制(2)____根据目标俯仰角,实现俯仰稳定化控制,计算出升降舵输出
c语言·单片机·算法·架构·无人机
ytttr8731 小时前
matlab通过Q学习算法解决房间路径规划问题
学习·算法·matlab
想知道哇2 小时前
机器学习入门:决策树的欠拟合与过拟合
人工智能·机器学习
go54631584652 小时前
修改Spatial-MLLM项目,使其专注于无人机航拍视频的空间理解
人工智能·算法·机器学习·架构·音视频·无人机
油泼辣子多加3 小时前
【Torch】nn.BatchNorm1d算法详解
算法
nlog3n3 小时前
基于 govaluate 的监控系统中,如何设计灵活可扩展的自定义表达式函数体系
算法·go
IT古董3 小时前
【第三章:神经网络原理详解与Pytorch入门】01.神经网络算法理论详解与实践-(2)神经网络整体结构
pytorch·神经网络·算法
还有糕手3 小时前
西南交通大学【机器学习实验2】
人工智能·机器学习
ThetaarSofVenice3 小时前
垃圾收集相关算法Test
java·jvm·算法
小陈phd3 小时前
langchain从入门到精通(二十八)——RAG优化策略(六)集成多种检索器算法实现混合检索及问题转换总结
算法