评价此页

torch.pca_lowrank#

torch.pca_lowrank(A, q=None, center=True, niter=2)[source]#

对低秩矩阵、这类矩阵的批次或稀疏矩阵执行线性主成分分析 (PCA)。

此函数返回一个命名元组 (U, S, V),这是中心化矩阵 AA 的奇异值分解的近似值,使得 AUdiag(S)VHA \approx U \operatorname{diag}(S) V^{\text{H}}

注意

(U, S, V) 与 PCA 的关系如下

  • A 是一个具有 m 个样本和 n 个特征的数据矩阵

  • V 的列是主方向

  • S ** 2 / (m - 1) 包含 A^T A / (m - 1) 的特征值,当提供 center=True 时,这是 A 的协方差。

  • matmul(A, V[:, :k]) 将数据投影到前 k 个主成分

注意

与标准 SVD 不同,返回矩阵的大小取决于指定的秩和 q 值,如下所示

  • U 是 m x q 矩阵

  • S 是 q 维向量

  • V 是 n x q 矩阵

注意

为了获得可重复的结果,请重置伪随机数生成器的种子

参数
  • A (Tensor) – 输入张量,大小为 (*, m, n)

  • q (int, optional) – A 的一个略微高估的秩。默认值为 q = min(6, m, n)

  • center (bool, optional) – 如果为 True,则中心化输入张量,否则,假设输入已中心化。

  • niter (int, optional) – 要进行的子空间迭代次数;niter 必须是非负整数,默认为 2。

返回类型

tuple[torch.Tensor, torch.Tensor, torch.Tensor]

参考文献

- Nathan Halko, Per-Gunnar Martinsson, and Joel Tropp, Finding
  structure with randomness: probabilistic algorithms for
  constructing approximate matrix decompositions,
  arXiv:0909.4061 [math.NA; math.PR], 2009 (available at
  `arXiv <http://arxiv.org/abs/0909.4061>`_).