复杂网络(三)

一、几种常见的中心性指标

1.1 度中心性

度中心性分为节点度中心性网络度中心性。前者指的是节点在其与之直接相连的邻居节点当中的中心程度,二后者则侧重节点在整个网络的中心程度,表征的是整个网络的集中或集权程度,即整个网络围绕一个节点或一组节点来组织运行的程度。

节点v_{i}的度中心性C_{D}(v_{i})定义为:C_{D}(v_{i}) = k_{i} / (N - 1)

1.2 介数中心性

介数中心性分为节点介数中心性网络介数中心性。

节点v_{i}的介数中心性C_{b}(v_{i})定义为 C_{B}(v_{i}) = 2B_{i}/[(N - 2)(N - 1)]

1.3 接近度中心性

节点v_{i}的接近度中心性C_{C}(v_{i})定义为C_{D}(v_{i}) = (N - 1)/[\sum_{j=1,j\neq i}^{N} d_{ij}]

1.4 特征向量中心性

二、网络基本几何特征实践

import networkx as nxG1 = nx.barabasi_albert_graph(1000,3)
print("网络的直径为:", nx.diameter(G1))#指定某两个节点之间的效率
print(nx.efficiency(G1,1,5))
#指定某两个节点之间的平均效率
print(nx.average_efficiency(G1))
#最短路径长度
print(nx.shortest_path_length(G1,1,5))
#局部效率
print(nx.local_efficiency(G1))
#全局效率
print(nx.global_efficiency(G1))
#求整个网络的平均距离
print(nx.average_shortest_path_length(G1))
#整个网络的集聚系数
print(nx.clustering(G1))
#平均集聚系数
print(nx.average_clustering(G1))
#全局集聚系数
print(nx.transitivity(G1))

 三、度-度关联性编程

import networkx as nx
import matplotlib.pyplot as plt
import pandas as pd#加载三个数据集
df1 = pd.read_excel("D:/python项目/Symbolic/Net/citation.xlsx")
G1 = nx.from_pandas_edgelist(df1,'source','target',create_using=nx.Graph())df2 = pd.read_excel("D:/python项目/Symbolic/Net/power.xlsx")
G2 = nx.from_pandas_edgelist(df2,'source','target',create_using=nx.Graph())df3 = pd.read_excel("D:/python项目/Symbolic/Net/celegans_metabolic.xlsx")
G3 = nx.from_pandas_edgelist(df3,'source','target',create_using=nx.Graph())#定义求最近邻平均度的函数
def average_neighbor_degree(G):k = set([G.degree(i) for i in G.nodes()])  # 获取所有可能的度值sorted_k = sorted(k)knni = nx.average_neighbor_degree(G)k_nn_k = []for ki in sorted_k:if ki == 0:k_nn_k.append(0.0)else:c = 0s = 0for i in G.nodes():if G.degree(i) == ki:s += knni[i]c += 1k_nn_k.append(s / c)return sorted_k, k_nn_k#基于Pearson相关系数的度-度相关性
r1 = nx.degree_assortativity_coefficient(G1)
r2 = nx.degree_assortativity_coefficient(G2)
r3 = nx.degree_assortativity_coefficient(G3)
print(r1)
print(r2)
print(r3)x1,y1 = average_neighbor_degree(G1)
x2,y2 = average_neighbor_degree(G2)
x3,y3 = average_neighbor_degree(G3)
plt.figure(figsize=(12,4))
plt.subplot(131)
plt.plot(x1, y1, 'ro', label='r = '+'%.4f'%r1)
plt.legend(loc=0)
plt.xlabel("$k$")
plt.ylabel("$k_{nn}(k)$")
plt.xscale("log")
plt.yscale("log")
plt.title('citation')
plt.ylim([1,100])plt.subplot(132)
plt.plot(x2, y2, 'bs', label='r = '+'%.4f'%r2)
plt.legend(loc=0)
plt.xlabel("$k$")
plt.ylabel("$k_{nn}(k)$")
plt.xscale("log")
plt.yscale("log")
plt.title('power')
plt.ylim([1,10])plt.subplot(133)
plt.plot(x3, y3, 'gv', label='r = '+'%.4f'%r3)
plt.legend(loc=0)
plt.xlabel("$k$")
plt.ylabel("$k_{nn}(k)$")
plt.xscale("log")
plt.yscale("log")
plt.title('celegans_metabolic')
plt.ylim([1,100])plt.tight_layout()
plt.show()

四、网络中心性指标编程

