algorithm - 快速恢复领先奇异向量的方法

标签 algorithm linear-algebra svd

给定一个矩阵,有没有一种快速的算法可以恢复前导奇异向量,即找到最接近 Frobenius 范数矩阵的 rank-1 矩阵?

我所说的快速算法是指任何比以下算法更快的东西:

  [U, S, V] = svd(A);
  A1 = U(:,1)*S(1,1)*V(:,1)';

最佳答案

所以 power method可用于此目的:

C = A*A';
v1 = power_method(C);
v2 = nanmean(A./v1,1)';
A1 = v1*v2';

但在我的实验中,它并不总是比高度优化的完整 svd 更快:

[U,S,V] = svd(A); 
A1 = U(:,1)*S(1,1)*V(:,1)';

但我想对于大矩阵它可能会更好。

关于algorithm - 快速恢复领先奇异向量的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56619954/

相关文章:

MySQL矩阵乘法

matlab - 求解过度参数化系统中的变量

algorithm - 在 3 维移动目标上发射射弹(直线轨迹)

python - 如何在经过训练的 SVD 模型上验证测试集?

Python:如何将列表/数组/pd.Series中的零值设置为下一个非零值?

java - 所有排列的高效计算

python - 如何使用经过训练的 SVD 模型获取单词的向量表示

machine-learning - PCA 和 SVD 如何分布在 MLlib 或 Mahout 等库中

JavaScript 最长公共(public)子序列

java - 测试点是否在二维空间的线范围内