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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。