多种聚类算法对比

多种聚类算法对比

目录

  1. 引言
  2. K-Means 聚类
  3. 层次聚类
  4. DBSCAN 聚类
  5. 高斯混合模型 (GMM)
  6. 谱聚类
  7. 均值漂移聚类 (Mean Shift)
  8. Affinity Propagation 聚类
  9. BIRCH 聚类
  10. OPTICS 聚类
  11. 聚类算法比较
  12. 示例代码
  13. 结语

引言

聚类是机器学习中的一种无监督学习方法,旨在将数据集中的对象划分为若干个簇,使得同一簇内的对象相似度高,而不同簇之间的对象相似度低。聚类算法广泛应用于图像分割、市场细分、社交网络分析、生物信息学等领域。不同的聚类算法在处理数据的方式、适用场景以及计算复杂度等方面存在显著差异。本文将详细介绍几种常见的聚类算法,帮助读者理解它们的基本原理、数学基础和应用场景。

K-Means 聚类

原理与步骤

K-Means 是最常用的聚类算法之一,其目标是将数据分为 K 个簇,每个簇由其质心(即簇内所有点的均值)代表。算法的基本步骤如下:

  1. 初始化:随机选择 K 个初始质心。
  2. 分配步骤:将每个数据点分配到最近的质心所代表的簇。
  3. 更新步骤:重新计算每个簇的质心。
  4. 迭代:重复分配和更新步骤,直到质心不再发生显著变化或达到预设的迭代次数。

数学公式

K-Means 的目标是最小化以下目标函数:
J = ∑ i = 1 K ∑ x ∈ C i ∥ x − μ i ∥ 2 J = \sum_{i=1}^{K} \sum_{x \in C_i} \|x - \mu_i\|^2 J=i=1KxCixμi2
其中:

  • K K K 为簇的数量。
  • C i C_i Ci 表示第 i i i 个簇。
  • μ i \mu_i μi 是第 i i i 个簇的质心,计算公式为:
    μ i = 1 ∣ C i ∣ ∑ x ∈ C i x \mu_i = \frac{1}{|C_i|} \sum_{x \in C_i} x μi=Ci1xCix

优缺点

优点

  • 简单易懂,计算效率高,适用于大规模数据集。
  • 对于簇形状较为规则的数据效果良好。

缺点

  • 需要预先指定 K 值,且对 K 的选择敏感。
  • 对初始质心敏感,容易陷入局部最优。
  • 只能发现凸形簇,对于非凸形数据效果较差。
  • 对噪声和异常值敏感。

层次聚类

凝聚层次聚类

层次聚类通过构建一个层次结构来组织数据,分为凝聚层次聚类(自底向上)和分裂层次聚类(自顶向下)。

凝聚层次聚类步骤:
  1. 初始化:将每个数据点视为一个独立的簇。
  2. 合并:每次合并距离最近的两个簇。
  3. 重复:直到所有数据点合并为一个簇或达到预定的簇数。

分裂层次聚类

  1. 初始化:将所有数据点视为一个簇。
  2. 分裂:每次将一个簇分裂为两个子簇。
  3. 重复:直到每个簇只包含一个数据点或达到预定的簇数。

数学公式

层次聚类的关键在于簇间距离的定义,常用的距离度量包括:

  • 单链距离(Single Linkage)
    d ( C i , C j ) = min ⁡ x ∈ C i , y ∈ C j ∥ x − y ∥ d(C_i, C_j) = \min_{x \in C_i, y \in C_j} \|x - y\| d(Ci,Cj)=xCi,yCjminxy
  • 完全链距离(Complete Linkage)
    d ( C i , C j ) = max ⁡ x ∈ C i , y ∈ C j ∥ x − y ∥ d(C_i, C_j) = \max_{x \in C_i, y \in C_j} \|x - y\| d(Ci,Cj)=xCi,yCjmaxxy
  • 平均链距离(Average Linkage)
    d ( C i , C j ) = 1 ∣ C i ∣ ∣ C j ∣ ∑ x ∈ C i ∑ y ∈ C j ∥ x − y ∥ d(C_i, C_j) = \frac{1}{|C_i||C_j|} \sum_{x \in C_i} \sum_{y \in C_j} \|x - y\| d(Ci,Cj)=C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DuHz

喜欢就支持一下 ~ 谢谢啦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值