(还没详细看基础理论,放的是 gpt 的总结整理)

# K-Means

原理:

  • 目标是将数据划分为 K 个簇,使簇内的样本尽可能相似,簇间尽可能不同。
  • 核心思想:最小化样本点到其所在簇质心(centroid)的距离平方和。

算法步骤:

  1. 随机选择 KKK 个初始质心。
  2. 将每个样本分配到最近的质心所代表的簇。
  3. 重新计算每个簇的质心。
  4. 重复步骤 2 和 3,直到质心不再变化或达到最大迭代次数。

优点: 简单、高效
缺点: 只能发现凸形簇,对初始质心敏感,不适用于不同方差或非球形分布的数据

# GMM

原理:

  • 假设数据是由多个高斯分布组成的混合体,每个高斯分布代表一个簇。
  • 通过 期望最大化(EM)算法学习每个高斯分布的参数(均值、协方差、混合权重)。

核心思想:每个点属于每个簇的概率不再是硬性划分,而是软分配(soft clustering)。
算法步骤(EM):

  1. 初始化各个高斯分布的参数(可使用 KMeans)。
  2. E 步(期望):计算每个点属于每个簇的概率(后验)。
  3. M 步(最大化):根据概率重新估计每个高斯分布的参数。
  4. 重复直到收敛。

优点: 适用于不同方差、非球形数据。
缺点: 容易陷入局部最优,计算量较大,需指定簇数。

# DBSCAN

原理:

  • 基于密度的聚类:同簇内点应密集相邻,簇之间应有低密度区域隔开。
  • 不需要指定簇数,能发现任意形状的簇。

核心概念:

  • ε(eps)半径邻域内有足够多的点(≥ MinPts),则该点是核心点。
  • 从核心点出发扩展簇,密度可达的点属于同一个簇。
  • 不能归类的点为噪声点

优点: 能发现任意形状的簇,鲁棒性强。
缺点: 对参数(eps, MinPts)敏感,不适用于高维稀疏数据。

# 层次聚类

原理:

  • 创建一个聚类树(dendrogram),逐步合并或拆分簇。

两种方式:

  • 自底向上(凝聚型 Agglomerative):每个点先是一个簇,逐步合并。
  • 自顶向下(分裂型 Divisive):所有点一个簇,逐步划分。

合并标准:

  • 最短距离(single linkage)
  • 最长距离(complete linkage)
  • 平均距离(average linkage)

优点: 不需要指定簇数,可观察聚类结构。
缺点: 时间复杂度高,不能回溯合并 / 分裂。

# 谱聚类

原理:

  • 基于图论,构造相似度矩阵并进行特征分解,把聚类问题转化为图的划分问题。

流程:

  1. 构造邻接图(基于点之间相似度)。
  2. 计算图的拉普拉斯矩阵。
  3. 对其进行特征分解,选取前 K 个特征向量作为新表示。
  4. 对新表示使用 KMeans 聚类。

优点: 适合非凸簇、复杂结构。
缺点: 计算复杂、内存消耗大。

# 总结对比

算法是否需指定 K是否适应非球形是否可处理噪声聚类方式
K-Means硬聚类
GMM软聚类
DBSCAN硬聚类
层次聚类一定程度上硬聚类
谱聚类硬聚类(+KMeans)
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

北沐清 微信支付

微信支付

北沐清 支付宝

支付宝