當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。