我在内部使用Mahout API进行朴素贝叶斯分类器。其中一个功能是SparseVectorsFromSequenceFiles,虽然我尝试了旧的Google搜索,但我仍然没有说明稀疏向量是什么。 最接近我的解释是这个site这并没有帮助我理解tbh。稀疏矢量,它们是什么?
2
A
回答
2
概念上,向量表示数组的泛化,即允许使用索引对其元素进行任意访问的数据结构。 Java的内置阵列Vector<T>
和ArrayList<T>
是实现“规则”(密集)向量概念的数据结构示例。
密集向量通过使用简单的公式baseAddress + index * elementSize
将向量索引转换为内存地址来提供对其元素的恒定时间访问。这意味着内存中的大小与向量需要支持的最大索引成比例。
虽然这是可以接受的情况下,您希望放入一个向量中的元素数量和最高可能的索引相对接近。但是,如果您希望使用大范围的索引来索引相对较少的元素(例如,分布在具有100,000个索引的向量中的1,000个元素),则分配100,000个空间是很浪费的。您可以通过实现暴露向量接口的数据结构来节省内存,但会使用较少的内存用于内部表示。
链接中的示例显示了一种可能的实现。其他实现也是可能的,这取决于数据中索引的分布。如果索引是随机分布的,则可以使用HashMap<Integer,T>
作为稀疏向量的后备存储。如果索引聚集在一起,则可以通过“页面”拆分索引空间,并将真实数组仅分配给需要的页面。这种实现与物理内存分配给虚拟内存空间的方式类似。
相关问题
- 1. 稀疏矢量pyspark
- 2. 从稀疏矢量列表创建稀疏矩阵
- 3. 稀疏向量VS密集矢量
- 4. 各种助推ublas稀疏矢量之间有什么区别?
- 5. pyspark中的聚合稀疏矢量
- 6. 如何将ML稀疏矢量类型的变量转换为MLlib稀疏矢量类型?
- 7. 将密集矢量转换为PySpark中的稀疏矢量
- 8. 聚类 - 稀疏矢量和密集矢量
- 9. 在Matlab中添加稀疏矢量一片茂密的矢量
- 10. Scipy稀疏矩阵和稀疏矢量之间的欧几里德距离
- 11. scipy:将稀疏矢量添加到稀疏矩阵的特定行中
- 12. 什么是git稀疏结帐和什么情况下它是有用的?
- 13. postgresql指数 - 它们密集还是稀疏?
- 14. 是稀疏数据
- 15. 如何将稠密矢量转换为CUDA中的稀疏矢量?
- 16. 什么是矢量?
- 17. pyspark:稀疏向量到scipy稀疏矩阵
- 18. 链接结果TFIDF稀疏矢量原始凭证在星火
- 19. 如何高效地在python中创建一个稀疏矢量?
- 20. 拆箱,(稀疏)矩阵和haskell矢量库
- 21. 更有效的解决方案?字典稀疏矢量
- 22. Simulink/xPC中可用的稀疏矩阵矢量乘法?
- 23. 真正缩放在Cusp中稀疏矩阵矢量乘法?
- 24. 如何从Matlab中的稀疏矢量中提取有效值?
- 25. 在熊猫中快速稀疏矢量加法
- 26. 多GPU上的稀疏矩阵矢量产品
- 27. Pyspark稀疏矢量数据帧到scipy.spare而不收集
- 28. 查找矢量中哪些点更稀疏
- 29. 如何在Python中对角化稀疏csr 1D矩阵(矢量)?
- 30. 用广播元素添加稀疏的scipy矩阵矢量
我只是需要它以稍微不同的方式解释。有时可以帮助别人用不同的方式解释它,而@dasblinkenlight就是这么做的。 –