You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将大型稀疏协方差矩阵转换为稀疏相关矩阵?

稀疏协方差矩阵转相关矩阵的实现方案

小规模矩阵处理方法

参考statsmodels.stats.moment_helpers.cov2corr()的实现逻辑,当协方差矩阵规模不大时,可通过逐元素除以密集的标准差外积,再转换回稀疏矩阵的方式得到相关矩阵,示例代码如下:

import numpy as np
from scipy import sparse

A = np.array([
  [1.0, 0.2, 0.3, 0.0, 0.0],
  [0.2, 2.0, 1.0, 0.0, 0.0],
  [0.3, 1.0, 3.0, 0.0, 0.0],
  [0.0, 0.0, 0.0, 1.0, 0.5],
  [0.0, 0.0, 0.0, 0.5, 4.0]])
cov = sparse.csr_matrix(A)
cor = sparse.csr_matrix(cov / np.outer(np.sqrt(cov.diagonal()), np.sqrt(cov.diagonal())))

cor.toarray()

执行上述代码后,输出结果为:

array([[1.        , 0.14142136, 0.17320508, 0.        , 0.        ],
      [0.14142136, 1.        , 0.40824829, 0.        , 0.        ],
      [0.17320508, 0.40824829, 1.        , 0.        , 0.        ],
      [0.        , 0.        , 0.        , 1.        , 0.25      ],
      [0.        , 0.        , 0.        , 0.25      , 1.        ]])

大规模矩阵的内存问题

当矩阵规模达到100K及以上时,生成密集的n×n标准差外积会造成严重的内存浪费,甚至直接超出内存承载上限,上述方法不再适用。


内容的提问来源于stack exchange,提问作者Giora Simchoni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 01:53:20