【问题标题】:Clustering -- Sparse vector and Dense Vector聚类——稀疏向量和密集向量
【发布时间】:2013-07-28 10:21:27
【问题描述】:

对于聚类,Mahout 输入需要采用矢量形式。有两种类型的向量实现。一个是稀疏向量,另一个是密集向量。

两者有什么区别?

稀疏和密集的使用场景?

【问题讨论】:

    标签: mahout


    【解决方案1】:

    从概念上讲,稀疏向量中的大多数值都是零,而在密集向量中则不是。对于密集和稀疏矩阵也是如此。术语 sparsedense 通常描述这些属性,不仅在 Mahout 中。

    在 Mahout 中,DenseVector 假定没有太多的零条目,因此“将向量实现为双精度数组”(org.apache.mahout.math.DenseVector)。相比之下,AbstractVector 的稀疏向量实现,例如RandomAccessSparseVectorSequentialAccessSparseVector,使用不同的数据结构,根本不存储零值。

    取哪一个取决于您要存储在向量中的数据。如果您期望大部分为零值,则稀疏向量实现会更节省空间,但是如果您将它用于只有几个零值的数据,则会引入大量数据结构开销,这可能会导致性能下降。

    稠密向量与稀疏向量的选择不会影响你对向量的计算结果,只会影响内存使用和计算速度。

    【讨论】:

      猜你喜欢
      • 2015-10-09
      • 2020-05-22
      • 1970-01-01
      • 2018-12-25
      • 2017-05-10
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 2017-05-18
      相关资源
      最近更新 更多