中心性算法归纳

news2025/1/17 14:01:08

中心性算法不仅是在我所学习的计算机网络当中起很重要的作用,在交通网络、社交网络、信息网络、神经网络当中也有很多的应用例子。今天我在这里总结一下场景的几种中心性算法。

参考文献

Python NetworkX库

偏心中心性(Eccentricity Centrality)

偏心中心性是一种用于衡量网络中节点重要性的图论指标。这种中心性度量基于每个节点到网络中所有其他节点的最短路径的最大值。具体而言,一个节点的偏心中心性是由其到达网络中所有其他节点的最短路径中最长的那一个决定的。

下图中计算节点s的偏心中心性时,最远节点为t且距离为3,那么s的偏心中心性就是1/3
在这里插入图片描述

接近中心性(Closeness Centrality)

这是一个节点到网络中所有其他节点的平均最短路径长度的倒数。直观地说,接近中心性高的节点可以快速到达网络中的其他节点。这个指标在需要快速传播信息的网络中非常有用。

上图中计算节点s的中心性时,就计算它到所有节点的距离之和,再取倒数就行,标准化的话还需要再乘以节点数N-1

以上两种中心性算法的缺陷

如果在有向图中,两个节点的最短距离为无限大,也就是没有路径到达,那么中心性为0,就无法比较,所以以上两种中心性算法只能应用在强连通有向图当中。无向图当中,如果存在孤立点,也就是没有任何连接的节点,也无法应用以上两种中心性算法。




度中心性(Degree Centrality)

这是最直观的中心性定义,即一个节点的度(与其相连的边的数量)。在有向图中,我们可以进一步区分入度中心性(指向节点的边的数量)和出度中心性(从节点出发的边的数量)。度中心性是网络分析中最常用的中心性指标之一。

比如下面有向图当中,S的出度中心性为2,入度中心性为0
在这里插入图片描述

特征向量中心性(Eigenvector Centrality)

这是一个节点的重要性不仅取决于它有多少邻居,而且还取决于它的邻居是多么的重要。换句话说,如果一个节点与多个重要的节点相连,那么这个节点也被认为是重要的。这个指标在识别影响力大的节点方面非常有用,例如在社交网络分析中。

特征向量中心性需要计算邻接矩阵的特征值和对应的特征向量等,计算较为复杂,参照NetworkX库。

注意:在应用到有向图时,最大连通子图以外的节点中心性为0,而且最大特征值和特征向量可能不唯一,所以推荐将特征向量中心性应用到强连通无向图。




介数中心性(Betweenness Centrality)

这是一个节点在网络中所有节点对之间的所有最短路径中出现的次数。直观地说,介数中心性高的节点在网络中的信息流动中起着重要的作用。

介数中心性基于这样的假设:网络中的某些节点对于不同节点间的信息流动或互动起到关键的桥梁作用。它不仅仅考虑了一个节点的直接连接数量(如度中心性所做的那样),而是考虑了节点在连接网络中不同部分的能力。因此,即使一个节点的直接连接数不多,但如果它位于网络的关键位置(如连接两个大社交群体的桥梁),那么它的介数中心性也可能很高。

介数中心性在多种场景下非常有用,特别是在理解网络中信息流动、资源分配以及社交影响力方面。它帮助识别那些可能不是最明显的重要节点,但对于网络的整体结构和功能却至关重要的节点。

我们也可以通过下面的公式来理解,我们假设c(v) 代表节点 v 的介数中心性,σ(i, j)表示节点 i 和 j (i,j∈所有节点V)之间所有最短路径的集合,σ(i, j|v) 表示所有通过节点 v 的最短路径的总和。这样我们就能知道节点v的重要性。
在这里插入图片描述

以下是两种由介数中心性衍生出来的中心性算法

最短路径中心性(Shortest Path Centrality)

这是一个节点在网络中所有节点对之间的所有最短路径中出现的次数。这与介数中心性非常相似,但通常用于加权网络,其中边的权重表示节点之间的距离或成本。

在NetworkX库当中,我们可以用betweenness_centrality算法当中的weight参数去定义每条边的权重,不然的话所有路径都是相同的权重。

组介数中心性(Group Betweenness Centrality)

