我必须在一个非常大的矩阵(大约 300.000x100.000 个值,超过 100Gb)上执行 k 均值聚类。我想知道我是否可以使用 R 软件或 weka 来执行此操作。
我的计算机是一台多处理器,具有 8GB 内存和数百 GB 可用空间。
我有足够的空间进行计算,但加载这样的矩阵似乎是 R 的问题(我不认为使用 bigmemory 包对我有帮助,大矩阵会自动使用我的所有 RAM,然后是我的交换文件,如果空间不足)。
所以我的问题是:我应该使用什么软件(最终与其他一些软件包或自定义设置相关)。
谢谢你帮助我。
注:我用的是linux。
一定是K-means吗?另一种可能的方法是首先将数据转换为网络,然后应用图聚类。我是作者MCL,一种在生物信息学中经常使用的算法。链接到的实现应该可以轻松扩展到具有数百万个节点的网络 - 假设您有 100K 个属性,您的示例将有 300K 个节点。通过这种方法,数据将在数据转换步骤中自然地被修剪——而该步骤很可能成为瓶颈。如何计算两个向量之间的距离?在我处理过的应用程序中,我使用了 Pearson 或 Spearman 相关性,并且 MCL 附带了软件,可以在大规模数据上高效地执行此计算(它可以利用多个 CPU 和多台机器)。
数据大小仍然存在问题,因为大多数聚类算法将要求您至少执行所有成对比较至少一次。您的数据真的存储为一个巨大的矩阵吗?输入中有很多零吗?或者,你有办法丢弃较小的元素吗?您是否可以访问多台机器来分发这些计算?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)