【Matlab】评估网络节点重要性
centrality
衡量节点的重要性
全页折叠
语法
C = centrality(G,type)
C = centrality(___,Name,Value)
说明
示例
为图中的每个节点计算由 C
= centrality(G
,type
)type
指定的节点中心性。
示例
使用一个或多个名称-值对组参数指定的其他选项。例如,C
= centrality(___,Name,Value
)centrality(G,'closeness','Cost',c)
指定遍历每条边的成本。
示例
全部折叠
6 个网站的网页排名
尝试此示例
View MATLAB Command
创建并绘制一个包含六个虚拟网站的图。
s = [1 1 2 2 3 3 3 4 5]; t = [2 5 3 4 4 5 6 1 1]; names = {'http://www.example.com/alpha', 'http://www.example.com/beta', ...'http://www.example.com/gamma', 'http://www.example.com/delta', ...'http://www.example.com/epsilon', 'http://www.example.com/zeta'}; G = digraph(s,t,[],names); plot(G,'NodeLabel',{'alpha','beta','gamma','delta','epsilon','zeta'})
使用 centrality
函数计算每个网站的网页排名。将此信息作为图节点的一个属性附加到图的 Nodes
表中。
pg_ranks = centrality(G,'pagerank')
pg_ranks = 6×10.32100.17060.10660.13680.20080.0643
G.Nodes.PageRank = pg_ranks; G.Nodes
ans=6×2 tableName PageRank__________________________________ ________{'http://www.example.com/alpha' } 0.32098 {'http://www.example.com/beta' } 0.17057 {'http://www.example.com/gamma' } 0.10657 {'http://www.example.com/delta' } 0.13678 {'http://www.example.com/epsilon'} 0.20078 {'http://www.example.com/zeta' } 0.06432
还可以使用 centrality
确定哪些节点是枢纽节点和权威节点,并将得分附加到 Nodes
表中。
hub_ranks = centrality(G,'hubs'); auth_ranks = centrality(G,'authorities'); G.Nodes.Hubs = hub_ranks; G.Nodes.Authorities = auth_ranks;
G.Nodes
ans=6×4 tableName PageRank Hubs Authorities__________________________________ ________ __________ ___________{'http://www.example.com/alpha' } 0.32098 0.24995 7.3237e-05 {'http://www.example.com/beta' } 0.17057 0.24995 0.099993 {'http://www.example.com/gamma' } 0.10657 0.49991 0.099993 {'http://www.example.com/delta' } 0.13678 9.1536e-05 0.29998 {'http://www.example.com/epsilon'} 0.20078 9.1536e-05 0.29998 {'http://www.example.com/zeta' } 0.06432 0 0.19999
随机图的度中心性
尝试此示例
View MATLAB Command
使用随机稀疏邻接矩阵创建并绘制一个加权图。由于有很多边,请使用非常小的 EdgeAlpha
值使边几乎透明。
A = sprand(1000,1000,0.15); A = A + A'; G = graph(A,'omitselfloops'); p = plot(G,'Layout','force','EdgeAlpha',0.005,'NodeColor','r');
计算每个节点的度中心性。使用边权重指定每条边的重要性。
deg_ranks = centrality(G,'degree','Importance',G.Edges.Weight);
根据节点的中心性得分,使用 discretize
将节点放入 7 个等间距 bin 中。
edges = linspace(min(deg_ranks),max(deg_ranks),7); bins = discretize(deg_ranks,edges);
使每个节点在绘图中的大小与其中心性得分成正比。每个节点的标记大小等于 bin 编号 (1-7)。
p.MarkerSize = bins;
明尼苏达州道路的接近性和中间性
尝试此示例
View MATLAB Command
加载 minnesota.mat
中的数据,其中包含代表明尼苏达州道路网络的图对象 G
。图节点具有 xy 坐标,这些坐标包含在 G.Nodes
表的 XCoord
和 YCoord
变量中。
load minnesota.mat xy = [G.Nodes.XCoord G.Nodes.YCoord];
在图中添加与道路长度(使用每条边的端节点的 xy 坐标之间的欧几里德距离计算得出)大致对应的边权重。
[s,t] = findedge(G); G.Edges.Weight = hypot(xy(s,1)-xy(t,1), xy(s,2)-xy(t,2));
使用节点的 xy 坐标绘图。
p = plot(G,'XData',xy(:,1),'YData',xy(:,2),'MarkerSize',5); title('Minnesota Road Network')
计算每个节点的接近中心性。调整节点颜色 NodeCData
,使其与中心性得分成正比。
ucc = centrality(G,'closeness'); p.NodeCData = ucc; colormap jet colorbar title('Closeness Centrality Scores - Unweighted')
还要计算加权的接近中心性得分(使用边权重作为遍历每条边的成本)。使用道路长度作为边权重可以提高得分质量,因为距离现在等于遍历的所有边的长度总和,而不是遍历的边数。
wcc = centrality(G,'closeness','Cost',G.Edges.Weight); p.NodeCData = wcc; title('Closeness Centrality Scores - Weighted')
计算图的加权中间中心性得分,以确定在两个节点之间的最短路径上出现频率最高的道路。使用因子 (n−2)(n−1)2 对中心性得分进行归一化,以使得分表示旅行者沿两个随机节点之间的最短路径经过给定节点的概率。该绘图表明进出这座城市有几条非常重要的道路。
wbc = centrality(G,'betweenness','Cost',G.Edges.Weight); n = numnodes(G); p.NodeCData = 2*wbc./((n-2)*(n-1)); colormap(flip(autumn,1)); title('Betweenness Centrality Scores - Weighted')
输入参数
全部折叠
G
- 输入图
graph
对象 | digraph
对象
输入图,指定为 graph
或 digraph
对象。可使用 graph
创建一个无向图,或使用 digraph
创建一个有向图。
示例: G = graph(1,2)
示例: G = digraph([1 2],[2 3])
type
- 节点中心性的类型
'degree'
| 'outdegree'
| 'indegree'
| 'closeness'
| 'incloseness'
| 'outcloseness'
| 'betweenness'
| 'pagerank'
| 'eigenvector'
| 'hubs'
| 'authorities'
节点中心性的类型,指定为下表中的选项之一。表中还列出了适用于每个类型的兼容的名称-值对组。每个节点中心性变体为衡量节点在图中的重要性提供了一种不同的方法。
选项 |
图类型 |
说明 |
名称-值对组 |
---|---|---|---|
|
无向 |
如果指定 |
|
|
有向 |
||
|
无向 |
c(i)=(A iN−1)21Ci . Ai 是可从节点
|
|
|
有向 |
||
|
无向或有向 |
c(u)=s,t≠unst(u)Nst . nst(u) 是从
|
|
|
无向或有向 |
|
|
|
无向 |
|
|
|
有向 |
|
|
注意
centrality
函数假定所有边权重都等于 1。要更改此设置,请指定边权重与 'Cost'
或 'Importance'
名称-值对组一起使用。
示例: centrality(G,'degree')
示例: centrality(G,'hubs','Tolerance',tol)
转自:
https://ww2.mathworks.cn/help/matlab/ref/graph.centrality.html
【Matlab】评估网络节点重要性相关推荐
- 复杂网络节点重要性评价方法初探
在一个网络中,不同的节点起着大小不同的作用.以社交网络为例,有意见领袖的大V,有死寂沉沉的僵尸粉:以交通网络为例,有至关重要的交通枢纽,有无关痛痒的备用中转站.在使用复杂网络分析业务问题时,如何区分网 ...
- 复杂网络分析 08网络节点重要性
08 网络节点重要性 8.1网络节点重要性 8.2节点重要性判别方法 8.1网络节点重要性 度中心性 DC(i)=kin−1DC(i) =\frac{k_i}{n-1}DC(i)=n−1ki nn ...
- 节点重要度 matlab,复杂网络节点重要度常用指标及其计算
随着图论相关理论的兴起,很多复杂实际问题都被慢慢抽象成复杂网络图 来进行研究,其中复杂网络的节点重要度研究慢慢地成为了研究的热点,尤其 是对医学.互联网.社科等领域的研究取得了长足的进步.对复杂系统的 ...
- matlab实现随机攻击网络节点+蓄意攻击网络节点(1)
更新: 有同学反馈说:网络效率的函数可能有点问题.可以试试这个网路效率函数,对应的部分改一下就可以了. 还有最大连通子图比例函数:最大连通子图函数 欢迎大家加入复杂网络交流群 如果二维码过期,请私信我 ...
- 复杂网络中节点重要性方面的研究热点问题
1.节点重要性的定义. 节点的重要性含义不同,评价节点重要性排名的结果也不同. 例如2012 年,美国<福布斯>全球影响力人物排行榜, 美国总统奥巴马成为2012 年度全球最具影响力人物, ...
- 复杂网络;社交网络;社区检测;节点重要性(重要节点识别);舆论动力学模型; 传染病模型 ;蓄意攻击 、随机攻击;网络鲁棒性、脆弱性、稳定性
复杂网络 社交网络 社区检测 节点重要性(重要节点识别) 舆论动力学模型 传染病模型 蓄意攻击 随机攻击 网络鲁棒性.脆弱性.稳定性 Python 基本的网络分析 详细私聊 网络拓扑图 连通性 网络效 ...
- 电网络节点电压matlab,电力网潮流电压计算例题与matlab程序技术总结.docx
电力网潮流电压计算例题与MATLAB程序编写佘名寰本文介绍了两个电力网潮流计算例题.一例为5个节点5条支路:另一例有6个节点7条支路,有PQ负荷节点也有PV发电机节点,变压器支路标么变比不为1.本文给 ...
- 电网络节点电压matlab,电力网潮流电压计算例题与matlab程序
本文介绍了电力网潮流计算两个例题,给出了完整的计算程序和计算结果.程序包括计算网络节点导纳矩阵和潮流电压两部分.例题选自研究生教材,比较典型实用.希望供电力专业师生和基层技术人员潮流计算时参考. 电力 ...
- 电气论文实现:电力网络之 通过计算机得到电力网络节点导纳矩阵(matlab,python)
通过计算机得到电力网络节点导纳矩阵 全文整理到word有13页 提示:专栏解锁,是可以看这个专栏所有文章.而不只是这一篇文章. 个人电气所有博文链接见下: 学好电气全靠它,个人电气博文目录(持续更新中 ...
最新文章
- pip install scipy和matplotlib报错的问题详解:(pip install其它时报错通用)
- 科学家从脑电图中解读大脑的运动意图
- 35. Leetcode 328. 奇偶链表 (链表-双指针)
- ExpressQuantumGrid.Suite.v6.30 在Delphi 7中的安装 收藏
- 温州大学《机器学习》课程课件(一)
- jquery ajax error但状态是200,jQuery $ .ajaxError()在200上运行 - 好的
- SAP Analytics Cloud连接Cloud for Customer的一些后台调试
- MySql DATE_FORMAT函数用法
- Android之JNI DETECTED ERROR IN APPLICATION: illegal class name ‘XXX‘的错误解决方法
- oracle之数据处理之视图练习
- 准备刺第一针了(飞秋官方下载)
- Centos 6.4部署DNS服务器
- 小米组织架构调整:雷军兼任中国区总裁 组建大家电部门
- 索爱S60 java,谈谈索爱S60 触屏强机U5i的功能怎么样
- c语言编程指法输入,C语言 课件 第一章引论.pdf
- 简单Android app开发_什么方法开发APP最简单?试试0代码开发平台
- windows最常用的快捷键(windows10 )
- 彻底卸载2345系列
- 关于短信猫死机的问题程序要如何解决
- 无损图片压缩-设计师程序员的心头爱
热门文章
- 洛谷P2161 [SHOI2009]会场预约【Treap】
- 如何系统学习LabVIEW?
- python上网行为分析_转:用 Python 一键分析你的上网行为, 看是在认真工作还是摸鱼...
- 【人脸识别】PCA+SVM人脸识别(准确率)【含GUI Matlab源码 823期】
- 工具类:自动生成名字工具类
- 《Mysql技术内幕,Innodb存储引擎》——事物
- [论文阅读]BiSeNet V2: Bilateral Network with Guided Aggregation for Real-time Semantic Segmentation
- python 的几个源生方法
- 2021年安全员-B证考试题及安全员-B证报名考试
- 基于51单片机的万年历可显示农历带闹钟整点报送功能proteus仿真原理图PCB