备案期间怎么关闭网站,正规投资app平台,网络营销技巧培训,wordpress安装在linux一、网络的基本静态几何特征
1.1 度分布
节点的度#xff1a;在网络中#xff0c;节点的邻边数称为该节点的度
对于网络中所有节点的度求平均#xff0c;可得到网络的平均度
度分布#xff1a;大多数实际网络中的节点的度满足一定的概率分布。定义P(k)为网络中度为k的节…一、网络的基本静态几何特征
1.1 度分布
节点的度在网络中节点的邻边数称为该节点的度
对于网络中所有节点的度求平均可得到网络的平均度
度分布大多数实际网络中的节点的度满足一定的概率分布。定义P(k)为网络中度为k的节点在整个网络中所占的比例。
规则网络由于每个节点具有相同的度所以其度分布集中在一个单一尖峰上。是一种Deta分布。
完全随机网络度分布具有Poisson分布的形式每一条边的出现概率是相等的大多数节点的度基本相同并接近于网络平均度k远离峰值k度分布则按指数形式集聚下降。把这类网络称为均匀网络。
无标度网络具有幂指数形式的度分布。所谓无标度是指一个概率分布函数F(x)对于任意给定常数a存在常数b使得F(x)满足F(ax) bF(x)。
1.2 网络的直径和平均距离
网络中的两节点和之间经历边数最少得一条简单路径(经历的边各不相同)称为测地线
测地线的边数称为两节点和之间的距离
网络的直径D定义为所有距离中的最大值
平均距离特征路径长度L定义为所有节点对之间距离的平均值它描述了网络中节点间的平均分离程度即网络有多小计算公式为
很多实际网络虽然节点数巨大但平均距离却小得惊人这就是小世界效应
集聚系数用以捕获给定节点的邻居节点之间的连接程度
1.3 度-度相关性
基于最近邻平均度值的度-度相关性
度-度相关性描述了网络中度大的节点和度小得节点之间的关系。若度大的节点倾向于和度大的节点连接则网络是度-度正相关的反之若度大的节点倾向于和度小的节点连接则网络是du-度负相关的。
节点的最近邻平均度值定义为 。
其中表示节点的度值为邻接矩阵元素。 基于Pearson相关系数的度-度相关性 1.4 介数和核度
介数
介数分为节点介数和边介数两种反映了节点或边在整个网络中的作用和影响力。
节点的介数定义为
式中表示节点和之间的最短路径条数表示节点和之间的最短路径经过节点的条数。
边的介数定义为
式中表示节点和之间的最短路径系数条数表示节点与之间的最短路径经过边的条数。
核度
一个图的k-核是指反复去掉度值小于k的节点及其连线后所剩余的子图该子图的节点数就是该核的大小。若一个节点属于k-核而不属于(k 1)-核则此节点的核度为k。节点核度的最大值叫做网络的核度。
网络密度
网络密度指的是一个网络中各节点之间联络的紧密程度。网络G的网络密度d(G)定义为
,式中M为网络中实际拥有的连接数N为网络节点数。
二、代码实践
#Poisson分布(以ER网络为例)
# import networkx as nx
# import matplotlib.pyplot as plt
#
# #创建一个ER随机网络
n 10000
# p 0.001
# ER nx.erdos_renyi_graph(n, p)
#
# #获取平均度
# d dict(nx.degree(ER))
# print(平均度, sum(d.values())/len(ER.nodes))
#
# #获取所有可能得度值对应的概率
# x list(range(max(d.values())1))
# y [i/n for i in nx.degree_histogram(ER)]
# print(所有可能得度值对应的概率, list(zip(x, y)))
# #绘制度分布图
# plt.plot(x, y)
# plt.xlabel(k)
# plt.ylabel(P(k))
# plt.show()#幂律分布(以BA无标度网络为例)
import networkx as nx
import matplotlib.pyplot as plt
m 3
BA nx.barabasi_albert_graph(n, m)
#获取平均度
d dict(nx.degree(BA))
print(平均度, sum(d.values())/len(BA.nodes))
#获取所有可能得度值对应的概率
x list(range(max(d.values())1))
y [i/n for i in nx.degree_histogram(BA)]
print(所有可能得度值对应的概率, list(zip(x, y)))
#绘制度分布图
plt.plot(x, y)
plt.xlabel(k)
plt.ylabel(P(k))
plt.show()#在双对数坐标轴下显示
plt.plot(x,y)
plt.xscale(log)
plt.yscale(log)
plt.xlabel(k)
plt.ylabel(P(k))
plt.show()
#在双对数坐标轴下要把横坐标和纵坐标的0值排除
new_x []
new_y []
for i in range(len(x)):if y[i] ! 0:new_x.append(x[i])new_y.append(y[i])
plt.plot(new_x,new_y)
plt.xscale(log)
plt.yscale(log)
plt.xlabel(k)
plt.ylabel(P(k))
plt.show()