图算法介绍

news2024/11/13 19:49:18

为什么要用图算法

图算法有助于我们理解关联数据。理解网络及其内部联系可以为洞察和创新提供不可思议的潜力。

图算法特别适用于理解结构和揭示高度关联的数据集中模式。目前,大数据汇集、混合和动态更新的需求非常强烈,图算法有助于体现数据的关联性和交互性,针对关系进行更复杂的分析,并可以为AI提供丰富的上下文信息。

随着数据间的联系越来越紧密,理解数据之间的依赖关系也就越来越重要。

路径查找算法

路径是图算法和图分析的基础,如:查找最短路径是使用图算法执行非常频繁的任务,最短路径是跳数最少或权重最小的遍历路径。如果图是有向的,它就是指两个节点之间关系方向所允许的最短路径。

广度优先搜索算法

首先访问最邻近的节点

深度优先搜索算法

先沿着各分支进行搜索

最短路径算法

所有点对最短路径算法

单源最短路径算法

最小生成树算法

随机游走算法

中心性算法

中心性的要点就是了解网络中哪个节点更重要,什么是“重要”,因此我们需要创建不同类型的中心性算法来满足不同场景下的需求。

度中心性算法

度中心性算法计算节点的输入关系数和输出关系数,查找图中受欢迎的节点。节点的度是节点拥有的直接关系数,可按入度和出度两种指标计算。

度中心性的可视化

接近中心性算法

中间中心性算法

中间中心性算法检测节点对图中信息流或资源的影响程度,通常用于查找将图的一部分与另一部分桥接的节点。

中间中心性算法计算连通图中每对节点之间的最短(加权)路径。每个节点的分值根据通过该点的最短路径数量确定。通过节点的最短路径数量越多,其得分就越高。

在某些场景下,最关键的要素并不是拥有绝对权威的或最高地位的要素。而某些中间人将各个群体联系起来,或者说中间人对资源或信息流的控制权最大

中枢节点位于两个节点之间的每条最短路径上。创建更多最短路径可以减少中心节点的数量,可用于降低风险等场景。

PageRank算法

PageRank算法可能是最著名的中心性算法,用来度量节点的传递性(或方向性)影响。

PageRank算法是以Google联合创始人Larry Page的姓氏命名的,Larry Page创建PageRank算法的初衷是在谷歌搜索结果中对网站进行评级。其基本假设是: 一个网页如果有更多或更有影响力的输入链接,就更有可能是可信来源。PageRank算法度量节点输入关系的数量和质量,以此估计该节点的重要性。 在网络中,如果节点拥有的来自其他有影响力的节点的输入关系越多,那么它就越有可能在网络中占据主导地位。

前面几种中心性算法都是度量节点的直接影响,PageRank算法则考虑节点的邻近点影响,及其临节点的邻节点的影响。例如:

1
与拥有一大堆影响力小的朋友相比,拥有几个很有影响力的朋友能让人更有影响力。

PageRank算法的计算方法有两种:

  1. 将一个节点的等级迭代分散到其邻节点。
  2. 随机遍历图并计算每个节点在遍历过程中被名中的频率。

社团发现算法

连通性是图论的核心概念之一,它支持复杂网络分析,如:社团发现。现实世界中的大多数网络或多或少呈现出独立子图这样的子结构。识别社团对于评价群体行为和突发现象有不可或缺的作用。

识别社团的一般原则: 社团成员在群组内部的关系要多于其与群组外部节点的关系。识别这些有关联关系的集合可以揭示节点簇、孤立群组和网络结构。

连通度用于发现社团并量化分组的质量。评估图中不同类型的社团有助于揭示图的结构,如:中心结构和层级结构,也有助于了解某个群组和吸引和排斥其他群组的倾向。

度量算法(面向整体关系稠密度,用于衡量图的结构特性)

三角形计数算法

三角计数算法(Triangle Count)统计图中三角形个数。三角形越多,代表图中节点关联程度越高,组织关系越严密。

聚类系数分量

聚类系数表示一个图中节点聚集程度的系数。在现实的网络中,尤其是在特定的网络中,由于相对高密度连接点的关系,节点总是趋向于建立一组严密的组织关系。聚类系数算法(Cluster Coeffcient)用于计算图中节点的聚集程度。

