对于聚类,Mahout 输入需要采用向量形式。有两种类型的向量实现。一种是稀疏向量,另一种是密集向量。
两者有什么区别?
稀疏和密集的使用场景?
从概念上讲,稀疏向量中的大多数值都为零,而在稠密向量中则不是。对于稠密矩阵和稀疏矩阵也是如此。条款sparse and dense通常描述这些属性,不仅在 Mahout 中。
在马胡特DenseVector
假设没有太多零条目,因此“将向量实现为双精度数组”(org.apache.mahout.math.DenseVector http://archive.cloudera.com/cdh/3/mahout-0.5-cdh3u6/mahout-math/org/apache/mahout/math/DenseVector.html)。相反,稀疏向量实现AbstractVector
, e.g. RandomAccessSparseVector
and SequentialAccessSparseVector
,使用根本不存储零值的不同数据结构。
采用哪一个取决于您要存储在向量中的数据。如果您预计大部分值为零,那么稀疏向量实现会更节省空间,但是如果您将其用于只有几个零值的数据,则会引入大量数据结构开销,这可能会导致性能更差。
密集向量与稀疏向量的选择不会影响向量的计算结果,只会影响内存使用和计算速度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)