2013-04-09 114 views
3

我有一个关于使用距离矩阵进行聚类的问题,但是稀疏。稀疏矩阵作为R中的分级聚类的输入

是否有稀疏距离对象格式不扩展矩阵并可以使用稀疏表示?

目前我做了以下

# read sparse matrix 
sparse <- readMM('sparse-matrix') 
distance <- as.dist(sparse) 

稀疏矩阵已经是正确的距离矩阵,其中有NA对未连接的条目。

>sparse 
[1,] . . . 
[2,] 1 . . 
[3,] 1 . . 

> as.dist(sparse) 
1 2 
2 1 
3 1 0 

但随着as.dist转换它失败

错误asMethod(对象):阴性长度矢量不允许

据推测,因为它的基质膨胀至完整的表格。矩阵(N×N个)尺寸为N = 49281 这种格式由例如hclust方法需要(DIST对象)

没有任何回答on the R help list

回答

-3

类似的问题如何将距离矩阵是稀疏的?每两个物体之间有一段距离,所以它实际上是一个非常密集的矩阵。然而,三角矩阵足以描述相互距离(如D = D')。实际上,dist生成的对象就是这种情况。

如果距离矩阵是稀疏的,因为许多对象是相同的,那么也许你只想在唯一对象上计算距离矩阵。

+0

好吧,让我们来重述一下。构成矩阵的向量不是很连接。所以很多距离矩阵中的条目应该是NA。但as.dist会将它变成一个三角形矩阵。 dist矩阵是预先计算的,我只是“试图使用它... – Joey 2013-04-09 20:06:12

+0

@Joey:我仍然可能不明白它。如果你计算一个物体与某个特征为“NA”的物体到另一个物体的距离,有没有可能这个距离是*不是*'NA'? – cbeleites 2013-04-09 21:02:05

+0

这适用于当您使用例如余弦距离并忽略为1的值时,例如正交 – Joey 2013-04-10 10:08:12