Clustering
Clustering ,翻译为"聚类",就是把相似的东西分为一组,同 Classification(分类)不同, classifier 从训练集中进行"学习",从而能够对未知数据进行分类,这种提供训练数据的过程叫做 supervised learning (监督学习),而在聚类的时候,我们并不关心某一类是什么,我们只需要把相似的东西聚到一起,因此,一个聚类算法通常只需要知道如何计算相似度就可以工作了,因此 clustering 通常并不需要使用训练数据进行学习,这在 Machine Learning 中被称作 unsupervised learning (无监督学习)。
一、聚类的两种常用的假设
1、基于中心的聚类(Center-based clusters)
k-center clustering: 最小化数据点到其中心的最大距离,即minimizeΦ k c e n t e r ( C ) = max j = 1 max a i ∈ C j d ( a i , c j )
\Phi_{k c e n t e r}(\mathcal{C})=\max _{j=1} \max _{\mathbf{a}_{i} \in C_{j}} d\left(\mathbf{a}_{i}, \mathbf{c}_{j}\right)
Φ k c e n t e r ( C ) = j = 1 max a i ∈ C j max d ( a i , c j )
例如,消防站位置问题(最小化消防站可能需要前往的最大距离)。
k-median clustering: 最小化数据点到其中心的距离之和,即minimizeΦ k m e d i a n ( C ) = ∑ j = 1 k ∑ a i ∈ C j d ( a i , c j )
\Phi_{k m e d i a n}(\mathcal{C})=\sum_{j=1}^{k} \sum_{\mathbf{a}_{i} \in C_{j}} d\left(\mathbf{a}_{i}, \mathbf{c}_{j}\right)
Φ k m e d i a n ( C ) = j = 1 ∑ k a i ∈ C j ∑ d ( a i , c j )
k-median比k-center更具有抗噪性,因为少数异常值通常不会更改最佳解决方案。
k-means clustering: 最小化数据点到其中心的距离平方和,即minimizeΦ k m e a n s ( C ) = ∑ j = 1 k ∑ a i ∈ C j d 2 ( a i , c j )
\Phi_{k m e a n s}(\mathcal{C})=\sum_{j=1}^{k} \sum_{\mathbf{a}_{i} \in C_{j}} d^{2}\left(\mathbf{a}_{i}, \mathbf{c}_{j}\right)
Φ k m e a n s ( C ) = j = 1 ∑ k a i ∈ C j ∑ d 2 ( a i , c j )
k-means比k-median更重视异常值,因为对距离进行了平方,这会放大大的值。
当数据由R d R^d R d 中的点组成时,更常使用k-means准则,而当我们具有有限度量时,k-median更常用,即数据是具有边距离的图中的节点。
2、高密度聚类
如果我们不相信我们的聚类是基于中心的,那么通常做出的的另一个假设是聚类由高密度区域组成,他们之间是低密度的“护城河”。
二、k-Means Clustering
1、动机
考虑使用k-means准则的最大似然动机。假设我们的数据是由k个良好分离的球形高斯密度等权混合生成的,这k个高斯密度的均值分别为μ 2 , μ 2 , … , μ k \mathbf{\mu}_2, \mathbf{\mu}_2, \dots, \mathbf{\mu}_k μ 2 , μ 2 , … , μ k ,方差都为1。从而混合分布的密度为Prob ( x ) = 1 ( 2 π ) d / 2 1 k ∑ i = 1 k e − ∣ x − μ i ∣ 2
\operatorname{Prob}(\mathrm{x})=\frac{1}{(2 \pi)^{d / 2}} \frac{1}{k} \sum_{i=1}^{k} e^{-\left|\mathrm{x}-\mu_{i}\right|^{2}}
P r o b ( x ) = ( 2 π ) d / 2 1 k 1 i = 1 ∑ k e − ∣ x − μ i ∣ 2
定义最接近x的中心为μ ( x ) \mu(x) μ ( x ) ,由于指数函数快速下降,我们可以用e − ∣ x − μ ( x ) ∣ 2 e^{-|\mathbf{x}-\boldsymbol{\mu}(\mathbf{x})|^{2}} e − ∣ x − μ ( x ) ∣ 2 近似∑ i = 1 k e − ∣ x − μ i ∣ 2 \sum_{i=1}^{k} e^{-\left|\mathbf{x}-\boldsymbol{\mu}_{i}\right|^{2}} ∑ i = 1 k e − ∣ x − μ i ∣ 2 。因此,Prob ( x ) ≈ 1 ( 2 π ) d / 2 k e − ∣ x − μ ( x ) ∣ 2
\operatorname{Prob}(\mathbf{x}) \approx \frac{1}{(2 \pi)^{d / 2} k} e^{-|\mathbf{x}-\mu(\mathbf{x})|^{2}}
P r o b ( x ) ≈ ( 2 π ) d / 2 k 1 e − ∣ x − μ ( x ) ∣ 2
从而,从混合分布中选择样本点的可能性为1 k n 1 ( 2 π ) n d / 2 ∏ i = 1 n e − ∣ x ( i ) − μ ( x ( i ) ) ∣ 2 = c e − ∑ i = 1 n ∣ x ( i ) − μ ( x ( i ) ) ∣ 2
\frac{1}{k^{n}} \frac{1}{(2 \pi)^{n d / 2}} \prod_{i=1}^{n} e^{-\left|\mathbf{x}^{(\mathrm{i})}-\mu\left(\mathrm{x}^{(\mathrm{i})}\right)\right|^{2}}=c e^{-\sum_{i=1}^{n}\left|\mathrm{x}^{(\mathrm{i})}-\mu\left(\mathrm{x}^{(\mathrm{i})}\right)\right|^{2}}
k n 1 ( 2 π ) n d / 2 1 i = 1 ∏ n e − ∣ x ( i ) − μ ( x ( i ) ) ∣ 2 = c e − ∑ i = 1 n ∣ x ( i ) − μ ( x ( i ) ) ∣ 2
因此,最小化到聚类中心的距离平方和得到最大似然 μ 2 , μ 2 , … , μ k \mathbf{\mu}_2, \mathbf{\mu}_2, \dots, \mathbf{\mu}_k μ 2 , μ 2 , … , μ k 。
2、k-means目标的性质
引理2.1 当x是质心时,数据点到x的距离平方和得到最小化,即x = 1 n ∑ i a i \mathbf{x}=\frac{1}{n} \sum_{i} \mathbf{a}_{\mathbf{i}} x = n 1 ∑ i a i 。证明 :我们的目标是寻找x,最小化∑ i ∣ a i − x ∣ 2 \sum_{i}\left|\mathbf{a}_{\mathbf{i}}-\mathbf{x}\right|^{2} ∑ i ∣ a i − x ∣ 2 。通过简单计算可得∑ i ∣ a i − x ∣ 2 = ∑ i ∣ a i − c ∣ 2 + n ∣ c − x ∣ 2
\sum_{i}\left|\mathrm{a}_{\mathrm{i}}-\mathrm{x}\right|^{2}=\sum_{i}\left|\mathrm{a}_{\mathrm{i}}-\mathrm{c}\right|^{2}+n|\mathrm{c}-\mathrm{x}|^{2}
i ∑ ∣ a i − x ∣ 2 = i ∑ ∣ a i − c ∣ 2 + n ∣ c − x ∣ 2 等式右边第一部分是确定的数,第二部分最小值为0,在x = c x=c x = c 处取得。
3、Lloyd’s Algorithm
k-means聚类一个常用的算法是Lloyd’s Algorithm。Lloyd’s Algorithm:
初始化k个中心(随机选择?);
将每个点与最靠近它的中心聚类;
找到每个聚类的质心作为新中心替换旧中心;
重复Step 2和Step 3直到聚类中心收敛(根据一些准则,例如k-means得分不再提高)
Lloyd算法不一定能找到全局最优解,但会找到局部最优解。算法中一个重要的步骤是初始化。下面的例子说明了初始中心会显著影响聚类结果。
上图中有三个密集簇,分别以( 0 , 1 ) , ( 0 , − 1 ) (0,1),(0,-1) ( 0 , 1 ) , ( 0 , − 1 ) 和( 3 , 0 ) (3,0) ( 3 , 0 ) 为中心。但如果我们以一个中心( 0 , 1 ) (0,1) ( 0 , 1 ) 和两个接近( 3 , 0 ) (3,0) ( 3 , 0 ) 的中心初始化,那么( 0 , 1 ) (0,1) ( 0 , 1 ) 处的中心会移到( 0 , 0 ) (0,0) ( 0 , 0 ) ,而( 3 , 0 ) (3,0) ( 3 , 0 ) 处的两个中心会呆在那里,将这一簇分成两部分。
因此,对于初始中心的选择要遵循一定的策略。最常用的策略为“最远遍历”。首先选择一个数据点作为初始中心c 1 c_1 c 1 ,然后选择距离c 1 c_1 c 1 最远的数据点作为c 2 c_2 c 2 ,然后选择距离{ c 1 , c 2 } \{c_1,c_2\} { c 1 , c 2 } 最远的数据点作为c 3 c_3 c 3 ,等等。直到选足了k个点,将它们用作初始中心。注意到,这样可以在图7.2中得到正确的聚类。
“最远便利”会被少数异常值欺骗。k-means++对此进行改进,基于它们与已挑选中心的距离来加权数据点,具体而言,与距离平方成比例。然后根据这些权重概率地选择下一个中心。另一种方法是为k-means问题运行一些其他近似算法,然后使用其输出作为Lloyd算法的起点。
4、Ward’s Algorithm
从它自己的簇中的每个数据点开始,然后重复的合并成对的簇,直到只剩下k个簇。具体来说,Ward算法合并了最小化k-means成本增量的两个簇,即合并 ( C , C ′ ) \left(C, C^{\prime}\right) ( C , C ′ ) minimizingcost ( C ∪ C ′ ) − cost ( C ) − cost ( C ′ )
\operatorname{cost}\left(C \cup C^{\prime}\right)-\operatorname{cost}(C)-\operatorname{cost}\left(C^{\prime}\right)
c o s t ( C ∪ C ′ ) − c o s t ( C ) − c o s t ( C ′ )
4、一维中的k-Means聚类
假设已经得到了a 1 , … , a i a_{1}, \dots, a_{i} a 1 , … , a i 的所有最优k’-means聚类(∀ k ′ ≤ k \forall k'\le k ∀ k ′ ≤ k ), 要计算a 1 , … , a i + 1 a_{1}, \dots, a_{i+1} a 1 , … , a i + 1 的最优k’-means聚类,即寻找j j j ,最小化d i s t ( a 1 , ⋯  , a j − 1 ) + d i s t ( a j , ⋯  , a i + 1 ) dist(a_1,\cdots,a_{j-1})+dist(a_j,\cdots,a_{i+1}) d i s t ( a 1 , ⋯ , a j − 1 ) + d i s t ( a j , ⋯ , a i + 1 )
前者聚成k ′ − 1 k'-1 k ′ − 1 类,后者聚成1类。
对于给定的i i i ,我们需要计算k ′ = 1 , ⋯  , k k'=1,\cdots,k k ′ = 1 , ⋯ , k ,每次计算a 1 , … , a i a_{1}, \dots, a_{i} a 1 , … , a i 的k’-means聚类时,需要运行i i i 个j j j (i ≤ n i\le n i ≤ n )。因此运行时间为O ( k n ) O(kn) O ( k n ) 。而一共有n n n 个i i i ,因此总的运行时间为O ( k n 2 O(kn^2 O ( k n 2 )。
三、k-Center Clustering
将任意点到聚类中心的最大距离称为聚类的半径。存在半径为r的k聚类当且仅当存在k个半径为r的球体将所有的点覆盖。下面,我们给出一个简单的算法来寻找k个球覆盖所有点。The Farthest Traversal k-clustering Algorithm
任意选择一个点作为第一个聚类中心;
对t = 2 , 3 , ⋯  , k t=2,3,\cdots,k t = 2 , 3 , ⋯ , k ,选择距离当前聚类中心最远的点,作为第t t t 个聚类中心。
该算法相当于初始化Lloyd算法的最远遍历策略。下面的引理表明该算法仅需要使用最多为最佳k-center解的两倍的半径。Theorem 7.3 如果存在半径为r 2 \frac{r}{2} 2 r 的k k k 聚类,那么上面的算法找到的k k k 聚类的半径至多为r r r 。证明 :若不然,即存在数据点x x x ,它距离所有中心> r >r > r ⇒ \Rightarrow ⇒ 每次产生的新中心距离当前中心> r >r > r (否则它就不是距离当前中心最远的点,因为x x x 距离当前中心> r >r > r )。从而,k k k 个中心加上一个数据点x x x ,共有k + 1 k+1 k + 1 个数据点,它们的距离成对的比r r r 更大。但在半径为r 2 \frac{r}{2} 2 r 的k k k 聚类中,没有两个这样的点可以属于同一簇,矛盾。
四、Spectral Clustering(谱聚类)
Spectral Clustering 其实就是通过 Laplacian Eigenmap 的降维方式降维之后再做 K-means 的一个过程。
谱聚类遵循以下步骤:
寻找由A的前k个右奇异向量生成的空间V
将数据点投影到V上
对投影点聚类
1、为什么要投影?
投影会使数据点更接近其聚类中心。
令数据矩阵A A A 的第i i i 行表示第i i i 个数据点,C的第i i i 行表示第i i i 个数据点属于的中心点。(对于k k k 聚类问题有且仅有k k k 个不同行)那么,数据点到其聚类中心的距离平方和为∑ i = 1 n ∣ a i − c i ∣ 2 = ∥ A − C ∥ F 2
\sum_{i=1}^{n}\left|\mathbf{a}_{\mathbf{i}}-\mathbf{c _ { i }}\right|^{2}=\|A-C\|_{F}^{2}
i = 1 ∑ n ∣ a i − c i ∣ 2 = ∥ A − C ∥ F 2
通过聚类能够将到聚类中心的距离平方和由∥ A − C ∥ F 2 \|A-C\|_{F}^{2} ∥ A − C ∥ F 2 减小到投影中的8k ∥ A − C ∥ 2 2 k\|A-C\|_{2}^{2} k ∥ A − C ∥ 2 2 .。Theorem 7.4 对任意秩小于等于k的矩阵C C C ,有∥ A k − C ∥ F 2 ≤ 8 k ∥ A − C ∥ 2 2
\left\|A_{k}-C\right\|_{F}^{2} \leq 8 k\|A-C\|_{2}^{2}
∥ A k − C ∥ F 2 ≤ 8 k ∥ A − C ∥ 2 2 证明 :r a n k ( A k − C ) ≤ r a n k ( A k ) + r a n k ( C ) ≤ k + k = 2 k rank(A_k-C)\le rank(A_k) + rank(C)\le k+k=2k r a n k ( A k − C ) ≤ r a n k ( A k ) + r a n k ( C ) ≤ k + k = 2 k
由于∥ A ∥ 2 2 ≤ ∥ A ∥ F 2 ≤ k ∥ A ∥ 2 2 \|A\|_{2}^{2} \leq\|A\|_{F}^{2} \leq k\|A\|_{2}^{2} ∥ A ∥ 2 2 ≤ ∥ A ∥ F 2 ≤ k ∥ A ∥ 2 2 ,所以∥ A k − C ∥ F 2 ≤ 2 k ∥ A k − C ∥ 2 2
\left\|A_{k}-C\right\|_{F}^{2} \leq 2 k\left\|A_{k}-C\right\|_{2}^{2}
∥ A k − C ∥ F 2 ≤ 2 k ∥ A k − C ∥ 2 2
又∥ A k − C ∥ 2 ≤ ∥ A k − A ∥ 2 + ∥ A − C ∥ 2 ≤ 2 ∥ A − C ∥ 2
\left\|A_{k}-C\right\|_{2} \leq\left\|A_{k}-A\right\|_{2}+\|A-C\|_{2} \leq 2\|A-C\|_{2}
∥ A k − C ∥ 2 ≤ ∥ A k − A ∥ 2 + ∥ A − C ∥ 2 ≤ 2 ∥ A − C ∥ 2
得证。
2、算法
定义σ ( C ) = ∥ A − C ∥ 2 / n \sigma(C)=\|A-C\|_{2} / \sqrt{n} σ ( C ) = ∥ A − C ∥ 2 / n 。Spectral Clustering - The Algorithm
寻找A的前k个奇异值向量,然后将A的列投影到由这向量生成的空间上,得到A k A_k A k ;
从A k A_k A k 中选择一行进行聚类,使得A k A_k A k 的所有行与该行的距离都小于6 k σ ( C ) / ε 6k \sigma(C) / \varepsilon 6 k σ ( C ) / ε ;
重复Step 2 k k k 次。
Theorem 7.5 如果在k k k 聚类C C C 中,每对中心间隔至少15k σ ( C ) / ε k \sigma(C) / \varepsilon k σ ( C ) / ε ,并且每一类中至少有ε n \varepsilon n ε n 个点,则以至少1 − ε 1-\varepsilon 1 − ε 的概率,谱聚类找到的聚类C ′ C' C ′ 与C C C 至多有ε 2 n \varepsilon^{2} n ε 2 n 个点不同。证明 :首先证明对大多数的数据点,数据点的投影与其聚类中心的距离在3 k σ ( C ) / ε 3k \sigma(C) / \varepsilon 3 k σ ( C ) / ε 以内。令M = { i : ∣ v i − c i ∣ ≥ 3 k σ ( C ) / ε }
M=\left\{i :\left|\mathbf{v}_{\mathrm{i}}-\mathbf{c}_{\mathrm{i}}\right| \geq 3 k \sigma(C) / \varepsilon\right\}
M = { i : ∣ v i − c i ∣ ≥ 3 k σ ( C ) / ε }
其中v i \mathbf{v}_i v i 表示A k A_k A k 的第i i i 行。下面证明∣ M ∣ |M| ∣ M ∣ 是小的。
由于∥ A k − C ∥ F 2 = ∑ i ∣ v i − c i ∣ 2 ≥ ∑ i ∈ M ∣ v i − c i ∣ 2 ≥ ∣ M ∣ 9 k 2 σ 2 ( C ) ε 2 \left\|A_{k}-C\right\|_{F}^{2}=\sum_{i}\left|\mathrm{v}_{\mathrm{i}}-\mathrm{c}_{\mathrm{i}}\right|^{2} \geq \sum_{i \in M}\left|\mathrm{v}_{\mathrm{i}}-\mathrm{c}_{\mathrm{i}}\right|^{2} \geq|M| \frac{9 k^{2} \sigma^{2}(C)}{\varepsilon^{2}} ∥ A k − C ∥ F 2 = ∑ i ∣ v i − c i ∣ 2 ≥ ∑ i ∈ M ∣ v i − c i ∣ 2 ≥ ∣ M ∣ ε 2 9 k 2 σ 2 ( C ) ,所以,由定理7.4,有∣ M ∣ 9 k 2 σ 2 ( C ) ε 2 ≤ ∥ A k − C ∥ F 2 ≤ 8 k n σ 2 ( C ) ⟹ ∣ M ∣ ≤ 8 ε 2 n 9 k
|M| \frac{9 k^{2} \sigma^{2}(C)}{\varepsilon^{2}} \leq\left\|A_{k}-C\right\|_{F}^{2} \leq 8 k n \sigma^{2}(C) \quad \Longrightarrow \quad|M| \leq \frac{8 \varepsilon^{2} n}{9 k}
∣ M ∣ ε 2 9 k 2 σ 2 ( C ) ≤ ∥ A k − C ∥ F 2 ≤ 8 k n σ 2 ( C ) ⟹ ∣ M ∣ ≤ 9 k 8 ε 2 n
如果i ∉ M i \notin M i ∈ / M ,称数据点i i i 是好的。对于属于同一簇的两个好点i i i 和j j j ,由于它们的投影与中心距离在3 k σ ( C ) / ε 3k \sigma(C) / \varepsilon 3 k σ ( C ) / ε 以内,所以两个点的投影距离在6 k σ ( C ) / ε 6k \sigma(C) / \varepsilon 6 k σ ( C ) / ε 以内。另一方面,对于属于不同簇的两个好点i i i 和k k k ,由于两个簇的中心间隔至少15k σ ( C ) / ε k \sigma(C) / \varepsilon k σ ( C ) / ε ,所以两个点的投影距离一定比15 k σ ( C ) / ε − 6 k σ ( C ) / ε = 9 k σ ( C ) / ε 15 k \sigma(C) / \varepsilon-6 k \sigma(C) / \varepsilon=9 k \sigma(C) / \varepsilon 1 5 k σ ( C ) / ε − 6 k σ ( C ) / ε = 9 k σ ( C ) / ε 大。因此,如果我们在Step 2中选择了一个好点(如点i i i ),那么我们算法放置在它的簇中的好点就确为与i i i 在同一簇中的好点。因此,如果在Step 2的第k次执行中,我们选择了一个好点,那么所有好点都被正确聚类。又由于∣ M ∣ ≤ ε 2 n |M| \leq \varepsilon^{2} n ∣ M ∣ ≤ ε 2 n ,定理即成立。
为了完成证明,,我们还需说明Step 2中选择坏点的可能性很小。有上面证明,可知每一类中好点的个数至少( ε − ε 2 ) n (\varepsilon-\varepsilon^2)n ( ε − ε 2 ) n 。因此,从每一类中挑出好点的概率至少为( ε − ε 2 ) n / ( ε n ) = 1 − ε (\varepsilon-\varepsilon^2)n/(\varepsilon n)=1-\varepsilon ( ε − ε 2 ) n / ( ε n ) = 1 − ε 。
3、由Ω ( 1 ) \Omega(1) Ω ( 1 ) 标准差分离的均值
对于实线上的概率分布,“由6 6 6 标准差分离的均值”足够区分不同的分布。如果k ∈ O ( 1 ) k \in O(1) k ∈ O ( 1 ) 并且6 6 6 被一些常数代替,则谱聚类能够使我们在更高维度上做同样的事。首先定义标准偏差为数据点到聚类中心的平方均值在所有单位方向v \mathrm{v} v 上的最大值,即σ ( C ) 2 = 1 n max ∣ v ∣ = 1 ∑ i = 1 n [ ( a i − c i ) ⋅ v ] 2 = 1 n max ∣ v ∣ = 1 ∣ ( A − C ) v ∣ 2 = 1 n ∥ A − C ∥ 2 2
\sigma(C)^{2}=\frac{1}{n} \max\limits_{|\mathbf{v}|=1} \sum_{i=1}^{n}\left[\left(\mathbf{a}_{\mathbf{i}}-\mathbf{c}_{\mathbf{i}}\right) \cdot \mathbf{v}\right]^{2}=\frac{1}{n} \max\limits_{|\mathbf{v}|=1}|(A-C) \mathbf{v}|^{2}=\frac{1}{n}\|A-C\|_{2}^{2}
σ ( C ) 2 = n 1 ∣ v ∣ = 1 max i = 1 ∑ n [ ( a i − c i ) ⋅ v ] 2 = n 1 ∣ v ∣ = 1 max ∣ ( A − C ) v ∣ 2 = n 1 ∥ A − C ∥ 2 2
这也与我们之前对σ ( C ) \sigma(C) σ ( C ) 的定义相同。
现在,很容易看出Theorem 7.5可以重新表述(假设k ∈ O ( 1 ) k \in O(1) k ∈ O ( 1 ) )为
如果C C C 中的聚类中心可以由Ω ( σ ( C ) ) \Omega(\sigma(C)) Ω ( σ ( C ) ) 分离,那么谱聚类算法找到的聚类C ′ C' C ′ 与C C C 只有很小一部分数据点不同。
可以看出,对于许多随机模型,“均值由Ω ( 1 ) \Omega(1) Ω ( 1 ) 标准差分离”条件成立。在这里用两个例子说明。
首先,假设我们有k ∈ O ( 1 ) k \in O(1) k ∈ O ( 1 ) 个球面高斯的混合,其标准差均为1。数据由这个混合产生。如果高斯的均值是Ω ( 1 ) \Omega(1) Ω ( 1 ) 分离的,那么条件“均值由Ω ( 1 ) \Omega(1) Ω ( 1 ) 标准差分离”是满足的,因此当我们投影到SVD子空间并聚类,我们将得到(接近)正确的聚类。
我们再讨论第二个例子。随机块模型是关于社区的模型。假设再n n n 个人中有k k k 个社区C 1 , C 2 , … , C k C_{1}, C_{2}, \ldots, C_{k} C 1 , C 2 , … , C k 。假设两个人在同一社区认识对方的概率为p p p ,在不同社区认识对方的概率为q q q ,其中,q < p q<p q < p 。假设事件人i i i 认识人j j j 是互相独立的。具体地,我们给出n × n n\times n n × n 数据矩阵,其中a i j = 1 a_{ij}=1 a i j = 1 当且仅当i i i 和j j j 彼此认识。可以将A视为图的邻接矩阵。在实际中,图形相当稀疏,即p p p 和q q q 很小,即O ( 1 / n ) O(1 / n) O ( 1 / n ) or O ( ln n / n ) O(\ln n / n) O ( ln n / n ) 。
考虑简单情形:两个社区各有n / 2 n/2 n / 2 个人,且p = α n q = β n p=\frac{\alpha}{n} \quad q=\frac{\beta}{n} \quad p = n α q = n β ,其中α , β ∈ O ( ln n ) \alpha, \beta \in O(\ln n) α , β ∈ O ( ln n ) 。令u \mathbf{u} u 和v \mathbf{v} v 分别为社区一和二的数据点的质心,所以u i ≈ p u_{i} \approx p u i ≈ p for i ∈ C 1 i \in C_{1} i ∈ C 1 和 u j ≈ q u_{j} \approx q u j ≈ q for j ∈ C 2 j \in C_{2} j ∈ C 2 并且v i ≈ q v_{i} \approx q v i ≈ q for i ∈ C 1 i \in C_{1} i ∈ C 1 和v j ≈ p v_{j} \approx p v j ≈ p for j ∈ C 2 j \in C_{2} j ∈ C 2 。我们有∣ u − v ∣ 2 = ∑ j = 1 n ( u j − v j ) 2 ≈ ( α − β ) 2 n 2 n = ( α − β ) 2 n
|\mathbf{u}-\mathbf{v}|^{2}=\sum_{j=1}^{n}\left(u_{j}-v_{j}\right)^{2} \approx \frac{(\alpha-\beta)^{2}}{n^{2}} n=\frac{(\alpha-\beta)^{2}}{n}
∣ u − v ∣ 2 = j = 1 ∑ n ( u j − v j ) 2 ≈ n 2 ( α − β ) 2 n = n ( α − β ) 2 I n t e r − c e n t r o i d d i s t a n c e ≈ α − β n Inter-centroid distance\approx \frac{\alpha-\beta}{\sqrt{n}} I n t e r − c e n t r o i d d i s t a n c e ≈ n α − β
我们要求∥ A − C ∥ 2 \|A-C\|_{2} ∥ A − C ∥ 2 的上界。这是非平凡的,因为我们必须对所有单位向量v \mathbf{v} v 证明一个统一的上界。随机矩阵(RMT)理论已经为我们做了这个。RMT告诉我们∥ A − C ∥ 2 ≤ O ∗ ( n p ) = O ∗ ( α )
\|A-C\|_{2} \leq O^{*}(\sqrt{n p})=O^{*}(\sqrt{\alpha})
∥ A − C ∥ 2 ≤ O ∗ ( n p ) = O ∗ ( α )
因此,只要α − β ∈ Ω ∗ ( α ) \alpha-\beta \in \Omega^{*}(\sqrt{\alpha}) α − β ∈ Ω ∗ ( α ) ,我们有Ω ( 1 ) \Omega(1) Ω ( 1 ) 标准差分离的均值,从而谱聚类工作。
4、拉普拉斯算子
谱聚类的一个重要特例是当k = 2 k=2 k = 2 时。如果我们一个算法将数据分成两部分,这可以递归的应用。一种使用该谱算法的情形是应用在图的拉普拉斯矩阵L上,其被定义为L = D − A L=D-A L = D − A
其中A A A 是邻接矩阵,D D D 是自由度的对角矩阵。我们令A A A 为负号。
对任意向量x x x ,我们有x T L x = ∑ i d i i x i 2 − ∑ ( i , j ) ∈ E x i x j = 1 2 ∑ ( i , j ) ∈ E ( x i − x j ) 2
\mathbf{x}^{T} L \mathbf{x}=\sum_{i} d_{i i} x_{i}^{2}-\sum_{(i, j) \in E} x_{i} x_{j}=\frac{1}{2} \sum_{(i, j) \in E}\left(x_{i}-x_{j}\right)^{2}
x T L x = i ∑ d i i x i 2 − ( i , j ) ∈ E ∑ x i x j = 2 1 ( i , j ) ∈ E ∑ ( x i − x j ) 2
由于L L L 的所有行和为0,因此其最小特征值为0,对应的特征向量为1 \mathbf{1} 1 。所有数据点对此向量的投影点仅仅是原点,因此不能提供任何信息。如果我们采用第二低的奇异向量并进行投影,我们得到非常简单的将n n n 个实数进行聚类的问题。