CUR分解
要理解CUR分解,需要先看下SVD分解。SVD理论以及Python实现
算法流程
给定输入的矩阵A。
A = C ∗ U ∗ R A = C* U *R A=C∗U∗R
- 随机选r个列构成C和r个行构成R(也可以使用,平方和加权过的行和列(常用))
- 然后选取W矩阵(C和R的交集,也就是被选出来的部分,在C和R中同时出现的A矩阵中的位置。)
- 对W做SVD分解,得到 X ∑ Y T X\sum Y^T X∑YT
- 对 ∑ \sum ∑做广义逆矩阵 ( ∑ ) + (\sum)^+ (