分量算法(用于发现连通簇)

强连通分量算法

在如上有向图中,如果两个顶点A、B间,有一条从B到A的有向路径,同时还有一条从A到B的有向路径,则称A、B两个顶点强连通

如果有向图中的每两个顶点都强连通,称该有向图是一个强连通图有向非强连通图极大强连通子图,称为强连通分量

连通分量算法

标签传播算法(可基于节点标签快速推断群组)

标签传播算发是一种基于图的半监督学习方法,基本思路是用已标记节点的标签信息去预测未标记节点的标签信息。基本过程如下:

  1. 为每个节点随机的指定一个自己特有的标签;
  2. 逐轮刷新所有节点的标签,直到所有节点的标签不再发生变化为止。对于每一轮刷新,节点标签的刷新规则如下:

对于某一个节点,考察其所有邻居节点的标签,并进行统计,将出现个数最多的那个标签赋值给当前节点。当个数最多的标签不唯一时,随机选择一个标签赋值给当前节点。

在标签传播算法中,节点的标签更新通常有同步更新和异步更新两种方法。同步更新是指,节点x在t时刻的更新是基于邻接节点在t-1时刻的标签。异步更新是指,节点x在t时刻更新时,其部分邻接节点是t时刻更新的标签,还有部分的邻接节点是t-1时刻更新的标签。LPA算法在标签传播过程中采用的是同步更新,研究者们发现同步更新应用在二分结构网络中,容易出现标签震荡的现象。因此,之后的研究者大多采用异步更新策略来避免这种现象的出现。

Louvain模块度算法(用于研究分组的质量和层级结构)

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

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

相关文章

树结构的实际应用

堆排序 堆排序的介绍 堆排序利用堆这中数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它是不稳定排序堆是具有以下性质的完全二叉树:每个节点的值都大于或等于其它左右孩子节点的值,称为大顶堆,注意:没有要求节点的左孩子和右…

苹果电脑的文件怎么复制到移动硬盘,macbook文件怎么拷贝到移动硬盘

如果我们使用的是Mac电脑,刚好需要将一些文件从Mac复制到NTFS外置硬盘,那么,苹果电脑的文件怎么复制到移动硬盘? 一、如何将文件从Mac电脑上复制到NTFS外置硬盘? 我可以在Mac上正常使用NTFS外置硬盘吗?很多…

Linux【搭建环境与基本指令】

Linux【搭建环境与基本指令】🍎一.Linux搭建环境🍒1.1什么是Linux🍉1.1.1Linux介绍🍉1.1.2CentOS 和 RedHat 的关系🍉1.1.3在Java中应用到Linux的方面🍒1.2XShell的安装与使用🍉1.2.1XShell的安…

定时器的使用和线程安全

