分层聚类大稀疏距离矩阵R.

时间:2012-09-12 17:29:07

标签: r distance sparse-matrix bigdata hierarchical-clustering

我试图在很长的距离上执行快速扫描,但遇到问题。

我有一个非常大的csv文件(大约9100万行,因此for循环在R中需要太长时间)关键字之间的相似性(大约50,000个唯一关键字)当我读入data.frame时看起来像:

> df   
kwd1 kwd2 similarity  
a  b  1  
b  a  1  
c  a  2  
a  c  2 

这是一个稀疏列表,我可以使用sparseMatrix()将其转换为稀疏矩阵:

> myMatrix 
  a b c  
a . . .
b 1 . .
c 2 . .

但是,当我尝试使用as.dist()将其转换为dist对象时,我从R中得到“问题太大”的错误。我已经在这里阅读了其他dist问题,但代码其他人建议不适用于我上面的示例数据集。

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

虽然首先使用稀疏矩阵似乎是一个好主意,但我认为这种方法存在一些问题:您的缺失距离将编码为0 s,而不是{{1 s(见Creating (and Accessing) a Sparse Matrix with NA default entries)。如你所知,在聚类时,零差异与缺失的意义完全不同......

所以无论如何,你需要的是一个带有很多NA s的dist对象,用于弥补你的不足之处。不幸的是,你的问题太大了,需要太多的内存:

NA

这只是处理输入...即使64位机器有大量内存,我也不确定聚类算法本身不会无限制地阻塞或运行。

您应该考虑将问题分解成更小的部分。