CUR Dimension Reduction CUR分解 降维

SVD分解的缺点在于:

  1. 计算比较耗时
  2. 存储UV矩阵比较占空间

CUR分解是另外一个选择,其目标是:找到输入矩阵的一个“尽可能好”的分解为三个矩阵的乘积A = CUR,SVD分解是完美的分解(通过允许误差来加速计算)。其中:

  1. C矩阵由A矩阵中的列构成
  2. R矩阵由A矩阵中的行构成
  3. U矩阵由C,R的交集进行伪逆求得

C矩阵获得:

  • 输入:矩阵Ain mathbb{R}^{mtimes n},抽样数量c
  • 输出:C_d in mathbb{R}^{mtimes c}
    1. for x = 1:n (计算列的分布)
    2.     P(x) = sum_i A(i,x)^2 / sum_{i,j} A(i,j)^2
    3. for i = 1:c
    4.     Pick  j in 1: n
    5.     Comupte C_d(:,i) = A(:,j)/sqrt{cP(j)}

R矩阵的获得的方式与上面类似。

U矩阵的计算方式为:

  1. 取C矩阵和R矩阵的“交集”W
  2. U为W的伪逆

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *