【问题标题】:How sparse does a matrix need to be to be worth representing as sparse?矩阵需要有多稀疏才值得表示为稀疏?
【发布时间】:2016-04-04 23:54:45
【问题描述】:

在 R 中,我正在尝试使用一个大型矩阵(39,146,166 行 x 127 列),但我遇到了许多操作的内存问题。我已经确定矩阵中大约 35% 的条目是非零的,其余的都是零。这是否足够稀疏,以至于我可以使用 R 的稀疏矩阵类之一来节省一些表示该矩阵的内存?确定何时值得稀疏表示矩阵的经验法则是什么?

【问题讨论】:

标签: r memory matrix sparse-matrix


【解决方案1】:

我认为稀疏表示不会那么紧凑。除了隐式零之外,每个数字项都需要三个数字。因此,即使其中两个是 4 字节整数,内存中的空间仍将大于“串行”存储策略。

据此推理,任何超过 50% 的内容都会占用更多存储空间,但我是从 SF Bay 下的 iPhone 发布的,因此无法使用“object.size”进行测试。

【讨论】:

  • 有许多稀疏矩阵格式,并不是所有的都需要每个非零条目 3 个数字。例如,这种格式在我的情况下需要大约 2 个:netlib.org/linalg/html_templates/node92.html
  • @RyanThompson:这种格式需要 3 个向量,而不是两个
  • 这些向量中只有两个对每个数据点都有一个条目。最后一个向量每列只有一个元素,在我的情况下可以忽略不计。
  • 如果这是 R Matrix 包中的任何表示,那么您可以将其用作估计的基础。但据我所知,T-matrix 和 C-matrix 版本都没有使用这种方法。
猜你喜欢
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 2021-11-25
  • 2017-07-02
  • 1970-01-01
  • 1970-01-01
  • 2012-06-20
相关资源
最近更新 更多