在linux下如果对定时要求不太精确的话,使用alarm()和signal()就行了; 但是如果想要实现精度较高的定时功能的话,就要使用setitimer函数。 核心api: int setitimer(int which, const struct itimerval *value, struct itimerval *…

【李宏毅】机器学习-RNN

RNN(Recurrent Neural Network) 为什么需要RNN呢? 举例来说,有一个任务需要识别每个单词代表的含义。在下面的句子中,taipei分别表示目的地和出发地,我们希望神经网络能够在不同的句子中,识别出不同的语义,…

3、排序(order by)与分页(limit)多表查询 -mysql

3、排序与分页&多表查询 -mysql排序与分页一、排序 Order By二、分页 Limit多表查询一、一个案例引发的多表连接2、笛卡尔积(或交叉连接)的理解二、多表查询分类讲解1、等值连接 vs 非等值连接2、自连接 vs 非自连接3、内连接 vs 外连接三、SQL99语法…

pytorch深度学习实战lesson18

第十八课 卷积层 卷积是深度学习最重要的概念之一,下面来学习和回顾一下卷积的基本概念。 目录 理论部分 从全连接层到卷积层 卷积层 实践部分 理论部分 从全连接层到卷积层 还是从一个例子开始:假设我要对猫和狗进行分类。 假设我用一千二百万像…

3年经验,光靠自动化测试基础,你可能连17k的测试岗都找不到,认清现实.....

相信对于每一个求职者来说都有被面试的经历吧,曾经作为一位测试小白的我,每一次面试过后都会各种吐槽面试官的不是,吐槽HR人事的不足,以及自己的有点没有发挥出来,今天我终于体会了一次面试官的心情.... 起因&#xf…

【夯实Kafka知识体系及基本功】分析一下(Broker)服务的可靠性机制分析「原理篇」

副本机制 分布式系统中,为了提高可靠性,最常用、最有效的策略是“副本机制”,Kafka也不例外。 Kafka 为每个 Partition 维护了一个 AR(Assigned Replicas)列表,由 ISR(In-Sync Replicas&#x…

通过瑞利判据对显微镜物镜进行分辨率研究

摘要 通常可以采用瑞利判据理论表征显微镜的分辨率,瑞利判据是1896年由第三代瑞利男爵约翰威廉斯特拉特(John William Strutt)提出的。该理论认为,当一个艾里图样的中心与另一个艾里图样的第一个最小值重叠时,就可以分辨它们。在这个例子中…

力扣(LeetCode)3. 无重复字符的最长子串(C++)

滑动窗口 设置滑动窗口, lll 维护左窗口 , rrr 维护右窗口 ,利用哈希表统计字母出现次数。 遍历字符串 sss ,lll 循环右移,每次移动 , lll 指向的字母 s[l]s[l]s[l] 出现次数 。如果窗口内 s[l]s[l]s[l] …

NCMMSC 2021丨长短视频多语种多模态识别挑战赛

比赛背景 2021年第十六届全国人机语音通讯学术会议(National Conference on Man-Machine Speech Communication,NCMMSC2021)将于2021年10月15-18日在江苏徐州举行。本次会议由中国中文信息学会和中国计算机学会联合主办。 针对本次会议&…

STA -- clock gating check

对于现在design中例化好的icg以及工具插进去的icg,不存在clock gating check的问题,因为clock gating 搞成了一个lib cell,不再是latch加上与门的组合。不过design中除了这些icg,还有一些的clock gating check的出现,这…

写给 Android 开发:从0到1,再从1到N,都离不开 Framework

作为过来人,发现很多学习者和实践者都在 Android Framework上面临着很多的困扰,比如: 工作场景中遇到难题,往往只能靠盲猜和感觉,用临时性的补救措施去掩盖,看似解决了问题,但下次同样的问题又…

Node.js开发、CommondJS 、ES-Module模块化设计

目录 Node.js是什么 基础使用 Node的REPL 全局变量 模块化设计 CommondJS规范 基础使用exports和module.exports require CommondJS优缺点 AMD和CMD规范 ES_Module 基本使用方法 导出 导入 结合使用 默认导出 ES Module解析流程 Node.js是什么 Node与浏览器的对比 在…

两点云求差集和交集

这里两点云的差集指从点云1中删除属于点云2的点得到的点集,并集指既属于点云1又属于点云2的点集。 两点云求差集 基于kd-tree搜索的方法较快速,当然也可以暴力搜索。思路如下: step1 在点云2建立kd-tree,设置容忍误差&#xff0…

UI控件DevExpress WinForm新手指南——如何在应用启动时执行操作

DevExpress WinForm拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任…

RESTful 接口设计

文章目录RESTful 接口设计1.获取所有员工列表2.增加一个员工3.更新员工4.删除员工5.查询单个员工RESTful 接口设计 1.获取所有员工列表 /*** 获取所有员工* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--get* 3. 请求参数--无* 4. 请求响应--多个员工--List<Em…

苹果iOS App Store上架操作流程

很多开发者在开发完iOS APP、进行内测后&#xff0c;下一步就面临上架App Store&#xff0c;不过也有很多同学对APP上架App Store的流程不太了解&#xff0c;下面我们来说一下iOS APP上架App Store的具体流程&#xff0c;如有未涉及到的部分&#xff0c;大家可以及时咨询&#…

基于微信小程序的学生购电系统设计与实现-计算机毕业设计源码+LW文档

小程序开发说明 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Mave…