目录
[(7)如何选择 ϵ 和 MinPts](#(7)如何选择 ϵ 和 MinPts)
一、聚类简介
1、聚类的原理与方法
聚类是非监督学习中的一项核心任务,目的是将数据分成不同的簇,每个簇内部的样本相似度较高,簇间的样本差异较大。常见的聚类方法有:
- 基于中心的聚类:通过计算每个簇的中心点(例如K-means聚类),然后将样本分配到最近的中心点。这种方法假设数据簇呈现出某种形式的"圆形"结构,适合处理分布比较均匀的数据。
- 基于密度的聚类:通过识别数据点密度的区域来进行聚类,DBSCAN是其中的代表方法。密度聚类的优点在于可以识别形状较为复杂的簇,并且能够自动识别噪声点。
- 层次聚类:通过递归地合并或分割数据点,形成一棵树形结构来表示样本的聚类层级。层次聚类能提供不同粒度的聚类结果,便于从多个维度观察数据的结构。
聚类方法的选择要根据数据的特点,例如数据的分布、形状以及噪声的多少来决定。不同的聚类方法有不同的假设和应用场景,基于中心的聚类 适用于簇形结构明显的数据,基于密度的聚类则更适合处理噪声较多或者簇形不规则的数据。
2、聚类的不同类型
聚类不仅在数学方法上有所区别,还可以在簇的性质上进行分类:
- 独占与非独占聚类:独占聚类要求每个数据点只能属于一个簇,而非独占聚类允许数据点同时属于多个簇(例如模糊聚类)。
- 模糊聚类与非模糊聚类:模糊聚类允许数据点有多个隶属度,即一个点可以部分属于多个簇。与此相对,非模糊聚类要求数据点只能完全属于一个簇。
- 层次聚类:这种方法将数据点分成层级结构,可以生成不同的聚类结果,这对于探索数据的层次结构非常有用。
3、降维的需求与技术
- 降维 :在面对高维数据时,降维是一项重要技术。降维能够减少计算复杂度,提升算法效率,并且有助于数据的可视化。常见的降维方法包括主成分分析(PCA)和t-SNE,它们通过投影将高维数据映射到低维空间,从而揭示数据的内在结构。
- 降维的目的:降维不仅仅是压缩数据维度,它还帮助我们提取出数据中的主要特征,去除冗余信息,减少噪声,并使得数据可视化变得更加容易。特别是在聚类任务中,降维常用于数据预处理,以便更好地理解数据结构和关系。
4、聚类与降维的应用
聚类和降维在多种应用场景中都有广泛的应用:
- 图像分割:聚类可以用于将图像中的不同区域分割开来,例如在图像分割任务中,通过聚类分析图像的像素或特征,将图像划分为多个区域,从而为后续的图像处理提供基础。
- 基因数据分析:在生物学中,聚类被用来分析基因序列或表达数据,通过聚类方法可以发现基因之间的关系,进而推测其功能或相关性。
- 文本分析与推荐系统:聚类可以用于根据用户的购买历史或浏览记录,将用户或商品分为不同的类别,从而为推荐系统提供决策支持。
5、如何进行聚类分析
- 距离度量:聚类分析的第一步是如何定义样本之间的"距离"或"相似度"。常见的距离度量方法包括欧氏距离、曼哈顿距离等。
- 选择聚类方法:根据数据的特点选择合适的聚类方法。如果数据之间的关系比较线性,基于中心的聚类方法可能更合适;如果数据分布较为复杂,基于密度的聚类可能更有效。
- 评估聚类结果:聚类结果的评估非常重要,通常通过轮廓系数、聚类的稳定性等指标来评估聚类质量。
6、总结
聚类和降维是机器学习中处理复杂数据的两个重要工具。聚类通过无监督学习将数据分组,揭示数据的内在结构,而降维则通过减少数据的维度来提高计算效率和可视化效果。聚类的种类和应用方法丰富,适用于多种领域,如图像处理、基因分析、文本分析等。通过合理选择聚类方法并结合降维技术,可以更好地理解和利用数据中的模式和结构。
二、聚类算法
1、K均值聚类
K均值聚类(K-means Clustering)是一种常用的无监督学习算法,广泛应用于数据分组和聚类分析中。
(1)K均值聚类的基本假设与目标
- 基本假设 :
- K均值聚类假设数据点可以通过聚类来分组,每个簇内的数据点是相似的,而不同簇之间的数据点是不同的。
- 数据的相似度通常使用欧氏距离度量,即数据点之间的距离越小,它们越可能属于同一簇。
- 每个簇都有一个质心(centroid),作为该簇的代表。质心是簇中所有数据点的均值或中位数。
- 目标 :
- 最小化簇内样本的平方误差(SSE) :目标是通过迭代调整簇的质心,找到一个使得簇内样本尽量紧密,簇间尽量分开的质心位置。数学表达式为:
其中,Ci 是簇 iii,xj 是簇中的数据点,μi 是簇的质心。
- 最小化簇内样本的平方误差(SSE) :目标是通过迭代调整簇的质心,找到一个使得簇内样本尽量紧密,簇间尽量分开的质心位置。数学表达式为:
(2)K均值聚类的优化方式
K均值聚类通过迭代优化来收敛,常用的优化方法包括:
- 更新簇质心:每次根据当前簇中的所有点,计算簇内点的均值,作为新的质心。
- 重新分配数据点:在每轮迭代后,根据数据点到各个质心的距离,将数据点分配到距离最近的簇。
为了加速优化过程,可以考虑以下方法:
- 多次随机初始化:通过不同的初始质心进行多次聚类,选择结果最优的一次。
- K-means++:通过引入启发式方法,在选择初始质心时,确保质心之间尽可能远离,从而提高聚类质量并减少局部最优。
(3)K均值聚类的收敛性
K均值聚类算法具有收敛性,即算法在经过一定次数的迭代后,会最终收敛到一个局部最优解。每次迭代都至少会减少聚类目标函数的值(即簇内误差的平方和)。理论上,K均值算法会一直迭代,直到质心的位置不再变化或变化非常小。
- 收敛证明:K均值的目标函数(SSE)是一个非增加的函数,意味着每次迭代都会导致目标函数的值减小或不变。因此,K均值算法总能在有限次迭代内收敛。
(4)K值的选择
选择合适的K值(簇的数量)是K均值聚类中最具挑战性的问题之一。常见的选择K值的方法有:
- 肘部法则(Elbow Method):绘制不同K值下的SSE曲线,通常会发现SSE在某个K值后出现急剧下降(即"肘部"位置),此时的K值通常是合适的聚类数。
- 轮廓系数(Silhouette Score):轮廓系数衡量每个点与自身簇内的相似度以及与最近簇的相似度。通过计算不同K值下的轮廓系数,选择最优的K。
- Gap统计量:通过对比真实数据与随机数据的聚类性能差异,帮助确定最优K值。
(5)K均值的初始化
K均值的初始化过程对最终结果的质量有较大影响。常见的初始化方法包括:
- 随机初始化:随机选择K个数据点作为初始质心,这种方法简单但容易陷入局部最优。
- K-means++:K-means++通过选择距离已经选择的质心尽可能远的点作为新的质心,能够有效避免K均值收敛到局部最优解,提高算法的稳定性和聚类质量。
(6)预处理和后处理
- 预处理 :
- 特征缩放:K均值聚类对特征的尺度敏感,因此在进行K均值聚类之前,通常需要对数据进行标准化(例如Z-score标准化)或归一化。
- 缺失值处理:在进行K均值聚类之前,需要处理数据中的缺失值,可以通过填补缺失值或删除含缺失值的数据点来进行处理。
- 后处理 :
- 簇标签调整:K均值聚类分配给每个数据点的标签有时可能并不直接对应于真实类别标签,因此可以对聚类结果进行分析和调整,以确保簇标签符合实际应用需求。
(7)K均值的局限性
K均值聚类也存在一些局限性:
- 对初始值敏感:随机初始化可能导致K均值聚类陷入局部最优解,影响最终结果的质量。
- 需要预设K值:K均值聚类需要提前指定簇的数量(K),在某些情况下很难确定。
- 对离群点敏感:K均值对离群点非常敏感,因为离群点会影响簇质心的计算,导致聚类结果的偏差。
- 只能处理凸形簇:K均值假设数据簇是凸形的,因此对于形状复杂的簇(例如长条形簇),K均值的效果不佳。
(8)K均值的核函数扩展
为了克服K均值对数据形状的假设,提出了核K均值聚类(Kernel K-means)算法。核K均值聚类通过使用核函数(例如高斯核、RBF核)将数据映射到高维空间,在高维空间中进行聚类,从而能够处理非凸形的簇。
- 核心思想:通过核函数将数据映射到高维空间,使得在原空间中非线性分布的簇在高维空间中变得线性可分,从而提高聚类效果。
(9)K均值的优缺点
- 优点 :
- 简单易懂:K均值聚类算法直观且易于实现,计算效率较高。
- 可扩展性强:能够处理较大规模的数据集,适用于大多数常见的数据类型。
- 收敛性好:K均值聚类能够快速收敛到局部最优解,适用于需要快速得到结果的应用场景。
- 缺点 :
- 对K值敏感:需要提前指定簇的数量(K),且不同K值的结果差异较大。
- 对噪声和离群点敏感:离群点会显著影响质心的计算,导致聚类结果不准确。
- 只能处理球形簇:K均值聚类假设簇是凸形的,难以处理形状不规则的簇。
- 收敛到局部最优:由于K均值聚类使用随机初始化,它容易陷入局部最优解而非全局最优。
(10)总结
K均值聚类是一种有效且广泛应用的聚类算法,适用于大多数常见的数据集,特别是当簇具有较为规则的形状时。尽管K均值聚类存在一些局限性,但通过合适的初始化方法(如K-means++)以及对K值的合理选择和评估,可以显著提高其聚类效果。同时,核K均值的扩展为其在更复杂数据集上的应用提供了更多的可能性。
2、高斯混合模型和EM算法
高斯混合模型(Gaussian Mixture Model, GMM)和EM(Expectation-Maximization)算法是聚类和概率模型中重要的技术。它们广泛应用于数据分析、模式识别等领域,尤其在聚类任务中有着重要作用。
(1)高斯混合模型(GMM)概述
高斯混合模型是一种概率模型,假设数据点是从多个高斯分布中生成的。每个高斯分布代表数据的一个簇或子群体,数据的生成过程可以看作是从这些高斯分布中进行加权抽样。
- 定义 :高斯混合模型通过对多个高斯分布的加权求和来表示数据的整体分布,具体公式为:
- 其中:
- p(x) 是数据点 x 的概率密度函数。
- K 是高斯分布的数量,表示混合成分的个数。
是每个高斯分布的权重,满足
,且
。
是第 k 个高斯分布的概率密度函数,其中
是均值,
是协方差矩阵。
模型假设:
- 数据集中的每个数据点来自于某一个高斯分布,但我们并不知道具体是哪个。
- 每个高斯分布代表一个簇或群体,簇之间的差异体现在它们的均值
和协方差矩阵
上。
目标:
- 给定数据集
,通过学习高斯混合模型的参数
,使得模型能够有效地拟合数据分布。
(2)EM算法概述
EM算法是一种迭代优化算法,主要用于估计含有隐变量的概率模型的最大似然估计。GMM就是一个典型的含有隐变量(即每个数据点属于哪个高斯分布)的模型。EM算法由两个步骤组成:
- E步(期望步):根据当前模型参数,计算每个数据点属于每个高斯成分的后验概率(也称为责任度)。
- M步(最大化步):根据E步计算得到的责任度,更新模型的参数,以最大化数据的似然函数。
EM算法的目标:最大化数据的对数似然函数。
其中 是我们要估计的参数。
(3)EM算法推导过程
E步(期望步)
在E步中,给定当前的参数估计值 ,我们计算每个数据点
属于每个高斯成分 k 的后验概率(即责任度),即计算:
其中 表示数据点
属于第 k 个高斯成分的责任度。
M步(最大化步)
在M步中,我们使用E步计算的责任度 来更新模型参数
、
、
。
-
更新权重:
这是通过对每个数据点所属的责任度进行加权平均,计算第 k 个高斯分布的权重。
-
更新均值:
均值是根据每个数据点的责任度加权求和来更新的。
-
更新协方差矩阵:
协方差矩阵是每个数据点的加权偏差的平方和,权重为责任度。
(4)EM算法的收敛性
EM算法通常会在有限次迭代后收敛。每次迭代都会增加对数似然函数 的值,直到其收敛到一个局部最优解。EM算法不一定收敛到全局最优解,但能够找到一个局部最优解。由于GMM的对数似然函数是一个凸函数,EM算法每次迭代都会向最大化方向移动,因此能够保证收敛。
迭代过程示例:

(5)高斯混合模型的优缺点
优点:
- 灵活性强:GMM能够捕捉数据中存在的复杂结构,比K均值聚类更加灵活,能够处理不同形状和大小的簇。
- 软聚类:每个数据点不再是硬性划分到某个簇中,而是根据后验概率进行软分配,这样可以处理边界模糊的情况。
- 能够处理不同的协方差结构:每个簇有自己的均值和协方差矩阵,能够处理不规则形状的簇。
缺点:
- 对初始化敏感:虽然EM算法通常会收敛,但它可能会收敛到局部最优解,尤其是在初始参数选择不当时。
- 需要预设K值:需要事先指定混合成分的数量 K,而且选择合适的 K 并不容易。
- 计算开销较大:相比于K均值,GMM的计算复杂度较高,尤其是在高维数据上,计算和内存开销较大。
(6)GMM的应用
GMM在许多领域得到了广泛应用,包括但不限于:
- 图像分割:通过高斯混合模型对图像的像素进行建模,进而实现图像的聚类和分割。
- 语音识别:通过GMM对语音信号进行建模,进而在识别任务中发挥作用。
- 异常检测:通过拟合数据的高斯混合模型,可以识别那些不符合模型的异常数据点。
(7)GMM和K均值关系
7.1联系
GMM与K均值有很密切的关系,尤其是在M步的推导过程中。K均值可以被看作是GMM的一种特殊情况,其中每个簇的协方差矩阵是固定的且是单位矩阵(即簇内数据点的分布是球形的),同时每个数据点被硬性划分到某个簇中。这意味着:
- GMM的M步:除了计算均值之外,还需要计算协方差矩阵,而K均值模型只考虑均值的计算。GMM提供了软分配(每个数据点具有对每个簇的责任度),而K均值只进行硬划分(每个数据点完全属于一个簇)。
- K均值和GMM的区别 :当所有的
相等,且每个簇的协方差矩阵为
时(即每个簇的协方差矩阵为常数,且是单位矩阵),K均值与GMM是相同的。此时GMM的高斯分布变成了K均值中的均值加上欧氏距离的度量。
7.2差别
K均值和GMM的区别可以从以下几个方面进行详细分析:
a. 目标函数的不同
-
K均值:
- 目标是最小化样本点与簇中心的平方距离和,即:
其中,
是数据点
是否属于簇 k 的指示变量,只有在数据点属于某个簇时,
,其他情况为0。
- K均值假设数据属于每个簇的概率相等(硬聚类),并且簇的形状为球形,即协方差矩阵是单位矩阵。
- 目标是最小化样本点与簇中心的平方距离和,即:
-
高斯混合模型(GMM):
- 目标是最小化负对数似然,即最大化数据的概率:
其中,
是每个高斯分布的权重,
是数据点 xi 属于第 k 个高斯分布的概率密度函数,
是高斯分布的协方差矩阵。
- GMM假设每个簇的形状可以是任意的,通常为椭圆形或其他更复杂的形状,可以更好地拟合不规则形状的簇。
- 目标是最小化负对数似然,即最大化数据的概率:
b. 聚类方式:硬聚类 vs 软聚类
- K均值 :
- 使用硬聚类方式:每个数据点只能属于一个簇,即每个数据点与某个簇的关系是确定的。
- 高斯混合模型(GMM) :
- 使用软聚类方式:每个数据点属于每个簇的概率是一个浮动值(责任度)。这意味着每个数据点可以部分地属于多个簇,适用于簇之间界限模糊的情况。
c. 模型假设
- K均值 :
- 假设每个簇的分布是球形的,且各簇的大小和形状相似。
- K均值只考虑均值和欧氏距离,忽略了簇的形状和数据点之间的协方差。
- 高斯混合模型(GMM) :
- 假设每个簇的分布是高斯分布,且簇之间可以具有不同的均值、协方差矩阵和权重。
- GMM能够处理更复杂的数据分布,能够拟合任意形状的簇,特别是在簇之间存在复杂关系时,GMM表现更为出色。
d. 计算复杂度
- K均值 :
- 相对较简单,计算量较小。每次更新质心时只需计算簇内所有点的均值,更新速度较快。
- 高斯混合模型(GMM) :
- 计算量较大,因为每次更新都需要计算责任度,并且需要通过最大似然估计更新均值和协方差矩阵,计算复杂度较高。
(8)总结
高斯混合模型(GMM)是一种强大的概率模型,可以通过EM算法进行参数估计。通过引入多个高斯成分,GMM能够捕捉复杂的簇形结构,适用于更复杂的聚类任务。EM算法通过交替进行E步和M步,逐步更新参数,达到最大化似然的目标。尽管GMM具有较高的灵活性和优越性,但也存在对初始化的敏感性、计算复杂度高等缺点。
3、层次聚类
层次聚类是一种广泛应用的聚类方法,旨在通过递归地合并或拆分数据集中的簇来形成树状结构(树形图或树状图)。它不需要事先指定簇的数量,能够提供层次化的聚类结果,可以适应不同的数据集和需求。
(1)层次聚类介绍
层次聚类是一种基于距离或相似度度量的无监督学习算法,它通过建立一个分层的聚类树来表示数据的聚类过程。层次聚类生成的树状结构被称为树状图(Dendrogram),树的每个节点代表一个簇,叶子节点代表数据集中的单个数据点。
层次聚类根据簇的合并或分裂方式可以分为两类:
-
凝聚式(Agglomerative):
- 这种方法是最常用的层次聚类方式。它的基本思想是从单个数据点开始,首先将每个数据点视为一个独立的簇,然后根据簇间的相似度逐步合并簇,直到所有点都合并成一个簇为止。
- 过程是自底向上的:从每个数据点开始合并,逐步构建起树状图。
-
分裂式(Divisive):
- 这种方法的思想与凝聚式相反,从整体数据集开始,将整个数据集视为一个簇,然后根据某种准则逐步将数据拆分成子簇,直到满足停止条件。
- 过程是自顶向下的:从一个簇开始,逐步将簇分割成多个更小的簇,直到最终达到想要的层次。
(2)层次聚类的优点
层次聚类具有多个优点,特别适用于需要查看数据点之间层次结构的情况:
- 无需事先指定簇的数量:与K均值不同,层次聚类不需要预设簇的个数,可以根据树状图的切割方式灵活选择聚类数目。
- 层次结构清晰:层次聚类能够提供一个树形结构,展示不同簇之间的关系,适用于分析数据的层次性特征。
- 适用于不同形状的簇:层次聚类不要求簇为球形,能够处理各种复杂形状的簇。
- 容易解释:树状图直观易懂,能帮助我们理解数据的聚类结构和聚类层次。
(3)层次聚类算法(凝聚式)
凝聚式层次聚类的基本步骤如下:
- 初始化:每个数据点作为一个独立的簇。
- 计算簇间相似性:使用某种距离度量(如欧氏距离、曼哈顿距离、皮尔逊相关系数等)计算簇之间的相似性。
- 合并最相似的簇:选择相似度最小的两个簇进行合并,形成一个新的簇。
- 重复步骤2和步骤3:直到所有数据点都合并为一个簇,或者根据预定的停止条件(如簇的数量)停止。
- 生成树状图:每次合并簇时,在树状图上建立一个节点,记录合并的簇信息。
(4)凝聚式聚类如何定义簇间相似性
在凝聚式层次聚类中,簇间相似性的定义取决于选择的合并准则(链法)。通常,簇间的相似性可以通过以下几种方式定义:
-
单链法(Single Linkage) :簇间的相似性定义为簇间所有点对的最小距离,即簇 C1 和 C2 的相似性是:
其中 d(x,y) 是数据点 x 和 y 之间的距离。该方法倾向于形成串状的簇。
-
完全链法(Complete Linkage) :簇间的相似性定义为簇间所有点对的最大距离,即簇 C1 和 C2 的相似性是:
这种方法倾向于形成较为紧凑的簇。
-
平均链法(Average Linkage) :簇间的相似性是簇内所有点对的平均距离,即:
这种方法综合考虑了簇内所有点之间的距离。
-
Ward方法 :使用最小化簇内方差的方法来合并簇,即每次合并使得簇内数据的方差最小化,适用于使簇尽可能均匀的情况。
(5)凝聚式层次聚类的簇数目确定
凝聚式层次聚类的簇数目通常不是预先确定的,而是通过树状图的切割来实现。具体方法包括:
- 根据距离阈值切割:在树状图中,选择一个距离阈值,当簇间的距离大于这个阈值时,停止合并,得到的簇数目为最终的聚类数。
- 切割树状图:在树状图上选择合适的高度进行切割,这样可以控制最终的簇数。选择合适的高度通常需要考虑数据的特征和任务的需求。
- 使用外部标准评估:如果有标签数据,可以根据聚类的准确性或者其他评估标准(如轮廓系数)来选择最佳的簇数。
(6)层次聚类的限制
尽管层次聚类具有许多优点,但也存在一些限制:
- 计算复杂度高 :特别是在数据量较大的情况下,层次聚类的计算复杂度较高,因为每次合并都需要计算簇间的相似度,时间复杂度通常为
。
- 对噪声和离群点敏感:由于层次聚类是逐步合并或拆分簇,因此在数据中存在噪声或离群点时,可能会影响最终的聚类效果。
- 无法处理大规模数据集:对于非常大的数据集,层次聚类的计算和存储开销较大,不太适合大数据应用。
- 选择合适的簇数较困难:虽然树状图提供了层次结构,但如何选择合适的簇数仍然是一个挑战。
(7)总结
层次聚类通过递归的方式生成树状图,可以提供清晰的层次结构,适用于需要观察数据间层次关系的任务。其凝聚式方法广泛应用于多种领域,但在处理大规模数据集时面临较高的计算成本。根据数据的特性,选择合适的距离度量和簇间相似性计算方法,以及根据任务需求合理选择簇数,都是使用层次聚类时需要重点考虑的因素。
4、基于密度的聚类------DBSCAN
基于密度的聚类方法 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个非常重要且常用的聚类算法。DBSCAN算法的关键特性是:它基于数据点的密度来定义簇,而不是依赖于簇的数量或者簇的形状。通过对噪声点和密度的有效处理,DBSCAN在许多聚类任务中表现出色。以下是对DBSCAN聚类算法的详细分析,涵盖了你提供的十张图片内容,并做了综合梳理:
(1)DBSCAN算法简介
DBSCAN是一个基于密度的空间聚类算法,旨在发现大规模空间数据库中的簇,能够有效处理噪声点。其核心概念是密度,利用密度连接的相似数据点来定义簇。DBSCAN不需要预先设定簇的个数,并且能发现任意形状的簇。
- 密度定义:DBSCAN通过设置半径 ϵ(epsilon)和最小点数MinPts,根据数据点周围的邻居数量来决定是否将数据点划归某一簇。

(2)DBSCAN的优势与优点
- 无需指定簇数:与K均值不同,DBSCAN不需要事先指定簇的数量。它能自动根据数据的密度分布来发现簇。
- 能够发现任意形状的簇:DBSCAN不要求簇的形状是球形,因此可以处理复杂形状的簇。
- 具有一定的抗噪声能力:能够有效识别并处理离群点(噪声点)。在下图中,噪声点被标记为红色。
(3)核心概念:核心点、边界点与噪声点
- 核心点(Core point):一个点是核心点,如果在它的 ϵ 邻域内包含至少 MinPts 个点。
- 边界点(Border point):边界点是指邻域内有少于 MinPts 个点,但是它位于某个核心点的 ϵ 邻域内。
- 噪声点(Noise point):如果一个点既不是核心点,也不在任何核心点的邻域内,则它是噪声点。

(4)密度可达性和密度相连性
- 密度可达性:如果点 p 是核心点,且点 q 可以通过连续的核心点从 p 到达,那么点 q 由点 p 密度可达,意味着 p 和 q 属于同一簇。
- 密度相连性:如果点 p 和点 q 之间存在点 o (从 o 的密度可达性到达 p 和 q ),并且 p 和 q 都属于同一个簇,便称为密度相连。
(5)DBSCAN的工作原理
- 初始化阶段:DBSCAN首先初始化一个核心点集合。
- 选择一个未访问点:对于每个数据点,检查其邻域内是否包含足够多的点(大于等于MinPts\text{MinPts}MinPts)。如果包含,则将其标记为核心点并将其加入簇中。
- 扩展簇:如果一个点是核心点,则通过密度可达性扩展簇,即将邻域内的所有点加入簇。
- 处理边界点:边界点属于某个核心点的邻域,但不能形成自己的簇。DBSCAN会将其包含在最近的簇中。
- 噪声点:不能属于任何簇的点被标记为噪声点(在上图中通常用红色表示)。
(6)DBSCAN的簇数目确定
DBSCAN不需要预设簇数,而是自动生成簇。如何选择合适的 ϵ 和 MinPts 是成功使用DBSCAN的关键。选择方法通常有:
- ϵ 的选择:通过图形化分析,绘制每个点到其第 k 近邻的距离。通过"肘部法则"寻找距离变化明显的点,这个点的距离阈值可以作为 ϵ 值。
- MinPts 的选择:通常选择 MinPts ≥ 4 ,这有助于识别数据中更有意义的簇。选择过小的 MinPts 会导致簇的数量过多,选择过大的 MinPts 则会导致许多点成为噪声。

(7)如何选择 ϵ 和 MinPts
- 直观方法:观察一个簇内的点,它们与第 k 个最近邻的距离大致相同。如果噪声点到核心点的距离较远,则可以通过绘制每个点到其第 k 最近邻的距离来选择合适的 ϵ 。
(8)DBSCAN算法流程
- 初始化核心点集合:将所有核心点添加到一个集合中。
- 确定核心点的邻域:检查每个数据点的邻域内是否包含足够多的点,如果包含,则标记为核心点。
- 扩展核心点簇:将核心点及其邻域内的所有点加入簇中,递归地扩展簇。
- 处理所有点:对于每个点,检查它是否已被访问,并更新簇结构。
(9)DBSCAN在实际中的应用
- 点类型分类:DBSCAN能够将数据集中的点划分为核心点、边界点和噪声点,并能够清晰地区分不同类型的数据点。
- 适用范围:DBSCAN在处理具有不同形状的簇时表现出色,尤其适用于不规则形状的簇,如复杂数据的聚类分析。
(10)DBSCAN的局限性
- 参数选择困难:DBSCAN的性能高度依赖于 ϵ 和 MinPts 的选择,特别是当数据分布不均匀时,选择合适的 ϵ 可能非常困难。
- 对密度变化敏感 :在具有不同密度簇的场景中,DBSCAN可能无法很好地处理。为了解决这个问题,衍生出了OPTICS(Ordering Points to Identify the Clustering Structure)算法,它能够更好地处理DBSCAN的超参数敏感问题。
- 表现不好的情况:
(11)总结
DBSCAN是一种基于密度的聚类方法,能够发现任意形状的簇,且不需要预设簇的数量。它能够有效识别噪声点,并处理复杂数据集。然而,DBSCAN对参数的选择( ϵ 和 MinPts )较为敏感,特别是在数据密度变化较大的情况下。通过合理选择参数,并结合图形化方法,可以有效提升DBSCAN的聚类效果。
5、基于图的聚类
(1)图的定义与聚类的基本框架
图可以表示为 G(V,E),其中:
- V 是节点集合,表示数据点,包含
;
- E 是边集合,表示节点之间的连接。边
连接节点
和
,其权重
反映了两个节点之间的相似度。
在图的聚类中,我们希望将图分成几个子图,使得子图内的节点联系紧密,子图之间的联系较弱。通常,权重越大的边表示两个节点之间越相似,因此在聚类时,我们会希望把相似的节点放到同一个簇中。
(2)边的构建与权重的计算
边的构建有两种常见的方法:
-
ϵ -邻域(ϵ -neighborhood): 如果两个节点
和
之间的距离小于 ϵ (即
,其中
和
是节点的特征),则它们之间存在一条边,且这条边的权重可以通过高斯函数来计算:
其中 σ 是一个控制权重衰减的参数。
-
K近邻(K-nearest neighbors): 每个节点连接其K个最近邻的节点,这样保证每个节点只与其最近的 K 个节点有边连接。
(3)拉普拉斯矩阵的推导
图的拉普拉斯矩阵 L 是图结构的一个重要表示,它可以通过度矩阵 D 和邻接矩阵 W 推导出来。具体地,拉普拉斯矩阵定义为:
-
度矩阵 D: 是一个对角矩阵,其中第 i 个对角元素
表示节点
的度(即与其相连接的边的权重总和):
-
邻接矩阵 W: 其中的元素
表示节点
和
之间的边的权重。
(4)规范化拉普拉斯矩阵
规范化拉普拉斯矩阵是通过对拉普拉斯矩阵进行规范化处理得到的。常见的规范化方法有对称规范化和随机游走规范化:
-
对称规范化拉普拉斯矩阵
:
其中
是度矩阵的平方根的逆。该规范化方法消除了节点度数差异带来的影响。
-
随机游走规范化拉普拉斯矩阵
:
该方法常用于进行随机游走分析,它对节点的度差异进行规整化。
(5)切图的定义与最小切图
在图论中,切图(cut)是将图 G(V,E) 划分成不相交的 K 个子图,定义如下:
- 图 G(V,E) 被划分成 K 个子图,记为
,满足
且
。
对于任意两个子图 A 和 B ,切图的权重定义为:
这里 表示边
的权重,表示节点 i 和节点 j 之间的相似度。
最小切图是指在图中选择一个切割,使得其边的权重和最小。对于 K 个子图的划分,最小切图的目标是最小化:
其中, 表示子图
的补集。
最小切图的缺点包括:
- 切图权重与边的数目成正比,因此倾向于切割成较小且较孤立的子图。
(6)规范化切图
规范化切图的基本思想是通过对每个分割区的大小进行归一化,解决最小切割问题中的偏向性问题。定义子集 A 的体积 为:
其中 是节点
的度,即与节点
连接的边的权重总和。
规范化切图的目标函数定义为:
这里, 对每个子图的大小进行了归一化,避免了因节点度差异带来的影响。
(7)优化目标的转化过程
- 目标
为了避免因为子图大小不同而导致的偏差,优化目标函数需要引入规范化,确保每个子图的大小对切割代价的影响是公平的。最终的规范化目标函数是:
该目标函数仍然是我们希望最小化的目标。接下来的分析将集中在如何表示这个目标函数,并通过矩阵操作来优化它。
- 引入指示矩阵
为了计算每个子图的切割代价和体积,我们引入了 指示矩阵 Z。对于每个节点 ,我们定义一个隐含的指示量
:
其中, 是一个 K-维向量。构造矩阵 Z 来表示所有节点在各个子图中的隶属关系:
其中,矩阵的每一行表示一个节点属于各个子图的指示。
- 计算体积矩阵
通过指示矩阵 Z,可以计算出每个子图的体积矩阵 P。体积矩阵 P 表示每个子图中节点的度的总和。矩阵 P 的表示为:
其中 D 是度矩阵,表示图中每个节点的度。每个元素 代表子图
的体积。
- 切割代价的表示
切割代价矩阵 Q 是计算两个子图之间切割代价的重要工具。我们通过计算边的权重来表示切割代价,矩阵 Q 可以表示为:
其中, W 是图的邻接矩阵,表示节点间的边的权重。通过对该矩阵的优化,我们可以得到图划分的最优结构。
- 规范化切割的优化
最终,我们的优化目标变为通过 Rayleigh 商 来最小化目标函数:
通过变换 ,(
)得到:
所以,优化问题可以转化为:
,
优化目标变为:
,
其中,L=D−W 是拉普拉斯矩阵。此时的优化问题变成了一个典型的特征值问题,解该问题可以得到最优的划分方案。
- 最终优化目标的表示
优化目标最终被表示为:
,
这就是通过矩阵操作优化图划分的最终目标。通过最小化该目标函数,我们可以得到图的最佳划分。
(8)特征值分解
-
目标函数 : min tr(
), 其中
-
解 :
的最小的 K 个特征值对应的特征向量
- K 个特征向量组成一个
维度的矩阵,即为 V .
- K 个特征向量组成一个
-
对矩阵 V 按行做规范化 ,即
(
)
-
重聚类 :指示向量
是一个二维变量,利用特征向量进行近似时,特征向量可取任意值,相当于对
的二维限制进行松弛,因此一般还需对
进行一次聚类(如 K-Means 聚类),
亦可被认为是
的另一种表示。
(9)Ncuts算法流程
Ncuts: 算法流程(对称的拉普拉斯矩阵)
- 根据输入的相似矩阵构建邻接 W 和度矩阵 D.
- 计算出拉普拉斯矩阵 L .
- 构建规范化的对称拉普拉斯矩阵:
- 计算
最小的
个特征值对应的特征向量
.
- 将
作为矩阵 V 的列,得到
维的特征矩阵 V,并将 V 每行规范化(模长为1).
- 对 V 中的每一行作为一个
维的样本,共 N 个样本作为输入进行聚类,聚类类别数为
.
- 得到聚类分区
.
亦被称为谱聚类 矩阵的谱: 矩阵的特征值。
根据规范化拉普拉斯矩阵的性质:
- 若
是
的特征值,
是对应的特征向量,
则是
的特征值,
是对应的特征向量。
实际应用中采用 ,其特征向量量直接是聚类指示向量
。
Ncuts: 算法流程(随机游走拉普拉斯矩阵)
- 根据输入的相似矩阵构建邻接矩阵 W 和度矩阵 D.
- 计算出拉普拉斯矩阵 L.
- 构建规范化的随机游走的拉普拉斯矩阵:
- 计算
最小的
个特征值对应的特征向量
.
- 将
作为矩阵 V 的列,得到
维的特征矩阵 V.
- 对 V 中的每一行作为一个
维的样本,共 N 个样本作为输入进行聚类,聚类类别数为
.
- 得到聚类分区
.
(10)Ncuts算法优缺点
优点:
- 可灵活地选择邻接矩阵
- 对稀疏数据的聚类效果很好
- 当聚类的类别较小时,谱聚类的效果很好
- 建立在谱图理论上,能在任意形状的样本空间上聚类,且收敛于全局最优解
缺点:
- 对相似图和聚类参数的选择非常敏感
- 适用于样本大小均匀的情况
三、聚类的性能评价指标
1、聚类性能评价概述
聚类算法的性能评价方法可分为两大类:外部评价法和内部评价法。每种方法的适用场景不同,评估指标也各有特色。
- 外部评价法 :这种方法需要一个参考模型,即一个真实的标签集合。它通过比较聚类结果与参考模型的匹配程度来评估聚类的质量。
- 内部评价法:这种方法不需要参考模型,而是通过聚类本身的结构特征,如类内密度、类间分离度等,来评估聚类效果。
此外,还有在没有参考模型时仅依赖内部评价法的情况,称为无参考模型。
外部评价法
外部评价法的核心是通过一个"参考模型"来衡量聚类的好坏。参考模型可以是真实的类别标签或者是已知的正确分组。在这种评价方法中,聚类的性能由与参考标签的一致性来决定。常见的外部评价法包括:Jaccard 系数(JC)、Fowlkes-Mallows 指数(FMI)、Rand 指数(RI)等。
内部评价法
内部评价法是通过聚类结果的本身特征来评估其质量。无需参考模型。主要通过衡量聚类的紧密度和分离度来评估聚类效果。常见的内部评价法包括:DB 指数(DBI)、Dunn 指数(DI)、Calinski-Harabasz 指数(CHI)、轮廓指数(SI)等。
2、外部评价法 (External Criterion)
外部评价法通过聚类结果与参考结果之间的匹配程度来评估聚类效果。在聚类过程中,我们常常需要与参考结果进行比对,以确认聚类是否合理。这些方法常见的包括:
参考模型的建立
- 参考模型 (Reference Model): 通过参考标签,标记数据集的真实类别(图2中展示了如何计算聚类结果与参考结果的匹配情况)。
- 聚类结果的标记使用λ和λ*表示,计算时比较聚类中样本点的分类与参考分类的吻合度(图2中的公式)。

常见的外部评价指标
-
Jaccard 系数 (JC):Jaccard 系数衡量的是两个集合的相似度,值越大表示聚类结果与真实类别标签的重合度越高。计算公式如下:
其中:
- a:正确地聚到同一类的数据对数。
- b:一个聚类中的样本正确地分类到另一个类。
- c:一个类内样本被错误地分类到另一个类。
-
Fowlkes and Mallows 指数 (FMI):FMI 结合了 precision 和 recall 的均值,衡量聚类的精度。公式为:
-
Rand 指数 (RI):通过比较聚类结果和参考结果的一致性,计算得出一个数值。公式如下:
其中,a和d分别表示一致分类的样本数,b和c表示不同分类的样本数。
3、内部评价法 (Internal Criterion)
大部分时候只有聚类结果,没有参考模型,只能用内部评价法评 估聚类的性能:
- 簇内相似度越高,聚类质量越好
- 簇间相似度越低,聚类质量越好
内部评价法是在没有参考标签的情况下,仅基于聚类结果的结构特征来进行评估。主要关注聚类结果的质量,如聚类内的紧密度、类间的分离度等。
聚类内相似度与聚类间距离
-
聚类内相似度(图7中展示了计算方法):通过计算每个聚类的平均距离、最大距离和半径来衡量类内紧密度。
- 平均距离 (avg(C_k)):衡量聚类内样本点的平均距离。
- 最大距离 (diam(C_k)):衡量聚类内样本点的最大距离。
- 半径 (diam(C_k)):衡量类内样本点的均方根距离。
-
聚类间距离:通常包括最小距离(类间最近样本的距离)和类心之间的距离(图9中的公式展示了这两者的计算方法)。
常见的内部评价指标
-
DB 指数 (DBI):DBI 衡量的是类内紧密度与类间分离度的比值。值越小,表示聚类的质量越好。
其中,
表示类
中样本的平均距离,
表示类
与类
之间的中心距离。
-
Dunn 指数 (DI):Dunn 指数通过最小类间距离和最大类内半径的比值来评估聚类效果。值越大,表示聚类质量越好。
-
Calinski-Harabasz 指数 (CHI):CHI 通过计算类内与类间散度的比值来评估聚类质量。公式如下:
其中,B 为类间散度矩阵,W 为类内散度矩阵。
-
轮廓指数 (SI):轮廓指数衡量的是每个样本点的类内与类间的平均距离差异。其计算公式为:
其中,s(i)s(i)s(i) 是样本点 i 的轮廓宽度,衡量类内距离与类间距离的相对大小。
轮廓宽度 (Silhouette Width) 的值在 [-1, 1] 范围内,值越大表示聚类效果越好(图8展示了SI的具体表现)。
四、聚类小结
- 聚类和应用高度相关
- 聚类很难评估,但实际应用中很有用
聚类方法
-
基于中心的模型:
- 如 K 均值聚类
-
基于层次性的模型:
- 如层次聚类(BIRCH、CURE、CHAMELEON、GRIN)
-
基于分布的模型:
- 基于数据点的产生分布确定模型,如高斯混合模型
-
基于密度的模型:
- 如 DBSCAN、OPTICS、DENCLUE、Mean-shift
-
基于图模型的聚类:
- 如谱聚类
-
基于网络的聚类:
- 如 STING、CLIQUE
-
基于模型的聚类:
- 如 SOM、基于神经网络的聚类
两个通用工具
- EM (Expectation Maximization)
- 图及其拉普拉斯矩阵