在R / Python中为边缘节点三角形邻接矩阵创建共同聚类

时间:2014-02-17 23:42:18

标签: python r graph machine-learning igraph

我有以下边(行)节(cols)三角形相关矩阵,如果边属于三角形,我们在每个条目中都有一个。我想在这个矩阵上进行共聚类(但是你看,它不是传统的调整矩阵)。如果R中已经有一些coclustering函数了吗?我知道R包含blockcluster中的cocluster函数,但找不到一个很好的例子来处理它。 Python / R代码/包应该对我有用。

这是图表

library(igraph)
set.seed(1)
g <- erdos.renyi.game(15, .6)

73 x 15 sparse Matrix of class "dgCMatrix"

 [1,] 1 1 . . . . . . . . . . . . .
 [2,] . 1 1 . . . . . . . . . . . .
 [3,] 1 . . . 1 . . . . . . . . . .
 [4,] . 1 . . 1 . . . . . . . . . .
 [5,] . . 1 . 1 . . . . . . . . . .
 [6,] . . . 1 1 . . . . . . . . . .
 [7,] 1 . . . . 1 . . . . . . . . .
 [8,] . . . 1 . 1 . . . . . . . . .
 [9,] 1 . . . . . 1 . . . . . . . .
[10,] . 1 . . . . 1 . . . . . . . .
[11,] . . 1 . . . 1 . . . . . . . .
[12,] . . . . . 1 1 . . . . . . . .
[13,] 1 . . . . . . 1 . . . . . . .
[14,] . . 1 . . . . 1 . . . . . . .
[15,] . . . 1 . . . 1 . . . . . . .
[16,] . . . . 1 . . 1 . . . . . . .
[17,] . . . . . 1 . 1 . . . . . . .
[18,] . . . . . . 1 1 . . . . . . .
[19,] 1 . . . . . . . 1 . . . . . .
[20,] . . . 1 . . . . 1 . . . . . .
[21,] . . . . 1 . . . 1 . . . . . .
[22,] . . . . . 1 . . 1 . . . . . .
[23,] . . . . . . 1 . 1 . . . . . .
[24,] . . . . . . . 1 1 . . . . . .
[25,] 1 . . . . . . . . 1 . . . . .
[26,] . 1 . . . . . . . 1 . . . . .
[27,] . . 1 . . . . . . 1 . . . . .
[28,] . . . . 1 . . . . 1 . . . . .
[29,] . . . . . . 1 . . 1 . . . . .
[30,] . . . . . . . 1 . 1 . . . . .
[31,] . . . . . . . . 1 1 . . . . .
[32,] . . 1 . . . . . . . 1 . . . .
[33,] . . . 1 . . . . . . 1 . . . .
[34,] . . . . 1 . . . . . 1 . . . .
[35,] . . . . . 1 . . . . 1 . . . .
[36,] . . . . . . . 1 . . 1 . . . .
[37,] . . . . . . . . 1 . 1 . . . .
[38,] . 1 . . . . . . . . . 1 . . .
[39,] . . 1 . . . . . . . . 1 . . .
[40,] . . . 1 . . . . . . . 1 . . .
[41,] . . . . 1 . . . . . . 1 . . .
[42,] . . . . . 1 . . . . . 1 . . .
[43,] . . . . . . 1 . . . . 1 . . .
[44,] . . . . . . . 1 . . . 1 . . .
[45,] . . . . . . . . 1 . . 1 . . .
[46,] . . . . . . . . . . 1 1 . . .
[47,] 1 . . . . . . . . . . . 1 . .
[48,] . 1 . . . . . . . . . . 1 . .
[49,] . . 1 . . . . . . . . . 1 . .
[50,] . . . 1 . . . . . . . . 1 . .
[51,] . . . . . 1 . . . . . . 1 . .
[52,] . . . . . . 1 . . . . . 1 . .
[53,] . . . . . . . . 1 . . . 1 . .
[54,] . . . . . . . . . 1 . . 1 . .
[55,] . . . . . . . . . . 1 . 1 . .
[56,] 1 . . . . . . . . . . . . 1 .
[57,] . 1 . . . . . . . . . . . 1 .
[58,] . . 1 . . . . . . . . . . 1 .
[59,] . . . 1 . . . . . . . . . 1 .
[60,] . . . . . 1 . . . . . . . 1 .
[61,] . . . . . . . 1 . . . . . 1 .
[62,] . . . . . . . . . 1 . . . 1 .
[63,] . . . . . . . . . . 1 . . 1 .
[64,] . . . . . . . . . . . . 1 1 .
[65,] . 1 . . . . . . . . . . . . 1
[66,] . . . 1 . . . . . . . . . . 1
[67,] . . . . 1 . . . . . . . . . 1
[68,] . . . . . 1 . . . . . . . . 1
[69,] . . . . . . 1 . . . . . . . 1
[70,] . . . . . . . 1 . . . . . . 1
[71,] . . . . . . . . . . 1 . . . 1
[72,] . . . . . . . . . . . . 1 . 1
[73,] . . . . . . . . . . . . . 1 1

** cocluster函数即使在我将其作为标准矩阵后也无效。所以我不确定我是否可以对边缘节点三角形邻接矩阵进行共聚,或者只是标准邻接矩阵。在投票给这个问题或者决定关闭它之前请问我问题,我会尽量详细说明。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

library(igraph)

library(blockcluster)

set.seed(1)
g <- erdos.renyi.game(15, .6)
m <- get.adjacency(g)
m <- as.matrix(m)

cc <- cocluster(m, datatype="binary", nbcocluster=c(3,3))

效果很好。