当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyspark RowMatrix.computeSVD用法及代码示例


本文简要介绍 pyspark.mllib.linalg.distributed.RowMatrix.computeSVD 的用法。

用法:

computeSVD(k, computeU=False, rCond=1e-09)

计算 RowMatrix 的奇异值分解。

给定的维数 (m X n) 的行矩阵 A 被分解为 U * s * V'T 其中

  • U:(m X k)(左奇异向量)是 RowMatrix,其列是 (A X A’) 的特征向量

  • s:DenseVector 由特征值(奇异值)的平方根按降序排列组成。

  • v: (n X k)(右奇异向量)是一个矩阵,其列是 (A’ X A) 的特征向量

有关实现的更多具体细节,请参阅 Scala 文档。

2.2.0 版中的新函数。

参数

kint

要保留的前导奇异值的数量(0 < k <= n)。如果在达到最大 Arnoldi 更新迭代次数之前存在数字零奇异值或没有足够的 Ritz 值收敛(如果矩阵 A 为 ill-conditioned),则它可能返回小于 k。

computeU布尔型,可选

是否计算 U。如果设置为 True,则 U 由 A * V * s^-1 计算

rCond浮点数,可选

倒数条件数。所有小于 rCond * s[0] 的奇异值都被视为零,其中 s[0] 是最大的奇异值。

返回

SingularValueDecomposition

例子

>>> rows = sc.parallelize([[3, 1, 1], [-1, 3, 1]])
>>> rm = RowMatrix(rows)
>>> svd_model = rm.computeSVD(2, True)
>>> svd_model.U.rows.collect()
[DenseVector([-0.7071, 0.7071]), DenseVector([-0.7071, -0.7071])]
>>> svd_model.s
DenseVector([3.4641, 3.1623])
>>> svd_model.V
DenseMatrix(3, 2, [-0.4082, -0.8165, -0.4082, 0.8944, -0.4472, 0.0], 0)

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.mllib.linalg.distributed.RowMatrix.computeSVD。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。