Fast Fuzzy Clustering Based on Anchor Graph
基于锚图的快速模糊聚类 FFCAG
模糊聚类十分流行;
- 大规模问题复杂度高,限制发挥
- 对噪声敏感
FFCAG算法将基于锚的相似度图构建和隶属度矩阵学习集成到一个统一的框架中,从而可以进一步利用锚的先验知识来提高聚类性能。
FFCAG首先使用无参数邻域分配策略构造基于锚的相似图。然后,设计了一个二次规划模型来学习锚的隶属度矩阵,这与传统的模糊聚类算法有很大的不同。更重要的是,在目标函数中引入了一个新的平衡正则化项,以产生更精确的聚类结果。
最后,我们采用一种保证收敛的交替优化算法来求解该方法。
聚类方法大致分为两类:硬聚类、模糊聚类(软聚类)
对于硬聚类,每个数据点仅属于一个聚类,概率为100%。而模糊聚类将每个数据点分配给所有聚类,其程度由成员隶属度指定。
模糊聚类由于其有效性和简单性越来越受到研究者的关注。然而,有两个主要问题限制了它在大规模问题中的应用:
-
模糊聚类的一个主要缺点是在处理大规模问题时耗时。为了加快聚类进程,投入了大量精力。
一个自然的选择是减小数据大小。另一种方法是寻找更好的初始化来减少迭代次数。
Shen等人设计了一种超平面划分方法,将整个数据集划分为不相交的子集,并使聚类算法精确地聚焦于一个局部区域,以提高效率和有效性。
-
模糊聚类的另一个缺点是它的敏感性。
大多数模糊聚类算法采用欧氏距离来分配隶属度,而噪声对聚类结果有很大影响。
一些研究人员用适当的正则化项扩展了FCM,以减少异常值的影响并提高其性能
然而,大多数模糊聚类方法要么只处理耗时问题,要么处理噪声敏感问题。如何在效率和聚类精度之间取得良好的平衡仍然是一个具有挑战性的问题。
受最近基于锚图技术研究的启发,针对大规模问题,我们提出了一种新的模糊聚类算法,称为基于锚图的快速模糊聚类(FFCAG)。
文章贡献:
- 提出的FFCAG将基于锚的相似图构建和隶属矩阵学习这两个重要组成部分集成到一个统一的框架中。可以进一步利用锚的先验知识以及数据点和锚之间的局部连通性来提高聚类性能,这对于在有限的计算和存储资源下实现大规模聚类至关重要。
- 设计了一个二次规划模型来学习锚的隶属度矩阵。据我们所知,FFCAG首次尝试用二次规划模型处理大规模问题的模糊聚类。此外,我们还开发了一种新的迭代优化算法来解决该问题。
- FFCAG引入了一个新的正则化项,以避免空聚类的出现,并使聚类结果更加平衡。这有利于更清晰的聚类结构和更好的聚类性能。
- 在合成和真实数据集上进行的大量实验表明,与最先进的算法相比,FFCAG不仅可以获得更好的性能,而且花费更少的时间
相关工作
模糊聚类……
基于锚图的模型……
BKHK生成锚点
方法
动机
……
基于锚的相似图构造
这里和聂飞平的CAN一样
邻居分配中获得的锚图B是稀疏的,并且只考虑每个数据点的前k个最近邻居锚
因此,当j>k+1时,bij被设置为0。它可以看作是数据点和锚之间的图的相似性矩阵。
成员矩阵学习
数据: X ∈ R n × d X \in R^{n \times d} X∈Rn×d 将其分为c类
F = f i j ∈ R n × c F={f_{ij} \in R^{n \times c}} F=fij∈Rn×c fij表示xi属于j类的隶属度
对于大规模数据,直接处理原始数据非常耗时,因此我们转而对锚进行聚类以加快聚类过程。
U
∈
R
m
×
c
U \in R^{m \times c}
U∈Rm×c 我们将B的元素bij视为数据点和锚的连接权重,将U的元素uij视为第i个锚属于第j个类的概率。锚的作用可以看作是连接数据点和类的桥梁,然后可以通过属于该类的所有锚的成员值的加权和来计算每个数据点fij的成员值
f
i
j
=
b
i
1
u
1
j
+
b
i
2
u
2
j
+
⋯
+
b
i
m
u
m
j
=
∑
l
=
1
m
b
i
l
u
l
j
f_{ij} = b_{i1}u_{1j}+b_{i2}u_{2j}+\dots+b_{im}u_{mj} = \sum_{l=1}^m b_{il}u_{lj}
fij=bi1u1j+bi2u2j+⋯+bimumj=l=1∑mbilulj
因此,数据点的隶属矩阵可以表示为F=BU 模糊聚类允许样本对每个聚类具有一定程度的隶属度,而不是仅对一个聚类具有隶属度
为了获得清晰的聚类分区,每个数据点的隶属度应该变化很大,导致所有元素的平方和也较大。因此,我们通过解决以下问题来获得聚类分配:
对于目标函数(12),通过使用基于锚的相似性图B来引入数据信息,该相似性图对数据点和锚之间的信息进行编码
然而,问题(12)有平凡解,即所有锚都被分组到一个集群中。为了解决这个问题,我们引入
问题(13)的最佳解决方案是,所有锚属于具有相同隶属度值1/c的每个簇。我们将(13)视为簇分配中的先验,以避免平凡解。
不正确的初始化可能导致算法收敛到局部最小值或错过一个小簇。为了解决这个问题,设计了一个额外的平衡约束,以使聚类结果更加平衡,定义为:
下面,我们将给出最小化问题(14)可以获得最平衡聚类结果的证明
……
根据上述定理,最小化(14)可以获得最平衡的聚类结果。因此,我们使用(14)作为平衡正则化项来改善聚类性能。
结合12-14,我们具有清晰聚类结构的新模型是解决:
总之,(18)中提出的总体模型包含三个术语。目标函数中的第一项提供了锚的基本聚类。第二项可被视为避免平凡解的聚类分配中的先验项。目标函数中的最后一项使聚类结果平衡,以防止将太小或太多的样本分组为一个聚类的歪斜聚类结果。
我们将问题(18)转化为轨迹最小化问题,并得出如下最优问题:
(18加了个负号 最大边最小)
问题(19)的目标函数可以重写为二次规划模型:
我们通过求解问题(20)获得锚的隶属度矩阵,然后获得原始数据点的隶属度。
优化
此部分采用ALM解决问题20
ALM算法通常用于求解方程约束优化问题,如下所示:
由于问题(20)很难直接计算,我们我们引入一个松弛变量V,并将问题(20)等价地转化为:
问题(21)的最优解可通过最小化以下增广拉格朗日函数获得
其中μ是惩罚参数,∑是拉格朗日乘子矩阵。当固定另一个变量时,我们针对一个变量优化问题(22),得到以下两个子问题
固定U更新V:问题(22)退化为
取问题(23)关于V的导数并将其设为零,我们可以得到
通过固定V更新U:问题(22)退化为
设Z=DV,问题(25)进一步等价于
应该注意,问题(26)对于每个i是独立的;因此,问题(26)可分为m个子问题
简化后,问题(27)可以改写为
问题(28)可以用闭式解来解决。问题(28)的拉格朗日函数表示为
式中,η为标度≥ 0是拉格朗日系数向量,两者都可以通过[41]中提出的迭代算法确定。根据Karush–Kuhn–Tucker(KKT)条件[42],最优解表示为
其中 ( x ) + = max ( x , 0 ) (x)_+=\max(x,0) (x)+=max(x,0)。基于上述分析,算法1中描述了解决问题(20)的详细过程。