聚类作为无监督学习的重要分支,其目标是将数据集划分为若干个具有相似特征的子集(即簇),使得同一簇内的样本尽可能相近,而不同簇之间的样本差异明显。以下介绍几种主流聚类方法的核心原理与实现方式。
核心思想:通过最小化簇内平方误差(SSE)将数据划分为 K 个簇,每个簇由其质心(均值)表示。
算法流程:
局限性:
选择合适的簇数 K 是使用 K-Means 的关键问题之一,常用方法包括肘部法则和轮廓系数法。
1. 肘部图(Elbow Method)
观察不同 K 值下聚类模型的误差平方和(SSE)变化趋势,寻找“拐点”作为理想 K 值。随着 K 增大,SSE 单调递减,但在某个临界点后下降速度明显放缓,形成类似手肘的形状。
SSE 计算公式如下:
SSE = \sum_{i=1}^{k} \sum_{x \in C_i} ||x - \mu_i||^2
其中,\(C_i\) 表示第 i 个簇,\(\mu_i\) 为其质心。
代码示例:
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
sse = []
for k in range(1, 11):
kmeans = KMeans(n_clusters=k, random_state=42).fit(X)
sse.append(kmeans.inertia_)
plt.plot(range(1, 11), sse, marker='o')
plt.xlabel('K')
plt.ylabel('SSE')
plt.title('Elbow Method')
plt.show()
2. 轮廓系数(Silhouette Coefficient)
用于衡量样本与其自身簇的紧密程度以及与其他簇的分离程度,取值范围为 [-1, 1],数值越大表明聚类效果越好。最优 K 值通常对应轮廓系数的最大值。
单一样本 i 的轮廓系数计算公式为:
s(i) = \frac{b(i) - a(i)}{\max\big(a(i), b(i)\big)}
其中:
核心思想:优化初始质心选取过程,降低随机性影响,提升收敛速度与聚类质量。
主要改进:
采用加权概率机制选择初始中心点:首个中心点随机选定;后续每一步中,距离已有中心越远的数据点被选中的概率越高。
若当前已选中心集合为 \(C\),新中心点 \(x\) 的选择概率为:
P(x) = \frac{D(x)^2}{\sum_{x_i \in X} D(x_i)^2}
其中,\(D(x)\) 表示点 \(x\) 到最近已选中心的距离。
核心思想:采用自上而下的分裂策略——从一个包含全部数据的簇开始,每次将一个现有簇用 K-means 分裂成两个子簇(k=2),直到总数达到指定 K 值。通常优先分裂 SSE 最大的簇。
算法步骤:
优势:
核心思想:根据样本分布的密度来识别簇,能够发现任意形状的聚类,并有效识别噪声点(离群点)。
该方法基于两个关键参数:
据此定义三类点:
聚类过程通过不断扩展密度可达的点形成簇,天然支持噪声过滤和非凸簇识别。
核心思想:是对 DBSCAN 的改进,解决了其对全局参数 \(\epsilon\) 的敏感问题。通过构建“可达性距离”排序,生成一个反映数据密度结构的可视化顺序图,从而支持多密度层次的聚类分析。
相较于 DBSCAN,OPTICS 不直接产生固定簇划分,而是输出一种有序结构,用户可根据此结构提取不同粒度的聚类结果。
该方法通过构建树状结构(称为“树形图” dendrogram)来组织簇,可分为两类:
常用于需要展示数据层级关系的场景,如生物分类、社交网络分析等。
聚类过程中,样本间相似性通常通过距离函数衡量,常见类型包括:
具体选择应结合数据特性与应用场景。
在层次聚类中,判断两个簇之间的“距离”有多种策略:
GMM 是一种基于概率模型的软聚类方法,假设数据由多个高斯分布混合而成,每个簇对应一个高斯成分。
相比于 K-Means 的硬划分,GMM 提供的是每个样本属于各个簇的概率(隶属度),更具灵活性。
用于估计 GMM 中的参数(均值、协方差、混合权重),属于迭代优化算法,包含两个步骤:
重复以上两步直至收敛。
GMM 能拟合更复杂的簇形状(如椭圆、倾斜分布),但计算成本较高,且对初值敏感。

