- 引言
- 回顾:最优特征方向的求解过程
- 从样本自身角度求解最优特征方向
- 主坐标分析(PCoA)
- 主坐标分析的推导过程
 
 
前面分别从最大投影方差和最小重构代价的角度介绍了主成分分析(Principal Component Analysis,PCA)。本节将介绍从奇异值分解(Singular Value Decomposition)的角度观察主成分分析。
回顾:最优特征方向的求解过程以最大投影方差角度为例,某样本集合 X \mathcal X X关于某特征方向 u ⃗ \vec u u 的投影方差结果表示如下: J = u ⃗ T ⋅ [ 1 N ∑ i = 1 N ( x ( i ) − X ˉ ) ⋅ ( x ( i ) − X ˉ ) T ] ⋅ u ⃗ = u ⃗ T ⋅ S ⋅ u ⃗ \begin{aligned} \mathcal J & = \vec u^T \cdot \left[\frac{1}{N} \sum_{i=1}^N \left(x^{(i)} - \bar {\mathcal X}\right) \cdot \left(x^{(i)} - \bar {\mathcal X}\right)^T \right] \cdot \vec u \\ & = \vec u^T \cdot \mathcal S \cdot \vec u \end{aligned} J=u T⋅[N1i=1∑N(x(i)−Xˉ)⋅(x(i)−Xˉ)T]⋅u =u T⋅S⋅u  其中 x ( i ) ( i = 1 , 2 , ⋯ , N ) x^{(i)}(i=1,2,\cdots,N) x(i)(i=1,2,⋯,N)表示数据集合 X \mathcal X X内的某一具体样本; S \mathcal S S表示样本集合 X \mathcal X X的协方差矩阵; 搭配约束条件,使用拉格朗日乘数法对如下优化问题进行求解: { arg  max  u ⃗ J u ⃗ T ⋅ u ⃗ = 1 → L ( u ⃗ , λ ) = u ⃗ T ⋅ S ⋅ u ⃗ + λ ( 1 − u ⃗ T ⋅ u ⃗ ) \begin{cases} \mathop{\arg\max}\limits_{\vec u} \mathcal J \\ \vec u^T \cdot \vec u = 1 \end{cases} \to \mathcal L(\vec u,\lambda) = \vec u^T \cdot \mathcal S \cdot \vec u + \lambda (1 - \vec u^T \cdot \vec u) ⎩ ⎨ ⎧u argmaxJu T⋅u =1→L(u ,λ)=u T⋅S⋅u +λ(1−u T⋅u ) 通过求解得知,拉格朗日因子 λ \lambda λ是协方差矩阵 S \mathcal S S的特征值结果: S ⋅ u ⃗ = λ ⋅ u ⃗ \mathcal S \cdot \vec u = \lambda \cdot \vec u S⋅u =λ⋅u 由于协方差矩阵 S \mathcal S S是实对称矩阵,因此不同特征值 λ \lambda λ对应的特征向量 不仅是线性无关,并且是两两正交。而最优特征方向组成的正交基是由数值最大的前若干个特征值对应的特征向量构成。
基于上述逻辑,首先对矩阵 S \mathcal S S进行奇异值分解。由于 S \mathcal S S本身是实对称矩阵,因此关于 S \mathcal S S的奇异值分解就是 S \mathcal S S的特征值分解: S = G ⋅ K ⋅ G T \mathcal S = \mathcal G \cdot \mathcal K \cdot \mathcal G^T S=G⋅K⋅GT 其中 G \mathcal G G表示 标准化后的特征向量组成的矩阵,即 G \mathcal G G中的各向量之间两两正交( E \mathcal E E表示单位向量): G T ⋅ G = E \mathcal G ^T \cdot \mathcal G = \mathcal E GT⋅G=E K \mathcal K K是 S \mathcal S S的对角化矩阵,对角阵上的元素是 S \mathcal S S本身的特征值结果(特征值由大到小排列): K = ( λ 1 λ 2 ⋱ λ p ) ( λ 1 ≥ λ 2 ≥ ⋯ ≥ λ p ) \mathcal K = \begin{pmatrix}\lambda_1 \\ & \lambda_2 \\ &&\ddots \\ &&&\lambda_p\end{pmatrix} \quad (\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_p) K= λ1λ2⋱λp (λ1≥λ2≥⋯≥λp) 最终选择前 q q q个最大的特征值对应的特征向量即可。
从样本自身角度求解最优特征方向上述求解过程之所以看起来简单,是因为协方差矩阵 S \mathcal S S是实对称矩阵 这个优势存在。本节仅从数据集合 X \mathcal X X的角度出发,来求解最优特征方向。
针对数据集合 X \mathcal X X表示如下: X = [ x 1 ( 1 ) , x 2 ( 1 ) , ⋯ , x p ( 1 ) x 1 ( 2 ) , x 2 ( 2 ) , ⋯ , x p ( 2 ) ⋮ x 1 ( N ) , x 2 ( N ) , ⋯ , x p ( N ) ] N × p \mathcal X = \begin{bmatrix} x_1^{(1)},x_2^{(1)},\cdots,x_p^{(1)} \\ x_1^{(2)},x_2^{(2)},\cdots,x_p^{(2)} \\ \vdots \\ x_1^{(N)},x_2^{(N)},\cdots,x_p^{(N)} \\ \end{bmatrix}_{N \times p} X= x1(1),x2(1),⋯,xp(1)x1(2),x2(2),⋯,xp(2)⋮x1(N),x2(N),⋯,xp(N) N×p 对 X \mathcal X X执行中心化操作,结合样本均值与方差的矩阵表示一节中介绍的中心矩阵 H \mathcal H H,中心化后的数据集合 X ^ \hat {\mathcal X} X^表示如下: X ^ = H ⋅ X H = E N − 1 N I N ⋅ I N T \hat {\mathcal X} = \mathcal H \cdot \mathcal X \\ \mathcal H = \mathcal E_N - \frac{1}{N}\mathcal I_N \cdot \mathcal I_N^T X^=H⋅XH=EN−N1IN⋅INT
简单推导 如下:  
      
       
        
         
          
           
            
            
              H 
             
            
              ⋅ 
             
            
              X 
             
            
           
          
          
           
            
             
            
              = 
             
             
             
               ( 
              
              
              
                E 
               
              
                N 
               
              
             
               − 
              
              
              
                1 
               
              
                N 
               
              
              
              
                I 
               
              
                N 
               
              
             
               ⋅ 
              
              
              
                I 
               
              
                N 
               
              
                T 
               
              
             
               ) 
              
             
            
              ⋅ 
             
            
              X 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
            
              X 
             
            
              − 
             
             
             
               1 
              
             
               N 
              
             
             
             
               I 
              
             
               N 
              
             
            
              ⋅ 
             
             
             
               I 
              
             
               N 
              
             
               T 
              
             
            
              ⋅ 
             
            
              X 
             
            
           
          
         
        
       
         \begin{aligned} \mathcal H \cdot \mathcal X & = \left(\mathcal E_N - \frac{1}{N}\mathcal I_N \cdot \mathcal I_N^T\right) \cdot \mathcal X \\ & = \mathcal X - \frac{1}{N}\mathcal I_N \cdot \mathcal I_N^T \cdot \mathcal X \end{aligned} 
        
       
     H⋅X=(EN−N1IN⋅INT)⋅X=X−N1IN⋅INT⋅X 观察第二项, 
     
      
       
        
        
          1 
         
        
          N 
         
        
        
        
          I 
         
        
          N 
         
        
       
         ⋅ 
        
        
        
          I 
         
        
          N 
         
        
          T 
         
        
       
      
        \frac{1}{N} \mathcal I_N \cdot \mathcal I_N^T 
       
      
    N1IN⋅INT具体表示如下:  
      
       
        
         
         
           1 
          
         
           N 
          
         
         
         
           I 
          
         
           N 
          
         
        
          ⋅ 
         
         
         
           I 
          
         
           N 
          
         
           T 
          
         
        
          = 
         
         
          
          
            ( 
           
           
            
             
              
               
                
                
                  1 
                 
                
                  N 
                 
                
               
                 , 
                
                
                
                  1 
                 
                
                  N 
                 
                
               
                 , 
                
               
                 ⋯ 
                 
               
                 , 
                
                
                
                  1 
                 
                
                  N 
                 
                
               
              
             
            
            
             
              
               
                
                
                  1 
                 
                
                  N 
                 
                
               
                 , 
                
                
                
                  1 
                 
                
                  N 
                 
                
               
                 , 
                
               
                 ⋯ 
                 
               
                 , 
                
                
                
                  1 
                 
                
                  N 
                 
                
               
              
             
            
            
             
              
               
               
                 ⋮ 
                
                
                 
                
               
              
             
            
            
             
              
               
                
                
                  1 
                 
                
                  N 
                 
                
               
                 , 
                
                
                
                  1 
                 
                
                  N 
                 
                
               
                 , 
                
               
                 ⋯ 
                 
               
                 , 
                
                
                
                  1 
                 
                
                  N 
                 
                
               
              
             
            
           
          
            ) 
           
          
          
          
            N 
           
          
            × 
           
          
            N 
           
          
         
        
       
         \frac{1}{N} \mathcal I_N \cdot \mathcal I_N^T = \begin{pmatrix} \frac{1}{N}, \frac{1}{N},\cdots ,\frac{1}{N} \\ \frac{1}{N}, \frac{1}{N},\cdots ,\frac{1}{N} \\ \vdots \\ \frac{1}{N}, \frac{1}{N},\cdots ,\frac{1}{N} \\ \end{pmatrix}_{N \times N} 
        
       
     N1IN⋅INT= 
                
                 
               N1,N1,⋯,N1N1,N1,⋯,N1⋮N1,N1,⋯,N1 
                
                 
               N×N 因而 
     
      
       
        
        
          1 
         
        
          N 
         
        
        
        
          I 
         
        
          N 
         
        
       
         ⋅ 
        
        
        
          I 
         
        
          N 
         
        
          T 
         
        
       
         ⋅ 
        
       
         X 
        
       
      
        \frac{1}{N} \mathcal I_N \cdot \mathcal I_N^T \cdot \mathcal X 
       
      
    N1IN⋅INT⋅X即: 所有行都与第一行相同。  
      
       
        
         
         
           1 
          
         
           N 
          
         
         
         
           I 
          
         
           N 
          
         
        
          ⋅ 
         
         
         
           I 
          
         
           N 
          
         
           T 
          
         
        
          ⋅ 
         
        
          X 
         
        
          = 
         
         
         
           ( 
          
          
           
            
             
              
               
               
                 1 
                
               
                 N 
                
               
               
               
                 ∑ 
                
                
                
                  i 
                 
                
                  = 
                 
                
                  1 
                 
                
               
                 N 
                
               
               
               
                 x 
                
               
                 1 
                
                
                
                  ( 
                 
                
                  i 
                 
                
                  ) 
                 
                
               
              
                , 
               
              
                ⋯ 
                
              
                , 
               
               
               
                 1 
                
               
                 N 
                
               
               
               
                 ∑ 
                
                
                
                  i 
                 
                
                  = 
                 
                
                  1 
                 
                
               
                 N 
                
               
               
               
                 x 
                
               
                 p 
                
                
                
                  ( 
                 
                
                  i 
                 
                
                  ) 
                 
                
               
              
             
            
           
           
            
             
              
               
               
                 1 
                
               
                 N 
                
               
               
               
                 ∑ 
                
                
                
                  i 
                 
                
                  = 
                 
                
                  1 
                 
                
               
                 N 
                
               
               
               
                 x 
                
               
                 1 
                
                
                
                  ( 
                 
                
                  i 
                 
                
                  ) 
                 
                
               
              
                , 
               
              
                ⋯ 
                
              
                , 
               
               
               
                 1 
                
               
                 N 
                
               
               
               
                 ∑ 
                
                
                
                  i 
                 
                
                  = 
                 
                
                  1 
                 
                
               
                 N 
                
               
               
               
                 x 
                
               
                 p 
                
                
                
                  ( 
                 
                
                  i 
                 
                
                  ) 
                 
                
               
              
             
            
           
           
            
             
              
              
                ⋮ 
               
               
                
               
              
             
            
           
           
            
             
              
               
               
                 1 
                
               
                 N 
                
               
               
               
                 ∑ 
                
                
                
                  i 
                 
                
                  = 
                 
                
                  1 
                 
                
               
                 N 
                
               
               
               
                 x 
                
               
                 1 
                
                
                
                  ( 
                 
                
                  i 
                 
                
                  ) 
                 
                
               
              
                , 
               
              
                ⋯ 
                
              
                , 
               
               
               
                 1 
                
               
                 N 
                
               
               
               
                 ∑ 
                
                
                
                  i 
                 
                
                  = 
                 
                
                  1 
                 
                
               
                 N 
                
               
               
               
                 x 
                
               
                 p 
                
                
                
                  ( 
                 
                
                  i 
                 
                
                  ) 
                 
                
               
              
             
            
           
          
         
           ) 
          
         
        
       
         \frac{1}{N} \mathcal I_N \cdot \mathcal I_N^T \cdot \mathcal X = \begin{pmatrix}\frac{1}{N} \sum_{i=1}^{N}x_1^{(i)},\cdots,\frac{1}{N} \sum_{i=1}^{N}x_p^{(i)} \\ \frac{1}{N} \sum_{i=1}^{N}x_1^{(i)},\cdots,\frac{1}{N} \sum_{i=1}^{N}x_p^{(i)} \\ \vdots \\ \frac{1}{N} \sum_{i=1}^{N}x_1^{(i)},\cdots,\frac{1}{N} \sum_{i=1}^{N}x_p^{(i)} \end{pmatrix} 
        
       
     N1IN⋅INT⋅X= 
               
                
              N1∑i=1Nx1(i),⋯,N1∑i=1Nxp(i)N1∑i=1Nx1(i),⋯,N1∑i=1Nxp(i)⋮N1∑i=1Nx1(i),⋯,N1∑i=1Nxp(i) 
               
                
               最终 
     
      
       
       
         X 
        
       
         − 
        
        
        
          1 
         
        
          N 
         
        
        
        
          I 
         
        
          N 
         
        
       
         ⋅ 
        
        
        
          I 
         
        
          N 
         
        
          T 
         
        
       
         ⋅ 
        
       
         X 
        
       
      
        \mathcal X - \frac{1}{N} \mathcal I_N \cdot \mathcal I_N^T \cdot \mathcal X 
       
      
    X−N1IN⋅INT⋅X即 中心化后的样本结果:  
      
       
        
         
          
           
            
            
              X 
             
            
              − 
             
             
             
               1 
              
             
               N 
              
             
             
             
               I 
              
             
               N 
              
             
            
              ⋅ 
             
             
             
               I 
              
             
               N 
              
             
               T 
              
             
            
              ⋅ 
             
            
              X 
             
            
           
          
          
           
            
             
            
              = 
             
             
              
              
                [ 
               
               
                
                 
                  
                   
                    
                    
                      x 
                     
                    
                      1 
                     
                     
                     
                       ( 
                      
                     
                       1 
                      
                     
                       ) 
                      
                     
                    
                   
                     − 
                    
                    
                    
                      1 
                     
                    
                      N 
                     
                    
                    
                    
                      ∑ 
                     
                     
                     
                       i 
                      
                     
                       = 
                      
                     
                       1 
                      
                     
                    
                      N 
                     
                    
                    
                    
                      x 
                     
                    
                      1 
                     
                     
                     
                       ( 
                      
                     
                       i 
                      
                     
                       ) 
                      
                     
                    
                   
                     , 
                    
                   
                     ⋯ 
                     
                   
                     , 
                    
                    
                    
                      x 
                     
                    
                      p 
                     
                     
                     
                       ( 
                      
                     
                       1 
                      
                     
                       ) 
                      
                     
                    
                   
                     − 
                    
                    
                    
                      1 
                     
                    
                      N 
                     
                    
                    
                    
                      ∑ 
                     
                     
                     
                       i 
                      
                     
                       = 
                      
                     
                       1 
                      
                     
                    
                      N 
                     
                    
                    
                    
                      x 
                     
                    
                      p 
                     
                     
                     
                       ( 
                      
                     
                       i 
                      
                     
                       ) 
                      
                     
                    
                   
                  
                 
                
                
                 
                  
                   
                    
                    
                      x 
                     
                    
                      1 
                     
                     
                     
                       ( 
                      
                     
                       2 
                      
                     
                       ) 
                      
                     
                    
                   
                     − 
                    
                    
                    
                      1 
                     
                    
                      N 
                     
                    
                    
                    
                      ∑ 
                     
                     
                     
                       i 
                      
                     
                       = 
                      
                     
                       1 
                      
                     
                    
                      N 
                     
                    
                    
                    
                      x 
                     
                    
                      1 
                     
                     
                     
                       ( 
                      
                     
                       i 
                      
                     
                       ) 
                      
                     
                    
                   
                     , 
                    
                   
                     ⋯ 
                     
                   
                     , 
                    
                    
                    
                      x 
                     
                    
                      p 
                     
                     
                     
                       ( 
                      
                     
                       2 
                      
                     
                       ) 
                      
                     
                    
                   
                     − 
                    
                    
                    
                      1 
                     
                    
                      N 
                     
                    
                    
                    
                      ∑ 
                     
                     
                     
                       i 
                      
                     
                       = 
                      
                     
                       1 
                      
                     
                    
                      N 
                     
                    
                    
                    
                      x 
                     
                    
                      p 
                     
                     
                     
                       ( 
                      
                     
                       i 
                      
                     
                       ) 
                      
                     
                    
                   
                  
                 
                
                
                 
                  
                   
                   
                     ⋮ 
                    
                    
                     
                    
                   
                  
                 
                
                
                 
                  
                   
                    
                    
                      x 
                     
                    
                      1 
                     
                     
                     
                       ( 
                      
                     
                       N 
                      
                     
                       ) 
                      
                     
                    
                   
                     − 
                    
                    
                    
                      1 
                     
                    
                      N 
                     
                    
                    
                    
                      ∑ 
                     
                     
                     
                       i 
                      
                     
                       = 
                      
                     
                       1 
                      
                     
                    
                      N 
                     
                    
                    
                    
                      x 
                     
                    
                      1 
                     
                     
                     
                       ( 
                      
                     
                       i 
                      
                     
                       ) 
                      
                     
                    
                   
                     , 
                    
                   
                     ⋯ 
                     
                   
                     , 
                    
                    
                    
                      x 
                     
                    
                      p 
                     
                     
                     
                       ( 
                      
                     
                       N 
                      
                     
                       ) 
                      
                     
                    
                   
                     − 
                    
                    
                    
                      1 
                     
                    
                      N 
                     
                    
                    
                    
                      ∑ 
                     
                     
                     
                       i 
                      
                     
                       = 
                      
                     
                       1 
                      
                     
                    
                      N 
                     
                    
                    
                    
                      x 
                     
                    
                      p 
                     
                     
                     
                       ( 
                      
                     
                       i 
                      
                     
                       ) 
                      
                     
                    
                   
                  
                 
                
               
              
                ] 
               
              
              
              
                N 
               
              
                × 
               
              
                p 
               
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
              
              
                [ 
               
               
               
                 x 
                
                
                
                  ( 
                 
                
                  1 
                 
                
                  ) 
                 
                
               
              
                − 
               
               
               
                 X 
                
               
                 ˉ 
                
               
              
                , 
               
               
               
                 x 
                
                
                
                  ( 
                 
                
                  2 
                 
                
                  ) 
                 
                
               
              
                − 
               
               
               
                 X 
                
               
                 ˉ 
                
               
              
                , 
               
              
                ⋯ 
                
              
                , 
               
               
               
                 x 
                
                
                
                  ( 
                 
                
                  N 
                 
                
                  ) 
                 
                
               
              
                − 
               
               
               
                 X 
                
               
                 ˉ 
                
               
              
                ] 
               
              
             
               T 
              
             
            
           
          
         
        
       
         \begin{aligned} \mathcal X - \frac{1}{N} \mathcal I_N \cdot \mathcal I_N^T \cdot \mathcal X & = \begin{bmatrix} x_1^{(1)} - \frac{1}{N} \sum_{i=1}^{N}x_1^{(i)}, \cdots, x_p^{(1)} - \frac{1}{N} \sum_{i=1}^{N}x_p^{(i)} \\ x_1^{(2)} - \frac{1}{N} \sum_{i=1}^{N}x_1^{(i)}, \cdots, x_p^{(2)} - \frac{1}{N} \sum_{i=1}^{N}x_p^{(i)} \\ \vdots \\ x_1^{(N)} - \frac{1}{N} \sum_{i=1}^{N}x_1^{(i)}, \cdots, x_p^{(N)} - \frac{1}{N} \sum_{i=1}^{N}x_p^{(i)} \\ \end{bmatrix}_{N \times p} \\ & = \left[x^{(1)} - \bar {\mathcal X},x^{(2)} - \bar {\mathcal X},\cdots,x^{(N)} - \bar {\mathcal X}\right]^T \end{aligned} 
        
       
     X−N1IN⋅INT⋅X= 
                        
                         
                       x1(1)−N1∑i=1Nx1(i),⋯,xp(1)−N1∑i=1Nxp(i)x1(2)−N1∑i=1Nx1(i),⋯,xp(2)−N1∑i=1Nxp(i)⋮x1(N)−N1∑i=1Nx1(i),⋯,xp(N)−N1∑i=1Nxp(i) 
                        
                         
                       N×p=[x(1)−Xˉ,x(2)−Xˉ,⋯,x(N)−Xˉ]T
我们观察到中心化后的样本集合 
     
      
       
       
         H 
        
       
         ⋅ 
        
       
         X 
        
       
      
        \mathcal H \cdot \mathcal X 
       
      
    H⋅X其结果维度是 
     
      
       
       
         N 
        
       
         × 
        
       
         p 
        
       
      
        N\times p 
       
      
    N×p,意味着该矩阵不是方阵,更没有像  
       
        
         
         
           S 
          
         
        
          \mathcal S 
         
        
      S一样规整的特征值分解。 因此,首先对矩阵 
     
      
       
       
         H 
        
       
         ⋅ 
        
       
         X 
        
       
      
        \mathcal H \cdot \mathcal X 
       
      
    H⋅X进行 奇异值分解:  
      
       
        
        
          H 
         
        
          ⋅ 
         
        
          X 
         
        
          = 
         
        
          U 
         
        
          Σ 
         
         
         
           V 
          
         
           T 
          
         
        
       
         \mathcal H \cdot \mathcal X = \mathcal U \Sigma \mathcal V^T 
        
       
     H⋅X=UΣVT 其中,一般情况下,有: 其中 
     
      
       
        
        
          E 
         
        
          N 
         
        
       
         , 
        
        
        
          E 
         
        
          p 
         
        
       
      
        \mathcal E_N,\mathcal E_p 
       
      
    EN,Ep均表示单位向量。
- U N × N \mathcal U_{N \times N} UN×N是列正交矩阵,即 U \mathcal U U中任意列向量两两正交,显然有: U T U = E N \mathcal U^T \mathcal U = \mathcal E_N UTU=EN
- V p × p \mathcal V_{p \times p} Vp×p是正交矩阵,满足: V T V = V V T = E p \mathcal V^T\mathcal V = \mathcal V\mathcal V^T = \mathcal E_{p} VTV=VVT=Ep
此时已经将中心化后的数据集合 
     
      
       
        
        
          X 
         
        
          ^ 
         
        
       
      
        \hat {\mathcal X} 
       
      
    X^表示为 
     
      
       
       
         3 
        
       
      
        3 
       
      
    3个矩阵的乘法形式,继续使用这些矩阵表示样本集合的协方差矩阵 
       
        
         
         
           S 
          
         
        
          \mathcal S 
         
        
      S: 这里根据‘中心矩阵’ 
     
      
       
       
         H 
        
       
      
        \mathcal H 
       
      
    H的相关性质 
     
      
       
        
        
          H 
         
        
          T 
         
        
       
         = 
        
       
         H 
        
       
         , 
        
        
        
          H 
         
        
          2 
         
        
       
         = 
        
       
         H 
        
       
      
        \mathcal H^T = \mathcal H,\mathcal H^2 = \mathcal H 
       
      
    HT=H,H2=H,详见传送门  
      
       
        
         
          
           
           
             S 
            
           
          
          
           
            
             
            
              = 
             
             
             
               1 
              
             
               N 
              
             
             
             
               X 
              
             
               T 
              
             
            
              ⋅ 
             
            
              H 
             
            
              ⋅ 
             
            
              X 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               1 
              
             
               N 
              
             
             
             
               X 
              
             
               T 
              
             
            
              H 
             
            
              ⋅ 
             
            
              H 
             
            
              X 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               1 
              
             
               N 
              
             
             
             
               X 
              
             
               T 
              
             
             
             
               H 
              
             
               T 
              
             
            
              ⋅ 
             
            
              H 
             
            
              X 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               1 
              
             
               N 
              
             
            
              ( 
             
            
              H 
             
            
              X 
             
             
             
               ) 
              
             
               T 
              
             
            
              ⋅ 
             
            
              ( 
             
            
              H 
             
            
              X 
             
            
              ) 
             
            
           
          
         
        
       
         \begin{aligned} \mathcal S & = \frac{1}{N} \mathcal X^T \cdot \mathcal H \cdot \mathcal X\\ & = \frac{1}{N} \mathcal X^T \mathcal H \cdot \mathcal H \mathcal X \\ & = \frac{1}{N} \mathcal X^T \mathcal H^T \cdot \mathcal H \mathcal X \\ & = \frac{1}{N} (\mathcal H \mathcal X)^T\cdot (\mathcal H\mathcal X) \end{aligned} 
        
       
     S=N1XT⋅H⋅X=N1XTH⋅HX=N1XTHT⋅HX=N1(HX)T⋅(HX) 将奇异值分解结果带入上式: 注意:  
      
       
        
         
          
           
           
             S 
            
           
          
          
           
            
             
            
              = 
             
             
             
               1 
              
             
               N 
              
             
             
              
              
                ( 
               
              
                U 
               
              
                Σ 
               
               
               
                 V 
                
               
                 T 
                
               
              
                ) 
               
              
             
               T 
              
             
            
              ⋅ 
             
            
              U 
             
            
              Σ 
             
             
             
               V 
              
             
               T 
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               1 
              
             
               N 
              
             
            
              V 
             
             
             
               Σ 
              
             
               T 
              
             
             
             
               U 
              
             
               T 
              
             
            
              ⋅ 
             
            
              U 
             
            
              Σ 
             
             
             
               V 
              
             
               T 
              
             
            
           
          
         
        
       
         \begin{aligned} \mathcal S & = \frac{1}{N} \left(\mathcal U \Sigma\mathcal V^T\right)^T \cdot \mathcal U \Sigma\mathcal V^T \\ & = \frac{1}{N} \mathcal V\Sigma^T\mathcal U^T \cdot \mathcal U \Sigma\mathcal V^T \end{aligned} 
        
       
     S=N1(UΣVT)T⋅UΣVT=N1VΣTUT⋅UΣVT 继续化简,将 
     
      
       
        
        
          U 
         
        
          T 
         
        
       
         U 
        
       
         = 
        
        
        
          E 
         
        
          N 
         
        
       
      
        \mathcal U^T\mathcal U = \mathcal E_N 
       
      
    UTU=EN带入(消掉了): 注意,虽然 
     
      
       
       
         Σ 
        
       
      
        \Sigma 
       
      
    Σ是对角矩阵,但是它不一定是方阵,因此 
     
      
       
        
        
          Σ 
         
        
          T 
         
        
       
         Σ 
        
       
      
        \Sigma^T\Sigma 
       
      
    ΣTΣ不能写成 
     
      
       
        
        
          Σ 
         
        
          2 
         
        
       
      
        \Sigma^2 
       
      
    Σ2的形式,但 
     
      
       
        
        
          Σ 
         
        
          T 
         
        
       
         Σ 
        
       
      
        \Sigma^T\Sigma 
       
      
    ΣTΣ同样是一个对角阵,并且是一个方阵,该方阵内对角线所有元素是 
     
      
       
       
         Σ 
        
       
      
        \Sigma 
       
      
    Σ对角线元素的平方。  
      
       
        
        
          S 
         
        
          = 
         
        
          V 
         
        
          ( 
         
         
         
           Σ 
          
         
           T 
          
         
        
          Σ 
         
        
          ) 
         
         
         
           V 
          
         
           T 
          
         
        
       
         \mathcal S = \mathcal V(\Sigma^T\Sigma)\mathcal V^T 
        
       
     S=V(ΣTΣ)VT 对比协方差矩阵 
     
      
       
       
         S 
        
       
      
        \mathcal S 
       
      
    S的特征值分解,确实存在相似之处:  
      
       
        
         
         
           { 
          
          
           
            
             
              
              
                S 
               
              
                = 
               
              
                G 
               
              
                ⋅ 
               
              
                K 
               
              
                ⋅ 
               
               
               
                 G 
                
               
                 T 
                
               
              
             
            
           
           
            
             
              
              
                S 
               
              
                = 
               
              
                V 
               
              
                ( 
               
               
               
                 Σ 
                
               
                 T 
                
               
              
                Σ 
               
              
                ) 
               
               
               
                 V 
                
               
                 T 
                
               
              
             
            
           
          
         
        
          → 
         
         
         
           { 
          
          
           
            
             
              
              
                G 
               
              
                = 
               
              
                V 
               
              
             
            
           
           
            
             
              
              
                K 
               
              
                = 
               
               
               
                 Σ 
                
               
                 T 
                
               
              
                Σ 
               
              
             
            
           
          
         
        
       
         \begin{cases}\mathcal S = \mathcal G \cdot \mathcal K \cdot \mathcal G^T \\ \mathcal S = \mathcal V(\Sigma^T\Sigma)\mathcal V^T \end{cases} \to \begin{cases} \mathcal G = \mathcal V \\ \mathcal K = \Sigma^T\Sigma\end{cases} 
        
       
     {S=G⋅K⋅GTS=V(ΣTΣ)VT→{G=VK=ΣTΣ 这种方式提供了另外一种思路:没有必要将协方差矩阵 
       
        
         
         
           S 
          
         
        
          \mathcal S 
         
        
      S求解出来再执行特征值分解,而是直接对中心化后的数据集合 
       
        
         
         
           H 
          
         
           ⋅ 
          
         
           X 
          
         
        
          \mathcal H\cdot \mathcal X 
         
        
      H⋅X进行奇异值分解,而奇异值分解产生的矩阵 
       
        
         
         
           V 
          
         
        
          \mathcal V 
         
        
      V就是最优特征方向对应的正交基。
基于协方差矩阵的表现形式: 
     
      
       
       
         S 
        
       
         = 
        
        
        
          X 
         
        
          T 
         
        
        
        
          H 
         
        
          T 
         
        
       
         ⋅ 
        
       
         H 
        
       
         X 
        
       
      
        \mathcal S = \mathcal X^T \mathcal H^T \cdot \mathcal H \mathcal X 
       
      
    S=XTHT⋅HX 定义如下矩阵形式:  
      
       
        
         
          
           
           
             T 
            
           
          
          
           
            
             
            
              = 
             
            
              H 
             
            
              X 
             
            
              ⋅ 
             
             
             
               X 
              
             
               T 
              
             
            
              H 
             
            
           
          
         
        
       
         \begin{aligned} \mathcal T & = \mathcal H \mathcal X \cdot \mathcal X^T\mathcal H \\ \end{aligned} 
        
       
     T=HX⋅XTH 对奇异值分解结果带入 
     
      
       
       
         T 
        
       
      
        \mathcal T 
       
      
    T中: 将 
     
      
       
        
        
          V 
         
        
          T 
         
        
       
         V 
        
       
         = 
        
        
        
          E 
         
        
          p 
         
        
       
      
        \mathcal V^T\mathcal V = \mathcal E_p 
       
      
    VTV=Ep带入式中(消掉)。 注意:此时的 
     
      
       
       
         Σ 
        
        
        
          Σ 
         
        
          T 
         
        
       
      
        \Sigma\Sigma^T 
       
      
    ΣΣT依然是一个对角阵,并且是一个方阵。但与 
     
      
       
        
        
          Σ 
         
        
          T 
         
        
       
         Σ 
        
       
      
        \Sigma^T\Sigma 
       
      
    ΣTΣ之间存在区别。  
      
       
        
         
          
           
           
             T 
            
           
          
          
           
            
             
            
              = 
             
             
             
               ( 
              
             
               U 
              
             
               Σ 
              
              
              
                V 
               
              
                T 
               
              
             
               ) 
              
             
            
              ⋅ 
             
             
              
              
                ( 
               
              
                U 
               
              
                Σ 
               
               
               
                 V 
                
               
                 T 
                
               
              
                ) 
               
              
             
               T 
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
            
              U 
             
            
              Σ 
             
             
             
               V 
              
             
               T 
              
             
            
              ⋅ 
             
            
              V 
             
             
             
               Σ 
              
             
               T 
              
             
             
             
               U 
              
             
               T 
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
            
              U 
             
            
              Σ 
             
             
             
               Σ 
              
             
               T 
              
             
             
             
               U 
              
             
               T 
              
             
            
           
          
         
        
       
         \begin{aligned} \mathcal T &= \left(\mathcal U \Sigma \mathcal V^T\right) \cdot \left(\mathcal U \Sigma \mathcal V^T\right)^T \\ & = \mathcal U\Sigma \mathcal V^T \cdot \mathcal V\Sigma^T\mathcal U^T \\ & = \mathcal U \Sigma \Sigma^T\mathcal U^T \end{aligned} 
        
       
     T=(UΣVT)⋅(UΣVT)T=UΣVT⋅VΣTUT=UΣΣTUT
通过观察发现,矩阵 
     
      
       
       
         T 
        
       
      
        \mathcal T 
       
      
    T与协方差矩阵 
     
      
       
       
         S 
        
       
      
        \mathcal S 
       
      
    S之间存在相同的(有效的)特征值。 需要解释一下,上面说到 
     
      
       
        
        
          Σ 
         
        
          T 
         
        
       
         Σ 
        
       
      
        \Sigma^T\Sigma 
       
      
    ΣTΣ和 
     
      
       
       
         Σ 
        
        
        
          Σ 
         
        
          T 
         
        
       
      
        \Sigma\Sigma^T 
       
      
    ΣΣT确实是大小不同的对角方阵。但即便大小不同,对角方阵中的‘非零元素值’(特征值)均相同,并且是 
     
      
       
       
         Σ 
        
       
      
        \Sigma 
       
      
    Σ矩阵对应元素的平方结果。
示例:已知对角矩阵 Σ ^ \hat {\Sigma} Σ^表示如下: Σ ^ = [ a , 0 0 , b 0 , 0 ] 3 × 2 \hat \Sigma = \begin{bmatrix}a,0 \\ 0,b \\ 0,0\end{bmatrix}_{3 \times 2} Σ^= a,00,b0,0 3×2 对应的 Σ T Σ \Sigma^T\Sigma ΣTΣ和 Σ Σ T \Sigma\Sigma^T ΣΣT 表示如下: Σ T Σ = [ a 2 , 0 , 0 0 , b 2 , 0 0 , 0 , 0 ] 3 × 3 Σ Σ T = [ a 2 , 0 0 , b 2 ] 2 × 2 \Sigma^T\Sigma = \begin{bmatrix}a^2,0,0 \\ 0,b^2,0 \\ 0,0,0\end{bmatrix}_{3 \times 3} \Sigma\Sigma^T = \begin{bmatrix}a^2,0 \\ 0,b^2\end{bmatrix}_{2 \times 2} ΣTΣ= a2,0,00,b2,00,0,0 3×3ΣΣT=[a2,00,b2]2×2 我们发现:即便两矩阵结果不同,但是他们的非零特征值相同,并且无论 Σ \Sigma Σ什么形状,它们之间只差一种特征值: 0 0 0,而在降维过程中选择特征向量时,特征值为 0 0 0的特征向量不含任何权重,从而可以直接忽略。
至此,知道了矩阵 T \mathcal T T和协方差矩阵 S \mathcal S S共用同一组特征值,那么 T \mathcal T T到底是什么?,它有什么作用?
回顾最大投影方差/最小重构代价角度的主成分分析,主成分分析的具体操作流程表示如下:
- 无论是协方差矩阵 S \mathcal S S的 特征值分解 还是中心化数据集合 H ⋅ X \mathcal H \cdot \mathcal X H⋅X的 奇异值分解,都需要找到由大到小的特征值序列;
- 找到特征值 λ k ( k = 1 , 2 , ⋯ , q ) \lambda_k(k=1,2,\cdots,q) λk(k=1,2,⋯,q)对应的特征向量(主成分) u ⃗ k ( k = 1 , 2 , ⋯ , q ) \vec u_k(k=1,2,\cdots,q) u k(k=1,2,⋯,q);
- 通过特征向量 
      
       
        
         
          
          
            u 
           
          
            k 
           
          
         
           ⃗ 
          
         
        
          ( 
         
        
          k 
         
        
          = 
         
        
          1 
         
        
          , 
         
        
          2 
         
        
          , 
         
        
          ⋯ 
          
        
          , 
         
        
          q 
         
        
          ) 
         
        
       
         \vec {u_k}(k=1,2,\cdots,q) 
        
       
     uk 
              
               
             (k=1,2,⋯,q)找到 原始样本点 
        
         
          
           
           
             x 
            
            
            
              ( 
             
            
              i 
             
            
              ) 
             
            
           
          
            ∈ 
           
          
            X 
           
          
         
           x^{(i)} \in \mathcal X 
          
         
       x(i)∈X在新坐标轴 
        
         
          
           
            
            
              u 
             
            
              k 
             
            
           
             ⃗ 
            
           
          
         
           \vec {u_k} 
          
         
       uk 
                
                 
               上各分量的坐标结果: 将‘原始坐标’与‘新坐标’比对一下~x ( i ) = ( x 1 ( i ) , x 2 ( i ) , ⋯ , x p ( i ) ) p × 1 T u ( i ) = ( u 1 ( i ) , u 2 ( i ) , ⋯ , u q ( i ) ) q × 1 T u ( i ) = [ ( x ( i ) − X ˉ ) T ⋅ u ⃗ ] ⋅ u ⃗ u ⃗ = ( u 1 , u 2 , ⋯ , u q ) T \begin{aligned} x^{(i)} & = \left(x_1^{(i)},x_2^{(i)},\cdots,x_p^{(i)}\right)^T_{p \times 1} \\ u^{(i)} & = \left(u_1^{(i)},u_2^{(i)},\cdots,u_q^{(i)}\right)^T_{q \times 1} \\ u^{(i)} & = \left[\left(x^{(i)} - \bar {\mathcal X}\right)^T \cdot \vec u\right] \cdot \vec u \\ \vec u & = (u_1,u_2,\cdots,u_q)^T \end{aligned} x(i)u(i)u(i)u =(x1(i),x2(i),⋯,xp(i))p×1T=(u1(i),u2(i),⋯,uq(i))q×1T=[(x(i)−Xˉ)T⋅u ]⋅u =(u1,u2,⋯,uq)T
至此,观察到基于 S \mathcal S S特征值分解的主成分分析必须通过找到对应分量的坐标轴,并进行映射(投影),才能得到对应分量的坐标。
但对应基于矩阵 T \mathcal T T奇异值分解的操作可以直接产生对应分量的坐标,而跳过寻找主成分的操作。我们称这种操作为主坐标分析(Principal Coordinate Analysis,PCoA)。
主坐标分析的推导过程为什么矩阵 T \mathcal T T能够实现 直接获取坐标值 的操作呢?我们将主成分分析中的新坐标用矩阵的方式表示出来:
根据 
     
      
       
       
         S 
        
       
      
        \mathcal S 
       
      
    S的奇异值分解:  
      
       
        
        
          S 
         
        
          = 
         
        
          V 
         
        
          ( 
         
         
         
           Σ 
          
         
           T 
          
         
        
          Σ 
         
        
          ) 
         
         
         
           V 
          
         
           T 
          
         
        
       
         \mathcal S = \mathcal V (\Sigma^T\Sigma) \mathcal V^T 
        
       
     S=V(ΣTΣ)VT 我们得出正交矩阵 
     
      
       
       
         V 
        
       
      
        \mathcal V 
       
      
    V中的各向量即最优特征向量,因此,降维后的数据集合 
     
      
       
       
         U 
        
       
      
        U 
       
      
    U表示如下:  
     
      
       
       
         U 
        
       
      
        U 
       
      
    U表示所有样本点降维后,新坐标组成的矩阵。  
      
       
        
        
          U 
         
        
          = 
         
        
          H 
         
        
          X 
         
        
          ⋅ 
         
        
          V 
         
        
       
         U = \mathcal H \mathcal X \cdot \mathcal V 
        
       
     U=HX⋅V
使用奇异值分解继续对上式进行操作: U = H X ⋅ V = ( U Σ V T ) ⋅ V = U Σ N × p U= \mathcal H \mathcal X \cdot \mathcal V = (\mathcal U\Sigma\mathcal V^T) \cdot \mathcal V = \mathcal U \Sigma_{N\times p} U=HX⋅V=(UΣVT)⋅V=UΣN×p
关于矩阵 
      
       
        
        
          T 
         
        
       
         \mathcal T 
        
       
     T的表示: 
     
      
       
       
         T 
        
       
         = 
        
       
         U 
        
       
         Σ 
        
        
        
          Σ 
         
        
          T 
         
        
        
        
          U 
         
        
          T 
         
        
       
      
        \mathcal T = \mathcal U \Sigma \Sigma^T\mathcal U^T 
       
      
    T=UΣΣTUT,我们给 
     
      
       
       
         T 
        
       
      
        \mathcal T 
       
      
    T 右乘一个 
       
        
         
         
           U 
          
         
           Σ 
          
         
        
          \mathcal U\Sigma 
         
        
      UΣ: 将 
     
      
       
        
        
          U 
         
        
          T 
         
        
       
         U 
        
       
         = 
        
        
        
          E 
         
        
          N 
         
        
       
      
        \mathcal U^T\mathcal U = \mathcal E_N 
       
      
    UTU=EN代入式中。  
      
       
        
         
          
           
            
            
              T 
             
            
              ⋅ 
             
            
              U 
             
            
              Σ 
             
            
           
          
          
           
            
             
            
              = 
             
            
              U 
             
            
              Σ 
             
             
             
               Σ 
              
             
               T 
              
             
             
             
               U 
              
             
               T 
              
             
            
              ⋅ 
             
            
              U 
             
            
              Σ 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
            
              U 
             
            
              Σ 
             
             
             
               Σ 
              
             
               T 
              
             
            
              Σ 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
            
              U 
             
            
              Σ 
             
            
              ( 
             
             
             
               Σ 
              
             
               T 
              
             
            
              Σ 
             
            
              ) 
             
            
           
          
         
        
       
         \begin{aligned} \mathcal T \cdot \mathcal U\Sigma & = \mathcal U \Sigma \Sigma^T\mathcal U^T \cdot \mathcal U\Sigma \\ & = \mathcal U \Sigma \Sigma^T\Sigma \\ & = \mathcal U\Sigma (\Sigma^T\Sigma) \end{aligned} 
        
       
     T⋅UΣ=UΣΣTUT⋅UΣ=UΣΣTΣ=UΣ(ΣTΣ) 这明显就是 特征值的定义式。
我们发现, Σ T Σ \Sigma^T\Sigma ΣTΣ依旧是特征值矩阵,其对角线上的元素是特征值和 S \mathcal S S奇异值分解后的特征值没有任何变化,而 U Σ \mathcal U \Sigma UΣ就是特征值对应特征向量构成的矩阵,也就是坐标矩阵。
从主坐标分析角度观察,根本不需要求解 V \mathcal V V,或者说根本不需要求解 H X ⋅ V \mathcal H \mathcal X \cdot \mathcal V HX⋅V,即向量投影操作,而是通过直接对 T \mathcal T T进行奇异值分解,求解 U Σ \mathcal U\Sigma UΣ即可得到降维后的新坐标。
也可以从维度角度观察:
- 主成分分析中进行奇异值分解的 S \mathcal S S是 p × p p\times p p×p矩阵,是基于样本集合维度特征的协方差矩阵,它是对数据特征进行分解; S = X T H ⋅ X = ( H X ) T ⋅ ( H X ) \mathcal S = \mathcal X^T \mathcal H \cdot \mathcal X = (\mathcal H \mathcal X)^T \cdot (\mathcal H \mathcal X) S=XTH⋅X=(HX)T⋅(HX)
- 而主坐标分析中进行奇异值分解的 T \mathcal T T是 N × N N \times N N×N矩阵,它可以理解为样本內积,它是对数据本身直接进行分解。 T = H X X T H = ( H X ) ⋅ ( H X ) T \mathcal T = \mathcal H \mathcal X \mathcal X^T\mathcal H = (\mathcal H\mathcal X) \cdot (\mathcal H\mathcal X)^T T=HXXTH=(HX)⋅(HX)T
至此,降维部分介绍全部结束,下一节将介绍概率图模型。
相关参考: 机器学习-降维5-主成分分析(PCA)-SVD角度

 
                 
    