分层聚类大型稀疏距离矩阵R(Hierarchical Clustering Large Sparse

2019-09-22 09:03发布

我试图在一个非常大的设定距离的执行fastclust,但运行了一个问题。

我有一个非常大的CSV文件(约91万行这样一个循环时间过长的R)的关键字(约50,000独特的关键字),当我读入一个data.frame看起来像之间的相似性:

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

这是一个稀疏的清单,我可以将其转换成使用稀疏矩阵()稀疏矩阵:

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

然而,当我尝试使用as.dist()把它变成一个DIST对象,我从R.我已经阅读这里的其他DIST问题的错误是,“问题是过大”,但代码他人建议不为我上面的例子中数据集的工作。

谢谢你的帮助!

Answer 1:

虽然在第一位置使用稀疏矩阵似乎是一个不错的主意,我觉得有一点这种做法的一个问题:你缺少的距离将被编码为0 S,还不如NA S(参见创建(和访问)一与NA默认项稀疏矩阵 )。 如你所知,群集时,零异性比缺少一个完全不同的含义......

所以无论如何,你需要的是一个有很多的DIST对象NA为您丢失的相异秒。 不幸的是,你的问题是如此之大,它需要太多的记忆:

d <- dist(x = rep(NA_integer_, 50000))
# Error: cannot allocate vector of size 9.3 Gb

而这仅仅处理输入......即使是一个64位机采用了大量的内存,我不知道聚类算法本身不会呛或无限期地运行。

你应该考虑将你的问题分解成更小的碎片。



文章来源: Hierarchical Clustering Large Sparse Distance Matrix R