import networkx as nx
import matplotlib.pyplot as pltBA = nx.barabasi_albert_graph(20, 2)
#节点介数
bc = nx.betweenness_centrality(BA)
print(bc)#获取介数最大的节点标签
max_id = max(bc,key = bc.get)
print(max_id)
#绘制网络图
nx.draw(BA,node_size = 500,with_labels=True)
#边介数
ebc = nx.edge_betweenness_centrality(BA)
print(ebc)#核度
ks = nx.core_number(BA)
print(ks)
#获取核度最大的节点标签
max_id = max(ks,key = ks.get)
print(max_id)
#绘制网络图
nx.draw(BA,node_size = 500,with_labels=True)
#网络密度
print(nx.density(BA))#几种常用的中心性指标
#生成ER和BA无标度网络,节点数设定为N = 100
GER = nx.erdos_renyi_graph(100,0.08)
GBA = nx.barabasi_albert_graph(100,4)
#度中心性
dc1 = nx.degree_centrality(GER)
dc2 = nx.degree_centrality(GBA)
#介数中心性
bc1 = nx.betweenness_centrality(GER)
bc2 = nx.betweenness_centrality(GBA)
#接近度中心性
cc1 = nx.closeness_centrality(GER)
cc2 = nx.closeness_centrality(GBA)
#特征向量中心性
ec1 = nx.eigenvector_centrality(GER)
ec2 = nx.eigenvector_centrality(GBA)

五、有向网络与加权网络

import networkx as nx
import matplotlib.pyplot as plt#创建一个有向网络
DG = nx.DiGraph()
DG.add_nodes_from([1,2,3,4,5,6])
DG.add_edges_from([(1,2),(1,3),(2,4),(3,5),(4,6),(5,2),(5,4),(5,3),(3,6)])
nx.draw(DG,node_size = 500,with_labels=True)
plt.show()#获得各个结点的入度、出度和总度
print(DG.in_degree)
print(DG.out_degree)
print(DG.degree)#创建一个无向加权网络
WG = nx.Graph()
WG.add_nodes_from([1,2,3,4,5,6])
WG.add_weighted_edges_from([(1,2,1),(1,3,8),(2,4,3),(3,5,9),(4,6,4),(5,2,6),(5,4,0.7),(5,3,0.5),(3,6,0.2)])
w = [WG[e[0]][e[1]]['weight'] for e in WG.edges]
nx.draw(WG,node_size = 500,with_labels=True)
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础(函数、枚举)错题汇总

枚举默认从0开始,指定后会按顺序赋值 而这个枚举变量X,如果在全局(函数外部)定义,那默认为0,如果在函数内部(局部变量),那就是随机值,必须初始化。 枚举变量…

Facebook的开源项目解析:推动开发者社区的技术进步

Facebook,作为全球领先的社交平台之一,其在技术领域的创新不仅体现在产品功能的实现上,也积极推动开源社区的发展。开源项目已经成为Facebook技术战略的重要组成部分,通过开源,Facebook不仅加速了技术进步,…

uniapp中scrollview配合swiper实现一个简单的tab标签页

<template><view class"tab-container"><!-- Tab 标签滚动容器 --><scroll-view scroll-x"true" class"tab-scroll" scroll-with-animation"true"><view class"tab-list"><viewv-for"…

后端-mybatis的一对一查询

准备两张表菜单表和分类表&#xff0c;一个菜单对应一个分类&#xff0c;一个分类对应多个菜单&#xff0c;我们从菜单对分类来操作一对一的关系&#xff0c;首先在菜单表里面要有一个分类表的id字段。 使用mapper的映射文件.xml来写的话我们在resource目录下创建各自mapper的…

mysql_题库详解

1、如何创建和删除数据库&#xff1f; 1&#xff09;创建数据库 CREATE DATABASE 数据库名; 2&#xff09;删除数据库 drop database 数据库名; 2、MyISAM与InnoDB的区别&#xff1f; 1&#xff09;事务&#xff1a;MyISAM 不支持事务 InnoDB 支持 2&#xff09;行锁/表锁&a…

修改Docker 默认存储目录( Docker Root Dir: /var/lib/docker)

Docker 默认将所有的数据&#xff08;包括镜像、容器、卷等&#xff09;存储在 /var/lib/docker 目录下。这个目录默认被配置在系统的根分区或者较小的分区上。随着容器化应用的增加&#xff0c;或者 Docker 容器和镜像的数量增加&#xff0c;默认存储位置可能会迅速填满&#…

CentOS startx 启动失败的解决方法

第一个错误&#xff1a;MESA-LOADER: failed to open mgag200: /usr/lib64/dri/mgag200_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib64/dri) failed to load driver: mgag200 解决方法&#xff1a;安装缺失mesa驱动&#xff0…

week 9 - Entity-Relationship Modelling

一、数据库设计的重要性 • 设计数据库可使查询更高效、简洁。 • 减少数据冗余&#xff08;data redundancy&#xff09;&#xff0c;提升表的整洁性。 二、Key Components of ER Modelling 实体-关系建模的基本构成 1. 实体&#xff08;Entity&#xff09;&#xff1a;表…

BUUCTF—Reverse—Java逆向解密(10)

