聚类的主要算法和介绍

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


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) 密度变化数据集

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

相关推荐
垠二22 分钟前
L2-4 寻宝图
数据结构·算法
东方芷兰3 小时前
算法笔记 04 —— 算法初步(下)
c++·笔记·算法
JNU freshman3 小时前
图论 之 迪斯科特拉算法求解最短路径
算法·图论
青松@FasterAI3 小时前
【NLP算法面经】本科双非,头条+腾讯 NLP 详细面经(★附面题整理★)
人工智能·算法·自然语言处理
旅僧4 小时前
代码随想录-- 第一天图论 --- 岛屿的数量
算法·深度优先·图论
Emplace4 小时前
ABC381E题解
c++·算法
果冻人工智能4 小时前
去中心化 AI:赋权还是混乱?
人工智能·深度学习·机器学习·架构·去中心化·区块链·ai员工
若兰幽竹4 小时前
【机器学习】衡量线性回归算法最好的指标:R Squared
算法·机器学习·线性回归
居然有人6545 小时前
23贪心算法
数据结构·算法·贪心算法
EterNity_TiMe_5 小时前
【人工智能】蓝耘智算平台盛大发布DeepSeek满血版:开创AI推理体验新纪元
人工智能·python·机器学习·deepseek