Perl:计算大量数据的相关系数时的编程效率

2024-02-08

编辑:链接现在应该可以使用,抱歉给您带来麻烦

我有一个如下所示的文本文件:



Name, Test 1, Test 2, Test 3, Test 4, Test 5
Bob, 86, 83, 86, 80, 23
Alice, 38, 90, 100, 53, 32
Jill, 49, 53, 63, 43, 23.
  

我正在编写一个程序,给定这个文本文件,它将生成一个皮尔逊相关系数表,如下所示,其中条目 (x,y) 是人 x 和人 y 之间的相关性:



Name,Bob,Alice,Jill
Bob, 1, 0.567088412588577, 0.899798494392584
Alice, 0.567088412588577, 1, 0.812425393004088
Jill, 0.899798494392584, 0.812425393004088, 1
  

我的程序可以运行,只是我输入的数据集有 82 列,更重要的是,有 54000 行。当我现在运行我的程序时,它非常慢并且出现内存不足错误。有没有一种方法可以首先消除内存不足错误的任何可能性,并可能使程序运行得更有效一些?代码在这里:code http://www.duke.edu/~jl128/correlation.txt.

感谢您的帮助,
Jack

编辑:如果其他人尝试进行大规模计算,请将您的数据转换为 hdf5 格式。这就是我最终为解决这个问题所做的事情。


您将必须进行至少 54000^2*82 次计算和比较。当然这需要很多时间。你把一切都记在记忆里了吗?这也会相当大。它会更慢,但如果您可以将用户保存在数据库中并针对所有其他用户计算一个用户,然后继续下一个并针对所有其他用户而不是一个庞大的数组或哈希进行计算,那么它可能会使用更少的内存。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Perl:计算大量数据的相关系数时的编程效率 的相关文章

随机推荐