这是一组节点在网络中所有节点对之间的所有最短路径中出现的次数。这个指标用于识别一组节点在网络中的整体重要性。

假设计算一组节点C的组介数中心性 c(C)组介数中心性,其中 σ(i, j) 代表节点 i 和 j(i,j∈所有节点V) 之间所有最短路径对的集合。σ(i, j|C) 代表的是所有通过群组 C 中任何节点的最短路径对的分数之和。计算之前,我们先要定义这组节点C的数目。

在这里插入图片描述




网页排名算法(PageRank)

PageRank是一种用于网页排名的算法,可以看作是特征向量中心性的一种变体,适用于有向图,特别是网页链接网络。PageRank 的核心思想基于这样一个假设:重要的网页很可能被其他重要网页所链接。

这个算法基于两个关键原则:

  • 链接数量:如果一个网页被许多其他网页链接(引用),那么这个网页被认为是重要的,因此应该有一个较高的PageRank值。
  • 链接质量:如果一个网页被已经被认为重要(即具有高PageRank值)的网页所链接,那么这个链接对该网页的PageRank值的贡献会更大。

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

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

相关文章

在Linux下探索MinIO存储服务如何远程上传文件

🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、Cpolar杂谈 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. 创建Buckets和Access Keys二. Linux 安装Cpolar三. 创建连接MinIO服务公网地…

python时间处理方法和模块

在 Python 中,有一些内置的模块和库,可以帮助我们处理日期和时间的表示、计算和转换。 1. 时间模块(time) Python 的 time 模块提供了一系列函数来处理时间相关的操作。通过这个模块,可以获取当前时间、睡眠指定时间…

BIT-6-指针(C语言初阶学习)

1. 指针是什么 2. 指针和指针类型 3. 野指针 4. 指针运算 5. 指针和数组 6. 二级指针 7. 指针数组 1. 指针是什么? 指针是什么? 指针理解的2个要点: 指针是内存中一个最小单元的编号,也就是地址平时口语中说的指针,通常…

向量投影:如何将一个向量投影到矩阵的行向量生成子空间?

向量投影:如何将一个向量投影到矩阵的行向量生成子空间? 前言 本问题是在学习Rosen梯度投影优化方法的时候遇到的问题,主要是对于正交投影矩阵(NT(NNT)-1N)的不理解,因此经过查阅资料,学习了关于向量投影的知识&…

MySQL——复合查询

目录 一.基本查询回顾 二. 多表查询 三.自连接 四.子查询 1.单行子查询 2.多行子查询 3.多列子查询 4.在from子句中使用子查询 5.合并查询 一.基本查询回顾 准备数据库: 查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为…

欠采样对二维相位展开的影响

1.前言 如前所述,相位展开器通过计算两个连续样本之间的差来检测图像中包裹的存在。如果这个差值大于π或小于-π,则相位展开器认为在这个位置存在包裹。这可能是真正的相位包络,也可能是由噪声或采样不足引起的伪包络。 对欠采样的相位图像…

Flink面试题与详解

Flink面试题目合集 从牛客网上找到的一些面试题,如果还有其他的,欢迎大家补充。 1、能否详细描述下Apache Flink的架构组件和其工作原理?请介绍一下Flink on YARN部署模式的工作原理。 官网图: 由两个部分组成,JM&am…

使用Velero备份、恢复k8s集群上的资源

一、Velero简介 Velero提供备份和恢复 Kubernetes 集群资源和持久卷的工具。 Velero功能: 对群集进行备份,并在丢失时进行还原。将集群资源迁移到其他集群。 Velero 包括: 在群集上运行的服务器在本地运行的命令行客户端 开源地址&…

CAD制图

CAD制图 二维到三维 文章目录 CAD制图前言一、CAD制图二、机械设计三、二维图纸四、三维图纸总结前言 CAD制图可以提高设计效率和准确性,并方便文档的存档和交流,是现代工程设计中不可或缺的一部分。 一、CAD制图 CAD(Computer-Aided Design)是利用计算机技术辅助进行设计…

DoIP学习笔记系列:(七)doipclient测试工具安装使用说明