基于密度的聚类方法能够有效识别任意形状的簇,并具备噪声点检测能力。该类算法通过设定邻域参数来判断数据点之间的密度关系,进而实现簇的扩展与划分。
其中,“密度可达”是指:若某点位于一个核心点的 ε 邻域内,则认为其密度可达。进一步地:
优点:
缺点:
由于 DBSCAN 使用统一的 ε 值,在面对多密度场景时存在局限性:
为缓解这一问题,OPTICS(Ordering Points To Identify the Clustering Structure)被提出,旨在解决对输入参数敏感的问题。该方法通过对有限组邻域参数进行聚类分析,获得不同参数下的聚类结构,从而更灵活地揭示数据内在模式。
核心距离(Core Distance):
对于给定对象 p 和邻域半径 ε,核心距离表示使 p 成为核心点所需的最小半径 r。数学定义如下:
CD(p, ε) = min{ r | r ≤ ε, |Nr(p)| ≥ MinPts }
其中 Nr(p) 表示以 p 为中心、半径为 r 的邻域中包含的点集,MinPts 为预设阈值。若在 ε 范围内 p 的邻域点数不足 MinPts,则 p 不是核心点,其核心距离无定义,记作 ∞。
可达距离(Reachability Distance):
对象 q 关于核心点 p 的可达距离定义为:
RD(p, q, ε) = max( CD(p, ε), d(p, q) )
其中 d(p, q) 是 p 与 q 之间的直接距离(如欧氏距离)。若 p 非核心点,则该距离无意义,记为 ∞。
性质说明:
OPTICS 在 DBSCAN 的基础上进行了优化,引入可达距离排序机制,适用于多密度环境下的聚类任务。它并不直接输出最终簇标签,而是生成一个反映密度结构的排序序列,便于后续按需提取簇。
详细执行过程:
该过程能按照局部密度差异自动聚合相似密度的点,而非强制分配类别标签。
以下为 insert_list() 函数的具体定义:
核心思想:
采用树状结构(即树状图)描述数据点间的聚合关系,分为两类主要方式:凝聚式(自底向上)和分裂式(自顶向下)。
| 距离名称 | 定义 | 数学表达式(二维空间) | 适用场景 |
|---|---|---|---|
| 欧氏距离 | 两点之间的直线距离 | d = √[(x - x) + (y - y)] | 几何空间、聚类分析 |
| 曼哈顿距离 | 两点在各坐标轴上的绝对距离之和 | d = |x - x| + |y - y| | 网格路径规划、图像处理 |
在度量空间中,不同的距离度量方法适用于多种数据分析任务。以下是几种常见的距离与相似性度量方式及其应用场景的整理。
切比雪夫距离定义为两点在各个坐标维度上差值的绝对值中的最大值,其公式为:
d = max(|x - x|, |y - y|)
该距离常用于棋盘式移动模拟或图像像素分析等场景,其中移动的最大偏移决定了整体距离。
闵可夫斯基距离是多种距离的广义形式,通过调节参数 p 可以退化为不同具体距离:
d = (|x - x| + |y - y|)/
当 p=1 时,变为曼哈顿距离;当 p=2 时,对应欧氏距离。这种灵活性使其适用于需要动态调整距离计算方式的任务。
p
余弦相似度衡量的是两个向量之间的方向夹角余弦值,表达式如下:
cosθ = (xx + yy) / [√(x + y) × √(x + y)]
尽管它并非严格意义上的距离度量,但广泛应用于文本分类和推荐系统中,用以评估内容间的语义相似性。可通过 1 - cosθ 的转换形式作为距离使用。
1 - cosθ
马氏距离是一种考虑数据分布结构的距离度量,其计算涉及协方差矩阵 Σ 的逆:
d = √[(x - x) Σ (x - x)]
由于对变量间的相关性和尺度差异进行了标准化处理,因此特别适合多元统计分析和异常检测任务,尤其在非独立同分布数据中表现优异。
汉明距离用于比较两个等长字符串,在相同位置上不同字符的数量即为该距离:
d = Σ δ(x ≠ y)
其中 δ 为指示函数,表示是否发生字符差异。此距离在编码理论、DNA序列比对等领域具有重要应用。
杰卡德距离由集合运算得出,定义为 1 减去杰卡德相似系数:
d = 1 - |A ∩ B| / |A ∪ B|
用于衡量两个集合之间的差异程度,常见于集合相似性分析及推荐系统中。
在聚类分析中,常用的簇间距离计算策略包括单链接、全链接和平均链接,各自特性如下表所示:
| 方法 | 计算公式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 单链接 | D(A,B) = min∈, b∈B d(a,b) | 能够识别细长或不规则形状的簇;对噪声相对鲁棒 | 容易产生链式效应(Chaining Effect) | 适用于非球形簇结构 |
| 全链接 | D(A,B) = max∈, b∈B d(a,b) | 生成更紧凑的簇,避免链式延伸 | 对离群点和噪声敏感 | 适用于球形或密集分布的数据簇 |
| 平均链接 | D(A,B) = (1 / |A|×|B|) Σ∈ Σ_b∈B d(a,b) | 综合单链接与全链接的优点,效果较为均衡 | 计算开销较大,复杂度较高 | 通用性强,适用于中等规模数据集 |
核心思想:假设观测数据是由多个高斯分布线性组合而成,利用EM算法迭代估计各成分的参数(均值、协方差、权重)。
算法流程:
问题背景:在无监督学习中,观测数据 X 常伴随隐变量 Z,导致直接求解极大似然困难,因需对隐变量积分或求和。
算法框架:EM算法通过交替进行以下两步实现参数优化:
Q(θ|θ) = _{Z|X,θ} [log p(X,Z|θ)]
通过反复迭代,逐步逼近最优参数估计。
M 步(Maximization):通过最大化期望函数,得到下一轮迭代的参数估计值:
θ(t+1) = arg maxθ Q(θ | θ(t))。
该迭代过程确保对数似然函数在每一步都不减少,最终收敛至局部极大值。

