首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Networkx统计推断

Networkx统计推断
EN

Stack Overflow用户
提问于 2015-03-15 18:39:07
回答 4查看 14.6K关注 0票数 11

我有一个有向加权图,我成功地使用networkx创建了它。

我试图在这个网络上做出一些统计推断,但我遇到了麻烦。下面是它们:

(i)网络的平均程度。(我唯一能找到的是average_degree_connectivity,它返回一个字典,而不是一个带整个网络平均程度的浮点数)

(ii)该网络的平均加权程度。(与上文相同)

(iii)网络的平均聚类系数。(我知道我必须使用nx.average_clustering(g),但是如何考虑它是加权有向图这一事实?我一直收到错误: NetworkXError:(“聚类算法未定义”,“用于有向图”)。

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-03-15 19:06:08

(i)网络的平均程度。(我唯一能找到的是average_degree_connectivity,它返回一个字典,而不是一个带整个网络平均程度的浮点数)

假设您的图形对象是G

代码语言:javascript
复制
degrees = G.degree()
sum_of_edges = sum(degrees.values())

计算平均值只是一个除以节点数的问题。

(ii)该网络的平均加权程度。(与上文相同)

获取所有节点的列表,为每个节点获取所有边的列表,每个节点的加权属性之和如下:

代码语言:javascript
复制
edgesdict = G.edge
total = 0
for node_adjacency_dict in edgesdict.valuess():
    total += sum([adjacency.get("weight",0) for adjacency in node_adjacency_dict.values()]) 

(iii)网络的平均聚类系数。(我知道我必须使用nx.average_clustering(g),但是如何考虑它是加权有向图这一事实?我一直收到错误: NetworkXError:(“聚类算法未定义”,“用于有向图”)。

关键是,在你定义它之前,它不是很好的定义。我认为,对于StackOverflow答案来说,这需要做的事情太多了,所以我给您留下了一个问题,就是为您的特定问题定义一个算法。

(iv)网络中最大最短路径长度。(我知道你找到了巨人= max(nx.connected_component_subgraphs(G),key=len)这样的巨型分量,但是我们如何在其中得到最大最短路径长度?)

运行ipython之类的。输入giant.;您将得到一个使用giant可以做的事情的列表。

票数 9
EN

Stack Overflow用户

发布于 2015-03-15 19:40:02

以下是一些更多的想法,以补充@马库斯-穆勒所写的内容。

对于平均程度(注意你的有向图,这是进出度之和)

代码语言:javascript
复制
In [1]: import networkx as nx
G
In [2]: G = nx.DiGraph()

In [3]: G.add_edge(1,2,weight=7)

In [4]: G.add_edge(3,4,weight=17)

In [5]: sum(G.degree().values())/float(len(G))
Out[5]: 1.0

In [6]: sum(G.degree(weight='weight').values())/float(len(G))
Out[6]: 12.0

在NetworkX中没有关于加权有向聚类的定义。有一些建议https://github.com/networkx/networkx/issues/859,但还没有人完成实施。

对于有向图,将最大连通分量的概念分解为两个定义。弱连通组件是在考虑图的无向版本(将每个有向边替换为无向边)时所连接的组件。强连接组件是指每一对节点都可以相互访问(有路径)的组件。

票数 4
EN

Stack Overflow用户

发布于 2021-03-28 07:04:40

从Networkx2.5 (2021)开始,您可以使用networkx.info(G)获得图的平均度

代码:

代码语言:javascript
复制
print(nx.info(G))

输出:

代码语言:javascript
复制
Name:
Type: Graph
Number of nodes: 85
Number of edges: 63
Average degree:   1.4824
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29064636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档