Ar = U[:, :r] @ np.diag(S[:r]) @ V[:r, :]中的r怎么确定
时间: 2024-03-30 19:33:30 浏览: 110
在截断奇异值分解中,我们需要决定保留多少个奇异值。这个数字通常称为截断因子,用 $r$ 表示。
通常情况下,我们可以通过观察奇异值向量 $S$ 的衰减情况来选择截断因子 $r$。我们可以将 $S$ 绘制成折线图,观察随着奇异值的增大,其相对大小的变化情况。一般来说,当奇异值变得很小,且其相对大小的变化也不大时,就可以选择截断因子 $r$。
通常情况下,可以将截断因子 $r$ 取为使得保留的奇异值所占比例达到某个设定阈值。例如,我们可以将阈值设为 $0.9$,然后选取最小的 $r$,使得前 $r$ 个奇异值的累计比例大于 $0.9$。具体来说,我们可以计算奇异值向量 $S$ 的累计比例:
$$ p_k = \frac{\sum_{i=1}^k S_i}{\sum_{i=1}^m S_i} $$
其中 $m$ 是奇异值向量的长度,$k \leq m$。然后,我们可以选择最小的 $r$,使得 $p_r \geq 0.9$。
当然,截断因子 $r$ 的选择也需要考虑到计算效率和重构误差之间的平衡。如果 $r$ 取得太小,可能会导致重构误差较大;如果 $r$ 取得太大,可能会导致计算量过大。因此,需要根据具体情况进行选择。
阅读全文