文章目录
鲁棒多视图谱聚类(Robust Multi-view Spectral Clustering, RMSC)是一种集成多视图信息并
增强聚类鲁棒性
的
高级聚类算法
。
其核心在于利用多视图数据的
互补性
,通过鲁棒性处理
减小噪声影响
,并采用谱理论来进行聚类。
下面详细解析RMSC的几个关键步骤,并涉及部分数学公式。
1. 数据预处理与相似度矩阵构建
对于每个视图 (v)(共有 (V) 个视图),首先进行数据预处理
,可能包括归一化、降维等。接着,基于每个视图构建相似度矩阵
S
(
v
)
S^{(v)}
S(v)
常用的相似度度量
包括欧几里得距离、余弦相似度
等,相似度矩阵元素
s
i
j
(
v
)
表示视图
v
中第
i
个样本与第
j
个样本的相似度。
s_{ij}^{(v)}表示视图 v 中第 i个样本与第 j 个样本的相似度。
sij(v)表示视图v中第i个样本与第j个样本的相似度。
2. 鲁棒低秩矩阵恢复
考虑到数据中的噪声和异常值
,RMSC通常会利用鲁棒PCA(RPCA)或其变体来提取
每个视图的低秩表示,
即估计一个低秩矩阵
L
(
v
)
和一个稀疏噪声矩阵
S
(
v
)
,使得
X
(
v
)
≈
L
(
v
)
+
S
(
v
)
。其中,
X
(
v
)
是原始数据矩阵。
即估计一个低秩矩阵 L^{(v)} 和一个稀疏噪声矩阵 S^{(v)},使得 X^{(v)} \approx L^{(v)} + S^{(v)}。其中,X^{(v)} 是原始数据矩阵。
即估计一个低秩矩阵L(v)和一个稀疏噪声矩阵S(v),使得X(v)≈L(v)+S(v)。其中,X(v)是原始数据矩阵。
这一过程可以通过优化问题表达,例如使用最小绝对值收缩和选择算子(LASSO)或核范数最小化等方法。
3. 融合视图信息
为了整合多个视图的信息,RMSC通常采用加权平均
、共正则化
或其它融合策略来构建一个综合的相似度矩阵 (S)。如果采用加权平均,形式上可以表示为:
S
=
∑
v
=
1
V
α
v
S
(
v
)
S = \sum_{v=1}^V \alpha_v S^{(v)}
S=v=1∑VαvS(v)
其中,
α
v
是视图
v
的权重,满足
∑
v
=
1
V
α
v
=
1
。
其中,\alpha_v是视图 v的权重,满足 \sum_{v=1}^V \alpha_v = 1。
其中,αv是视图v的权重,满足v=1∑Vαv=1。
4. 构建鲁棒转移矩阵
接下来,通过构建转移矩阵 (W) 来进一步提炼数据间的连接关系。
一个常见的做法是先计算出拉普拉斯矩阵 (L = D - W),其中 (D) 是度矩阵,
D
i
i
=
∑
j
W
i
j
D_{ii} = \sum_j W_{ij}
Dii=j∑Wij
为了增强鲁棒性,可以采用如下方式构造 (W):
W
=
(
D
+
γ
I
)
−
1
2
S
(
D
+
γ
I
)
−
1
2
W = (D + \gamma I)^{-\frac{1}{2}} S (D + \gamma I)^{-\frac{1}{2}}
W=(D+γI)−21S(D+γI)−21
其中,γ 是一个正则化项
,用于平滑处理,(I) 是单位矩阵。这样构造的 (W) 被称为对称归一化拉普拉斯矩阵。
5. 谱聚类
最后,利用谱聚类算法进行聚类。
首先,计算
W
的前
k
个最小非零特征值
λ
1
,
…
,
λ
k
及其对应的特征向量
u
1
,
…
,
u
k
。
首先,计算 W 的前 k 个最小非零特征值 \lambda_1, \ldots, \lambda_k 及其对应的特征向量 u_1, \ldots, u_k。
首先,计算W的前k个最小非零特征值λ1,…,λk及其对应的特征向量u1,…,uk。
这些特征向量构成了一个低维嵌入空间
,其中每个数据点由其对应的特征向量表示。之后,可以在该低维空间中应用 K-means 或其他聚类算法完成最终的聚类。
总结
RMSC通过上述步骤,不仅融合了多视图信息,还通过鲁棒处理提高了对噪声的容忍度,使得聚类结果更加可靠。尽管具体实现细节(如如何精确地进行鲁棒低秩矩阵恢复、如何优化权重分配等)可能根据实际情况有所调整,但上述框架概括了RMSC的基本思路和流程。
例子
假设我们有两个视图的数据 ( V i e w 1 和 V i e w 2 ),并且想要将这些数据聚类成两类。 假设我们有两个视图的数据(View_1和 View_2),并且想要将这些数据聚类成两类。 假设我们有两个视图的数据(View1和View2),并且想要将这些数据聚类成两类。
数据准备
设 (n) 个样本在每个视图中都有 (d) 维
的特征表示,因此
V
i
e
w
1
和
V
i
e
w
2
分别可以用矩阵
X
(
1
)
∈
R
n
×
d
和
X
(
2
)
∈
R
n
×
d
来表示。
View_1 和 View_2 分别可以用矩阵 X^{(1)} \in \mathbb{R}^{n \times d} 和 X^{(2)} \in \mathbb{R}^{n \times d} 来表示。
View1和View2分别可以用矩阵X(1)∈Rn×d和X(2)∈Rn×d来表示。
步骤1: 数据预处理及相似度矩阵构建
- 相似度矩阵:对于每个视图,我们使用
余弦相似度
来衡量样本间的相似度,构建相似度矩阵
S ( 1 ) 和 S ( 2 ) S^{(1)} 和 S^{(2)} S(1)和S(2)
若 x i ( v ) 和 x j ( v ) 分别是第 i 和第 j 个样本在视图 v 上的特征向量 若 x_i^{(v)} 和 x_j^{(v)} 分别是第 i 和第 j 个样本在视图 v上的特征向量 若xi(v)和xj(v)分别是第i和第j个样本在视图v上的特征向量
则它们的相似度为:
s i j ( v ) = x i ( v ) ⋅ x j ( v ) ∥ x i ( v ) ∥ ∥ x j ( v ) ∥ s_{ij}^{(v)} = \frac{x_i^{(v)} \cdot x_j^{(v)}}{\|x_i^{(v)}\|\|x_j^{(v)}\|} sij(v)=∥xi(v)∥∥xj(v)∥xi(v)⋅xj(v)
当然,为了具体展示步骤1中的数据预处理及相似度矩阵构建过程,我们可以设想一个非常简单的例子,其中包含两个视图的数据,每个视图有三个样本,每个样本有两个特征。我们简化处理,忽略数据的具体数值,直接展示相似度矩阵的构建过程。
示例数据
视图 1 ( V i e w 1 ) : 视图1(View_1): 视图1(View1):
- 样本 1 : [ a 1 , b 1 ] 样本1: [a_1, b_1] 样本1:[a1,b1]
- 样本 2 : [ a 2 , b 2 ] 样本2: [a_2, b_2] 样本2:[a2,b2]
- 样本 3 : [ a 3 , b 3 ] 样本3: [a_3, b_3] 样本3:[a3,b3]
视图 2 ( V i e w 2 ) : 视图2(View_2): 视图2(View2):
- 样本 1 : [ c 1 , d 1 ] 样本1: [c_1, d_1] 样本1:[c1,d1]
- 样本 2 : [ c 2 , d 2 ] 样本2: [c_2, d_2] 样本2:[c2,d2]
- 样本 3 : [ c 3 , d 3 ] 样本3: [c_3, d_3] 样本3:[c3,d3]
步骤1: 数据预处理及相似度矩阵构建
相似度矩阵构建
对于每个样本,我们计算其在各视图上的余弦相似度。
在视图1中:
- s 11 ( 1 ) = [ a 1 , b 1 ] ⋅ [ a 1 , b 1 ] ∥ [ a 1 , b 1 ] ∥ ∥ [ a 1 , b 1 ] ∥ = 1 s_{11}^{(1)} = \frac{[a_1, b_1] \cdot [a_1, b_1]}{\|[a_1, b_1]\|\|[a_1, b_1]\|} = 1 s11(1)=∥[a1,b1]∥∥[a1,b1]∥[a1,b1]⋅[a1,b1]=1
- s 12 ( 1 ) = [ a 1 , b 1 ] ⋅ [ a 2 , b 2 ] ∥ [ a 1 , b 1 ] ∥ ∥ [ a 2 , b 2 ] ∥ s_{12}^{(1)} = \frac{[a_1, b_1] \cdot [a_2, b_2]}{\|[a_1, b_1]\|\|[a_2, b_2]\|} s12(1)=∥[a1,b1]∥∥[a2,b2]∥[a1,b1]⋅[a2,b2]
- . . . ... ...
以此类推,计算出 V i e w 1 的相似度矩阵 S ( 1 ) 。 以此类推,计算出View_1 的相似度矩阵 S^{(1)}。 以此类推,计算出View1的相似度矩阵S(1)。
在视图2中:
同样地,对于每个样本对计算相似度,构建相似度矩阵 S ( 2 ) 同样地,对于每个样本对计算相似度,构建相似度矩阵 S^{(2)} 同样地,对于每个样本对计算相似度,构建相似度矩阵S(2)
具体相似度计算示例
假设具体数值如下(为了简化,我们直接使用字母表示数值):
视图1(View_1):
- 样本1: [1, 2]
- 样本2: [2, 3]
- 样本3: [3, 4]
视图2(View_2):
- 样本1: [2, 9]
- 样本2: [3, 6]
- 样本3: [4, 8]
计算相似度矩阵
- s 11 ( 1 ) = ( 1 ∗ 1 + 2 ∗ 2 ) 1 2 + 2 2 1 2 + 2 2 = 5 5 5 = 1 s_{11}^{(1)} = \frac{(1*1 + 2*2)}{\sqrt{1^2+2^2}\sqrt{1^2+2^2}} = \frac{5}{\sqrt{5}\sqrt{5}} = 1 s11(1)=12+2212+22(1∗1+2∗2)=555=1
- s 12 ( 1 ) = ( 1 ∗ 2 + 2 ∗ 3 ) 1 2 + 2 2 2 2 + 3 2 = 8 5 13 s_{12}^{(1)} = \frac{(1*2 + 2*3)}{\sqrt{1^2+2^2}\sqrt{2^2+3^2}} = \frac{8}{\sqrt{5}\sqrt{13}} s12(1)=12+2222+32(1∗2+2∗3)=5138
- s 13 ( 1 ) = ( 1 ∗ 3 + 2 ∗ 4 ) 1 2 + 2 2 3 2 + 4 2 = 11 5 25 = 11 5 5 s_{13}^{(1)} = \frac{(1*3 + 2*4)}{\sqrt{1^2+2^2}\sqrt{3^2+4^2}} = \frac{11}{\sqrt{5}\sqrt{25}} = \frac{11}{5\sqrt{5}} s13(1)=12+2232+42(1∗3+2∗4)=52511=5511
- s 22 ( 1 ) = 1 s_{22}^{(1)} = 1 s22(1)=1
- s 23 ( 1 ) = ( 2 ∗ 3 + 3 ∗ 4 ) 2 2 + 3 2 3 2 + 4 2 = 18 13 25 = 18 5 13 s_{23}^{(1)} = \frac{(2*3 + 3*4)}{\sqrt{2^2+3^2}\sqrt{3^2+4^2}} = \frac{18}{\sqrt{13}\sqrt{25}} = \frac{18}{5\sqrt{13}} s23(1)=22+3232+42(2∗3+3∗4)=132518=51318
- s 33 ( 1 ) = 1 s_{33}^{(1)} = 1 s33(1)=1
- 其他对角线外的元素通过对称性得到,例如 s 21 ( 1 ) = s 12 ( 1 ) 。 s_{21}^{(1)} = s_{12}^{(1)}。 s21(1)=s12(1)。
因此,简化后
S
(
1
)
可能表示为(未完全展开,只展示计算过程):
因此,简化后 S^{(1)} 可能表示为(未完全展开,只展示计算过程):
因此,简化后S(1)可能表示为(未完全展开,只展示计算过程):
S
(
1
)
=
(
1
8
5
13
11
5
5
⋅
1
⋅
⋅
⋅
1
)
S^{(1)} = \begin{pmatrix} 1 & \frac{8}{\sqrt{5}\sqrt{13}} & \frac{11}{5\sqrt{5}} \\ \cdot & 1 & \cdot \\ \cdot & \cdot & 1 \end{pmatrix}
S(1)=
1⋅⋅51381⋅5511⋅1
步骤2: 鲁棒低秩表示(简化处理)
在实际操作中,鲁棒低秩表示(如使用RPCA)较为复杂,这里简化处理,直接使用相似度矩阵。在更复杂的场景中,这一步需要通过优化问题解决,以分离出低秩分量和稀疏噪声分量。
步骤3: 视图融合
- 加权平均:假设两个视图同等重要,
权重
α
1
=
α
2
=
0.5
权重 \alpha_1 = \alpha_2 = 0.5
权重α1=α2=0.5则融合后的相似度矩阵 (S) 为:
S = 0.5 S ( 1 ) + 0.5 S ( 2 ) S = 0.5S^{(1)} + 0.5S^{(2)} S=0.5S(1)+0.5S(2)
步骤4: 构建拉普拉斯矩阵
- 对称归一化:构建对称
归一化拉普拉斯矩阵
(L),其中 (D) 是度矩阵
, D i i = ∑ j S i j D_{ii} = \sum_j S_{ij} Dii=j∑Sij
L = I − D − 1 2 S D − 1 2 L = I - D^{-\frac{1}{2}}SD^{-\frac{1}{2}} L=I−D−21SD−21
步骤5: 特征分解与聚类
- 特征分解:计算 (L) 的前 (k) 个最小非零特征值
λ
1
,
…
,
λ
k
\lambda_1, \ldots, \lambda_k
λ1,…,λk及其对应的特征向量
u
1
,
…
,
u
k
u_1, \ldots, u_k
u1,…,uk这里 (k) 是
预先设定的类别数
。 - 聚类:将特征向量
[
u
1
,
…
,
u
k
]
[u_1, \ldots, u_k]
[u1,…,uk]作为降维后的样本表示,然后使用 K-means 算法进行聚类。K-means 的目标是
最小化类内平方误差
,通过迭代
更新簇中心和分配样本到最近的簇中心来实现。