文章目录 优点doipclient简介安装部署环境准备安装doipclient安装python-uds测试传送门 DoIP学习笔记系列:导航篇 在DoIP的开发测试过程中,一般是用CANoe+VN5620+cdd的方式测试,此种方式对熟悉CANoe使用的小伙伴非常友好,调试方便,稳定性也不错,那有没有其他的方式呢?比…

ubuntu保存分辨率失效解决办法

在VM虚拟机中,遇到修改ubuntu分辨率后,重启后又重置的解决办法。 目前我的ubuntu版本是:ubuntu 18.04.6 版本。 1.首先,在你喜欢的目录建立一个.sh 脚本文件。 终端执行命令:sudo vim xrandr.sh 2.按 i 进入编辑状…

ARM 点灯

.text .global _start _start: led1设置GPIOE时钟使能 RCC_MP_AHB4ENSETR[4]->1 0X50000A28LDR R0,0X50000A28 指定寄存器地址LDR R1,[R0] 将寄存器数值取出来放在R1中ORR R1,R1,#(0x1<<4) 将第4位设置为1STR R1,[R0] 将修改后的值写回去设置PE10为输出 GPIOE…

Prometheus API 使用介绍|收藏

​ &#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试…

Microsoft edge浏览器对比谷歌浏览器 edge浏览器好用吗 edge浏览器怎么更换主页

近年来&#xff0c;由于谷歌浏览器的垄断&#xff0c;许多人都已经习惯于使用谷歌浏览器。随着互联网的普及&#xff0c;浏览器成为了人们上网必备的工具之一。而近年来&#xff0c;微软公司推出的 Microsoft Edge 浏览器备受关注。那么&#xff0c;Microsoft Edge 浏览器真的好…

2. 结构型模式 - 桥接模式

亦称&#xff1a; Bridge 意图 桥接模式是一种结构型设计模式&#xff0c; 可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构&#xff0c; 从而能在开发时分别使用 问题 抽象&#xff1f; 实现&#xff1f; 听上去挺吓人&#xff1f; 让我们慢慢来&#x…

PyQt5设计一个简单的抽奖系统

PyQt5抽奖系统 程序运行截图 抽奖系统代码 该系统使用PyQt5模块以及openpyxl模块开发&#xff0c;需要使用pip安装导入PyQt5模块和openpyxl模块 import random, sys from PyQt5.QtWidgets import QWidget, QFormLayout, QLineEdit, QVBoxLayout, QApplication, QPushButton,…

2023年Top5搭建帮助中心工具集锦

随着企业知识管理的不断深化&#xff0c;帮助中心成为了一个越来越重要的组成部分。帮助中心是一个集成了企业知识、FAQ、常见问题解答、教程、使用指南等内容的在线平台&#xff0c;旨在为用户提供快速、准确的问题解答和自助服务。那么在这一年&#xff0c;有哪些搭建帮助中心…

汽车级EEPROM 存储器 M24C64-DRMN3TP/K是电可擦除可编程只读存储器?它的功能特性有哪些?

M24C64-DRMN3TP/K是一款64 Kbit串行EEPROM汽车级设备&#xff0c;工作温度高达125C。符合汽车标准AEC-Q100 1级规定的极高可靠性。 该设备可通过一个高达1MHz的简单串行I2C兼容接口访问。 存储器阵列基于先进的真EEPROM技术&#xff08;电可擦除可编程存储器&#xff09;。M2…

Java多线程技术四——定时器(备份)

1 定时器的使用 在JDK库中Timer类主要负责计划任务的功能&#xff0c;也就是在指定的时间开始执行某一个任务&#xff0c;Timer类的方法列表如下&#xff1a; Timer类的主要作用就是设置计划任务&#xff0c;封装任务的类却是TimerTask&#xff0c;该类的结构如下图 因为TimerT…

UGC编辑器开发-代码实现物体旋转操作轴

1.视频效果&#xff1a; 工程百度网盘链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1OYkt2T3Wv_Hh0Bt7nLyR-A 提取码&#xff1a;1212 2.设计思路&#xff1a; 我们从鼠标点击的屏幕坐标打出一根射线&#xff0c;求出射线和旋转面的交点&#xff0c;交点减去原…