Linkage Mapper 工具参数详解——Centrality Mapper

本文详细解读Linkage Mapper工具的参数及中心性计算原理,适用于初学者。中心性在电路理论基础上衡量节点或边的重要程度,与重力模型不同。重力模型依赖源地面积和距离,而Linkage Mapper提供更全面的分析。结果包含两种中心性文件,数值大小反映廊道在网络中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 【小白一学就会无需其他教程】此文档用于解析使用Linkage Mapper 各输入输出参数详情以及可能的影响,并介绍了如何解释模型输出结果和输出参数,适合刚入手的人。篇幅很长很啰嗦,是因为每个参数都解释的万分细致。

从以下链接中获取内容(识别二维码、填写问卷、获取联系方式)

Linkage Mapper 报错_python error on **line 806** of lm_util.py in link-CSDN博客

中心性最直接的定义是节点或边在拓扑网络结构中的****。 中心性计算的原理是****。而在linkage mapper 中调用了电路理论后计算的中心性是*****

中心性同重力模型一样能表示廊道的重要性,两者原理不一样。

知识点:重力模型的原理

复杂公式如下:

公式中涉及参数有 两个源地斑块的面积、两者之间的距离。按照引力公式,两个源地面积越大、距离越短,即廊道的重要性越大。这是一种忽略网络整体性的算法,个人不推荐。

除不需要阻力面外,其他输入数据部分 同*****的,且**。

结果解析:

中心性分析结果存在上图所示两个文件的*****中,一个是****中心性,另外一是****中心性。

  1. 在 **** ****中,新增一个 ******的字段 即表示****
  2. 在 *********中,原先 ****值全为****,现在赋予了****,即****。数值越大,中心性***,廊道在*****重要性******。
在NetworkX库中,`edge_betweenness_centrality`是一个预定义的中心度测量算法,用于计算图中每个边的重要性,基于它们连接节点对之间的最短路径数量。默认情况下,这个函数返回的是全局的边缘中心性分数。 如果你想要自定义这个函数,例如添加特定的权重、忽略某些边或者按照其他方式进行计算,你可以创建一个新的函数并参考`edge_betweenness_centrality`的源码作为起点。通常会涉及以下几个步骤: 1. **导入需要的模块**: ```python import networkx as nx from collections import defaultdict ``` 2. **定义新函数**,接收网络(Graph)和其他必要的参数(如权重参数或边的过滤条件): ```python def custom_edge_betweenness_centrality(G, weight=None, ignore_edges=(), directed=False): # ... (在这里编写你的自定义逻辑) ``` 3. **实现基本算法逻辑**,比如使用Dijkstra算法找出最短路径,然后计算每条边的中心性得分: ```python if weight is None: # 如果无权重,直接使用默认方式 edge_weights = dict(G.edges(data='weight', default=1)) else: edge_weights = {(u, v): d.get(weight, 1) for u, v, d in G.edges(data=True)} betweenness = defaultdict(float) if not directed: # 对于无向图,需要考虑两个方向的路径 for s, t in G.edges(): paths = nx.shortest_path_length(G, source=s, target=t, weight=weight) for e in nx.edge_dijkstra_predecessor_map(G, source=s, target=t).items(): betweenness[e] += sum(1 / len(path) for path in paths.values() if e in path) else: # 对于有向图,只计算单向路径 for s, t in G.edges(): paths = nx.single_source_shortest_paths(G, source=s, weight=weight) for e in nx.dijkstra_path(G, source=s, target=t).items(): if e in paths[t]: betweenness[e] += 1 / len(paths[t]) # 排除指定的忽略边 for edge in ignore_edges: if edge in betweenness: del betweenness[edge] return dict(betweenness) ``` 4. **返回结果**: ```python return {k: v for k, v in betweenness.items()} ``` 5. **测试自定义函数**: ```python custom_score = custom_edge_betweenness_centrality(G, weight='weight_key') ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小酥muse

不想填问卷,打赏1元获得提取码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值