EM 算法适用于存在以下情况的模型:
在 GMM 中,观测数据被认为是由 K 个多元正态分布线性组合生成的结果,其概率密度函数表示为:
p(x) = ∑k=1K πk·(x | μk, Σk),
其中,πk 表示第 k 个高斯分量的混合权重,满足 ∑k πk = 1;μk 和 Σk 分别是第 k 个高斯分布的均值向量与协方差矩阵。
由于每个样本所属的具体高斯分量无法直接观测,因此采用 EM 算法进行参数学习。
E 步(Expectation):计算每个样本 xi 属于第 k 个分量的后验概率,即“软分配”结果:
γik = p(zi = k | xi, θ(t)) = [πk(t)·(xi | μk(t), Σk(t))] / [∑j=1K πj(t)·(xi | μj(t), Σj(t))]。
M 步(Maximization):根据 E 步提供的软分配权重,更新模型参数:
重复执行 E 步与 M 步,直到对数似然的变化趋于稳定,算法收敛。
不同于 K-Means 这类硬聚类方法,GMM 提供的是概率形式的聚类归属,即每个样本属于各个簇的概率。这种机制使其能够有效识别非球形、椭圆状分布的簇结构,特别适合处理高维空间中复杂分布的数据。
| 应用场景 | 常用算法 | 说明 |
|---|---|---|
| 聚类分析 | GMM + EM | 适用于簇间存在重叠、形状大小不一的情形,如图像分割、用户行为分群等任务 |
| 密度估计 | GMM | 用于构建生成模型、异常检测或概率预测等场景 |
| HMM 参数学习 | EM(Baum-Welch 算法) | 隐状态不可见时,利用 EM 框架迭代估计转移概率和发射概率 |
| 其他生成模型 | EM | 包括混合朴素贝叶斯、因子分析等,均属于含隐变量的建模范畴,EM 可作为通用求解工具 |
| 文本主题建模 | 变分 EM / 采样 EM | LDA 中的主题为潜在变量,通常借助 EM 类方法进行近似推断 |
模型选择具有挑战性:混合分量数 K 需要人为设定,若选择不当容易引发欠拟合或过拟合问题。为缓解这一难题,通常采用 BIC/AIC 准则、交叉验证方法,或引入非参数贝叶斯技术(例如基于狄利克雷过程的 GMM)来进行辅助判断。
对噪声与离群点较为敏感:异常数据会显著干扰均值与协方差的估计结果,进而降低聚类效果。对此,可通过使用对角协方差结构、稀疏协方差形式,或改用鲁棒性的混合模型来提升模型的抗干扰能力。
初始参数影响显著:不同的初始均值、协方差矩阵或混合权重设置可能导致算法收敛至不同结果。因此,在实际应用中,常结合 K-Means 或层次聚类等方法进行预初始化,以提高收敛稳定性与聚类质量。

扫码加好友,拉您进群



收藏
