gpt4 book ai didi

python - 稀疏与密集向量 PySpark

转载 作者:行者123 更新时间:2023-11-28 18:09:46 31 4
gpt4 key购买 nike

我如何知道我应该在 PySpark 中使用稀疏表示还是密集表示?我理解它们之间的区别(稀疏通过仅存储非零索引和值来节省内存),但是在性能方面,是否有任何通用的启发式方法来描述何时使用稀疏向量而不是密集向量?

是否存在一般的“截止”维度和 0 值的百分比,超过该值通常使用稀疏向量会更好?如果没有,我应该如何做决定?谢谢。

最佳答案

要记住的是 pyspark.ml.linalg.Vectorpyspark.mllib.linalg.Vector 只是 Python 和 Java API 之间的兼容层。没有全功能或优化的线性代数实用程序,您不应该这样使用它们。可用的操作不是为性能而设计的,就是在幕后转换为标准 NumPy 数组。

当与其他 ml/mllib 工具一起使用时,它们将被序列化并转换为 Java 等效项,因此 Python 表示性能几乎无关紧要。

这意味着最大的实际问题是存储,一个简单的经验法则是:

  • 如果平均一半的条目为零,则最好使用 SparseVector
  • 否则最好使用DenseVector

关于python - 稀疏与密集向量 PySpark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51385657/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com