程序员小张不小心弄丢了加密文件用的秘钥&#xff0c;已知还好小张曾经编写了一个秘钥验证算法&#xff0c;聪明的你能帮小张找到秘钥吗&#xff1f; 注意&#xff1a;得到的 flag 请包上 flag{} 提交 需要用专门的Java反编译软件:jd-gui 下载文件&#xff0c;发现是个class文…

图卷积网络GCN与图注意力网络GAT原理详解

文章目录 1. Why 图卷积网络GCN&#xff1f;2. GCN的原理2.1 GCN的输入2.2 GCN的核心公式2.3 GCN 的核心公式推导的直观理解 3. Why 图注意力网络GAT&#xff1f;4. GAT的原理4.1 GAT的输入4.2 GAT的流程及核心公式 References 1. Why 图卷积网络GCN&#xff1f; GCN(Graph Co…

ELK Fleet JAVA LOG收集与展示教程

目录 elastic-fleet架构 Elastic Agent的优势 Fleet JAVA日志收集流程 1.注册Fleet Sever 2.创建JAVA代理收集策略Agent Policy 3.添加集成 integration 4.调整Java log输出格式 5.添加Elastic Agent 6.添加Ingest 7.创建数据视图 8.其他Policy nginx-policy syst…

电脑提示报错“Directx error”怎么解决?是什么原因导致的?游戏软件提示“Directx error”错误的解决方案

DirectX Error&#xff08;DX错误&#xff09;通常指的是在使用基于DirectX技术的应用程序&#xff08;尤其是游戏&#xff09;时遇到的问题。这个问题可能由多种因素导致&#xff0c;以下是一些可能的原因及相应的解决方案&#xff1a; 可能的原因 DirectX版本不匹配&#x…

jmeter 压测常用静默参数解释应用

简介&#xff1a; JMeter静默压测&#xff08;即无界面压测&#xff09;是一种常用的性能测试方法&#xff0c;用于模拟多个用户同时访问系统并测量系统的响应时间和吞吐量等关键性能指标。在JMeter静默压测中&#xff0c;常用的压测参数及其解释如下&#xff1a; 一、基本…

自动驾驶目标检测融合全貌

1、early fusion 早期融合&#xff0c;特点用到几何空间转换3d到2d或者2d到3d的转换&#xff0c;用像素找点云或者用点云找像素。 2、deep fusion 深度融合&#xff0c;也是特征级别融合&#xff0c;也叫多模态融合&#xff0c;如bevfusion范式 3、late fusion 晚融合&#x…

OpenAI Whisper 语音识别 模型部署及接口封装

环境配置: 一、安装依赖&#xff1a; pip install -U openai-whisper 或者&#xff0c;以下命令会从这个存储库拉取并安装最新的提交&#xff0c;以及其Python依赖项&#xff1a; pip install githttps://github.com/openai/whisper.git 二、安装ffmpeg&#xff1a; cd …

⽂件操作详解

⽬录 一 文件操作的引入 1 为什么使⽤⽂件&#xff1f; 2 什么是⽂件&#xff1f; 3 文件分类&#xff08;1 从⽂件功能的⻆度来分类&#xff1a;程序⽂件/数据⽂件 2根据数据的组织形式&#xff1a;为⽂本⽂件/⼆进制⽂件&#xff09; 二 ⽂件的打开和关闭 1 …

gitee:解决vs文件权限被拒问题

报错问题 分析原因 git上传要忽略vs文件&#xff0c; Git因致命错误而失败。权限被拒绝 无法处理的路径。 解决方法 1、项目根目录下->右击空白->Open Git Bash here 2、 创建.gitignore文件 命令 touch .gitignore 3、 文件开头输入 .vs保存 参考地址 VS2017 Git fa…

【03】Selenium+Python 八种定位元素方法

操作元素&#xff0c;需要先查找定位到对应的元素。 查找单个元素&#xff1a;driver.find_element() 返回是一个web element 对象 查找多个元素&#xff1a;driver.find_elements() 返回是一个list对象 By 是 Selenium 中一个非常重要的类&#xff0c;用于定位网页元素。 使…

【linux学习指南】详解Linux进程信号保存

文章目录 &#x1f4dd;保存信号&#x1f320; 信号其他相关常⻅概念&#x1f309;在内核中的表⽰ &#x1f320; sigset_t&#x1f320;信号集操作函数&#x1f309;sigprocmask&#x1f309;sigpending &#x1f6a9;总结 &#x1f4dd;保存信号 &#x1f320; 信号其他相关常…

Java安全—原生反序列化重写方法链条分析触发类

前言 在Java安全中反序列化是一个非常重要点&#xff0c;有原生态的反序列化&#xff0c;还有一些特定漏洞情况下的。今天主要讲一下原生态的反序列化&#xff0c;这部分内容对于没Java基础的来说可能有点难&#xff0c;包括我。 序列化与反序列化 序列化&#xff1a;将内存…