system: [SYSTEM]

user: 2. 基于拉普拉斯约束的模糊c均值(FCML) 2.1. 目标函数设计 为了将数据点按一定的隶属度分组到每个聚类中，模糊c均值聚类的目标函数为： min ∑ i = 1 n ∑ j = 1 c ‖ x i − v j ‖ 2 2 u i j 2 st .   ∑ i = 1 c u i j = 1 (1) 其中X为原始样本数据集， V = { v 1 ， v 2 ， ⋯ ， v c } 为C个聚类中心， U = ( u i j ) c × n 为隶属度矩阵， ‖ ⋅ ‖ 为欧式距离。 通过稀疏化模糊c均值去除大量的冗余变量，只保留与相应变量最相关的解释变量，简化了模型的同时却保留了数据集中最重要的信息，能够有效地解决高维数据集建模中的诸多问题，因此，本文在模糊c均值聚类的基础上引入了拉普拉斯约束： min ∑ i = 1 n ∑ j = 1 c ‖ x i − v j ‖ 2 2 u i j 2 + 2 λ T r ( U T L S U ) 2) 式中n表示元素个数，c表示聚类个数，d为维数，S为数据X的相似矩阵， L S = D − S T + S 2 为S的Laplace矩阵， D = ∑ j = 1 n ( s i j + s j i ) 2 为对角矩阵。 2.2. 理论分析 当U和S固定时，更新V可得到 V j = ∑ i = 1 n u i j 2 x i ∑ i = 1 n u i j 2 (3) 当V和S固定时，更新U，由目标函数可知与U有关的函数为： min ∑ i = 1 c ∑ j = 1 n u i j 2 d i j 2 + 2 λ T r ( U L S U T ) (4) 在聚类算法中，有一个经典的等式： 2 T r ( U L S U T ) = ∑ i = 1 n ∑ j = 1 n ‖ u i − u j ‖ F 2 s i j (5) 关于(5)式是否成立，给出了如下证明： U T L S U = U T ( D − S ) U = U T D U − U T S U 2 T r ( U T L S U ) = ∑ i = 1 n u i 2 d i − ∑ i ， j = 1 n u i u j s i j = 1 2 ( ∑ i = 1 n u i 2 d i − 2 ∑ i ， j = 1 n u i u j s i j + ∑ i = 1 n u j 2 d j ) = ∑ i ， j = 1 n ‖ u i − u j ‖ F 2 s i j 因此，目标函数(4)可以改写成： J = min ∑ i = 1 n ∑ j = 1 c ‖ x i − v j ‖ 2 2 u i j 2 + λ ∑ i = 1 n ∑ j = 1 c ‖ u i − u j ‖ F 2 s i j + μ ∑ i = 1 n ∑ j = 1 c ‖ x i − x j ‖ 2 2 s i j 2 (6) 即(6)式为 J u = min ∑ i = 1 c ∑ j = 1 n u i j 2 d i j 2 + λ ∑ i = 1 n ∑ j = 1 n ‖ u i − u j ‖ F 2 s i j (7) 其中含 u i j 的项为： u i j 2 d i j 2 + 2 λ ∑ l ≠ j ‖ u l − u j ‖ F 2 s l j = u i j 2 d i j 2 + 2 λ ( ‖ u 1 − u j ‖ F 2 s 1 j + ⋯ + ‖ u j − 1 − u j ‖ F 2 s j − 1 ， j + ‖ u j + 1 − u j ‖ F 2 s j + 1 ， j + ⋯ + ‖ u n − u j ‖ F 2 s n j ) (8) 同理， ‖ u 1 − u j ‖ F 2 = ( u 11 − u 1 j ) 2 + ( u 21 − u 2 j ) 2 + ⋯ + ( u c 1 − u c j ) 2 ，其中只有 ( u i 1 − u i j ) 2 中 u i j ，所以(8)式中含 u i j 的值为： u i j 2 d i j 2 + 2 λ ∑ l ≠ j ( u i j − u i l ) 2 s l j (9) 对其进行拉格朗日求导可得 2 u i j d i j 2 + 4 λ ∑ l ≠ j u i j s l j − 4 λ ∑ l ≠ j u i l s l j − ξ j = 0 其中 ξ i 为Lagrange乘子，所以 u i j = 4 λ ∑ l ≠ j u i l s l j + ξ j 2 d i j 2 + 4 λ ∑ l ≠ j s l j (10) 由约束条件 ∑ k = 1 c u k j = 1 可知(10)式为 ∑ k = 1 c u k j = ∑ k = 1 c 4 λ ∑ l ≠ j u k l s l j + ξ j 2 d k j 2 + 4 λ ∑ l ≠ j s l j = 1 (11) 即 ξ j = 1 − ∑ k = 1 c 4 λ ∑ l ≠ j u k l s l j 2 d k j 2 + 4 λ ∑ l ≠ j s l j ∑ k = 1 c 1 2 d k j 2 + 4 λ ∑ l ≠ j s l j (12) 将(12)式代入(10)式中可得 u i j = 4 λ ∑ l ≠ j u i l s l j + 1 − ∑ k = 1 c 4 λ ∑ l ≠ j u k l s l j 2 d k j 2 + 4 λ ∑ l ≠ j s l j ∑ k = 1 c 1 2 d k j 2 + 4 λ ∑ l ≠ j s l j 2 d i j 2 + 4 λ ∑ l ≠ j s l j (13) 本文中，我们对迭代后(13)式中 u i j ≥ 0 是否成立进行了证明： 证明： u i j = 4 λ ∑ l ≠ j u i l s l j + 1 − ∑ k = 1 c 4 λ ∑ l ≠ j u k l s l j 2 d k j 2 + 4 λ ∑ l ≠ j s l j ∑ k = 1 c 1 2 d k j 2 + 4 λ ∑ l ≠ j s l j 2 d i j 2 + 4 λ ∑ l ≠ j s l j ≥ 0 由于 2 d i j 2 + 4 λ ∑ l ≠ j s l j ≥ 0 ， 2 d k j 2 + 4 λ ∑ l ≠ j s l j ≥ 0 ， 4 λ ∑ l ≠ j u i l s l j ≥ 0 ，因此在这里只需证： 1 − ∑ k = 1 c 4 λ ∑ l ≠ j u k l s l j 2 d k j 2 + 4 λ ∑ l ≠ j s l j ≥ 0 即 ∑ k = 1 c 4 λ ∑ l ≠ j u k l s l j 2 d k j 2 + 4 λ ∑ l ≠ j s l j ≤ 1 因为 4 λ ∑ l ≠ j u k l s l j 2 d k j 2 + 4 λ ∑ l ≠ j s l j ≤ 4 λ ∑ l ≠ j u k l s l j 4 λ ∑ l ≠ j s l j = ∑ l ≠ j u k l s l j ∑ l ≠ j s l j 可得 ∑ k = 1 c 4 λ ∑ l ≠ j u k l s l j 2 d k j 2 + 4 λ ∑ l ≠ j s l j ≤ ∑ k = 1 c ∑ l ≠ j u k l s l j ∑ l ≠ j s l j 因为 ∑ k = 1 c ∑ l ≠ j u k l s l j ∑ l ≠ j s l j = ∑ k = 1 c u k 1 s 1 j + u k 2 s 2 j + ⋯ + u k ， j − 1 s j − 1 ， j + u k ， j + 1 s j + 1 ， j + ⋯ + u k n s n j s 1 j + s 2 j + ⋯ + s j − 1 ， j + s j + 1 ， j + ⋯ + s n j = s 1 j ∑ k = 1 c u k 1 + s 2 j ∑ k = 1 c u k 2 + ⋯ + s j − 1 ， j ∑ k = 1 c u k ， j − 1 + s j + 1 ， j ∑ k = 1 c u k ， j + 1 + ⋯ + s n j ∑ k = 1 c u k n s 1 j + s 2 j + ⋯ + s j − 1 ， j + s j + 1 ， j + ⋯ + s n j (14) 由约束条件可得 ∑ k = 1 c u k 1 = 1 ， ⋯ ， ∑ k = 1 c u k n = 1 ，从而 ∑ k = 1 c ∑ l ≠ j u k l s l j ∑ l ≠ j s l j = 1 ，因此 u i j ≥ 0 得证。 固定U和V，更新S，(4)式可以看作： λ T r ( U T L S U ) + μ ∑ i = 1 n ∑ j = 1 c ‖ x i − x j ‖ 2 2 s i j 2 = λ ∑ i = 1 n ∑ j = 1 c ‖ u i − u j ‖ 2 2 s i j + μ ∑ i = 1 n ∑ j = 1 c ‖ x i − x j ‖ 2 2 s i j 2 (15) 由于i独立，因此对(5)式求解，可以得到 s i T D s i + λ μ s i T V i (16) 2.3. 算法流程 基于拉普拉斯约束的模糊c均值(FCML)与其他聚类算法具有类似的框架，其流程可以总结为： 输入：原始样本数据集X，聚类簇数c以及相似矩阵S。 输出：聚类中心V，迭代后的隶属度矩阵U。 步骤1：按照约束条件初始化U并设置聚类簇数c，迭代次数设置为100次。 步骤2：计算实际数据集的样本点与聚类中心的距离d； 步骤3：利用公式(4)计算迭代后的隶属度矩阵U； 步骤4：利用公式(3)计算V； 步骤5：本次计算得出的聚类中心与上次相比，不发生变化或者满足迭代次数超出最大次数，则算法停止；否则，返回步骤2。