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


Python pyspark RowMatrix.columnSimilarities用法及代碼示例


本文簡要介紹 pyspark.mllib.linalg.distributed.RowMatrix.columnSimilarities 的用法。

用法:

columnSimilarities(threshold=0.0)

計算此矩陣的列之間的相似性。

閾值參數是估計質量和計算成本之間的權衡旋鈕。

默認閾值設置 0 保證確定性正確的結果,但使用計算歸一化點積的蠻力方法。

將閾值設置為正值使用采樣方法,並且比蠻力方法產生的計算成本要低得多。然而,計算的相似性將是估計值。

對於相似度大於給定相似度閾值的那些列對,抽樣保證relative-error 的正確性。

為了說明保證,我們設置了一些符號:

  • 令 A 為該矩陣中幅值最小的非零元素。

  • 令 B 為該矩陣中幅度最大的非零元素。

  • 令 L 為每行的最大非零數。

例如,對於 {0,1} 矩陣:A=B=1。另一個例子,對於 Netflix 矩陣:A=1, B=5

對於那些高於閾值的列對,計算出的相似度在 20% 的相對誤差內是正確的,概率至少為 1 - (0.981)^10/B^

shuffle 大小由以下兩個表達式中的較小者限定:

  • O(n log(n) L /(閾值 * A))

  • O(m L^2^)

後者是蠻力方法的成本,因此對於非零閾值,成本總是比蠻力方法便宜。

2.0.0 版中的新函數。

參數

threshold浮點數,可選

設置為 0 以獲得確定性保證的正確性。使用上述成本與估計質量權衡來估計高於此閾值的相似性。

返回

CoordinateMatrix

該矩陣各列之間餘弦相似度的 n x n 稀疏上三角CoordinateMatrix。

例子

>>> rows = sc.parallelize([[1, 2], [1, 5]])
>>> mat = RowMatrix(rows)
>>> sims = mat.columnSimilarities()
>>> sims.entries.first().value
0.91914503...

2.0.0 版中的新函數。

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.mllib.linalg.distributed.RowMatrix.columnSimilarities。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。