gpt4 book ai didi

r - igraph 聚类函数的输出

转载 作者:行者123 更新时间:2023-12-05 03:17:04 27 4
gpt4 key购买 nike

我使用 igraph graph_from_data_frame 函数从数据框构建了一个图。我的前两列代表边缘列表,我还有另一列名为“权重”。还有其他几个属性列。

然后我尝试使用 cluster_fast_greedy 在我的图中找到一个社区结构。

data <- data %>%  rename(weight = TH_LIEN_2)
graph <- graph_from_data_frame(data,directed=FALSE)
is_weighted(graph)


cluster_1 <- cluster_fast_greedy(graph, weights = NULL)

输出是一个包含三个(合并、模块化、成员资格)的列表,每个都包含我的一些顶点。但是,以下返回“NULL”:


cluster_1[["merges"]]
cluster_1[["modularity"]]
cluster_1[["membership"]]

(我相信 cluster_1[["membership"]] 应该是一个整数列表,表示顶点所属的簇?)

我尝试了不同的聚类方法(cluster_fast_greedy、cluster_label_prop、cluster_leading_eigen、cluster_spingglass、cluster_walktrap)以及加权和非加权图,每次输出看起来都一样。 (列表中的元素数量从 1 到 4 不等)

有没有人知道它为什么这样做?

谢谢你,祝你有美好的一天!

Cassandra

最佳答案

您应该使用美元符号$ 来访问集群对象。例如

g <- make_full_graph(5) %du% make_full_graph(5) %du% make_full_graph(5)
g <- add_edges(g, c(1, 6, 1, 11, 6, 11))
fc <- cluster_fast_greedy(g)

你会看到

> str(fc)
Class 'communities' hidden list of 5
$ merges : num [1:14, 1:2] 3 4 5 1 12 13 15 11 7 8 ...
$ modularity: num [1:15] -6.89e-02 -4.59e-02 6.94e-18 6.89e-02 1.46e-01 ...
$ membership: num [1:15] 3 3 3 3 3 1 1 1 1 1 ...
$ algorithm : chr "fast greedy"
$ vcount : int 15

> fc$merges
[,1] [,2]
[1,] 3 2
[2,] 4 16
[3,] 5 17
[4,] 1 18
[5,] 12 14
[6,] 13 20
[7,] 15 21
[8,] 11 22
[9,] 7 9
[10,] 8 24
[11,] 10 25
[12,] 6 26
[13,] 27 19
[14,] 23 28

> fc$modularity
[1] -6.887052e-02 -4.591368e-02 6.938894e-18 6.887052e-02 1.460055e-01
[6] 1.689624e-01 2.148760e-01 2.837466e-01 3.608815e-01 3.838384e-01
[11] 4.297521e-01 4.986226e-01 5.757576e-01 3.838384e-01 -1.110223e-16

> fc$membership
[1] 3 3 3 3 3 1 1 1 1 1 2 2 2 2 2

> fc$algorithm
[1] "fast greedy"

> fc$vcount
[1] 15

关于r - igraph 聚类函数的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74344866/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com