深度学习 GNN图神经网络(一)图的基本知识

news2024/10/5 17:15:47

一、前言

本文主要介绍图的一些基础知识,不会太深奥,够用就行。我们以民国最出名的七角恋人物关系图为例进行讲解。

二、图的概念

图(Graph)可以用来描述实体之间的关系。

如下图所示,一张图捋清民国最出名的七角恋(摘自全历史):
在这里插入图片描述
这是一张图,包括人物实体以及人物关系。我们抽象成下面的形式,人物是图的顶点(Vertex)、人物关系是图的边(Edge)。顶点(节点)和边都可以附带各自的属性(如:姓名、关系类型等)。
在这里插入图片描述

二、图的表示

上面的带箭头符号的边是有方向的,是有向图。我们进一步抽象,把属性和边方向去掉,变成一张简单的无向图
在这里插入图片描述
如上图所示,图 G \mathcal{G} G包含9个顶点、13条边。我们可以表示为:
G = { V , E } \mathcal{G=\{V,E\}} G={V,E},其中: V = { v 1 , v 2 , … , v 9 } \mathcal{V=\{v_1,v_2,\dots,v_9\}} V={v1,v2,,v9} E = { e 1 , e 2 , … , e 13 } \mathcal{E=\{e_1,e_2,\dots,e_{13}\}} E={e1,e2,,e13}

但是,我们需要用计算机来进行图计算,那么在计算机里怎么表示一张图呢?
如下图,我们用一张二维图表表示图 G \mathcal{G} G 1 1 1 表示两个顶点之间存在关系。
在这里插入图片描述
如果我们空白处用 0 0 0 填充,那么就形成了一个矩阵 A A A,这个矩阵叫做邻接矩阵,等价于图 G \mathcal{G} G,可以简单地用二维数组存储,如下:
A = ( 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ) A=\begin{pmatrix} 0&1&0&1&1&0&1&0&0 \\ 1&0&0&0&0&0&0&1&0 \\ 0&0&0&1&0&0&0&1&0 \\ 1&0&1&0&1&0&0&1&0 \\ 1&0&0&1&0&1&1&0&1 \\ 0&0&0&0&1&0&1&0&0 \\ 1&0&0&0&1&1&0&0&0 \\ 0&1&1&1&0&0&0&0&0 \\ 0&0&0&0&1&0&0&0&0 \\ \end{pmatrix} A= 010110100100000010000100010101010010100101101000010100100011000011100000000010000

三、图的性质

为了方便对比参考,把上面的图贴到这里:
在这里插入图片描述

3.1 度

一个节点的度就是与之相连的边的条数。例如顶点 v 1 v_1 v1 e 1 、 e 2 、 e 3 e_1、e_2、e_3 e1e2e3 三条边,则度为3;同理 v 2 v_2 v2的度为2、 v 3 v_3 v3的度也为2。

在有向图中,根据边的方向还分为出度入度

3.2 连通性

如果通过一个节点的边,可以到达图的任意节点,那么这个图是连通图,反正为非连通图

3.3 子图

指图的一部分。

3.3 中心性

度中心性
节点 v v v的度中心性= 顶点 v 的度 n − 1 \frac{顶点v的度}{n-1} n1顶点v的度 n n n为图的节点数量。
例如 v 1 v_1 v1的度中心性为 3 9 − 1 = 0.375 \frac{3}{9-1}=0.375 913=0.375 v 2 v_2 v2的度中心性为 2 9 − 1 = 0.25 \frac{2}{9-1}=0.25 912=0.25

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

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

相关文章

DW动手学数据分析Task5:数据建模及模型评估

目录1 建模1.1 数据分析流程1.2 模型搭建准备工作1.2.1 导入库1.2.2 载入数据1.3 模型搭建1.3.1 选择模型1.3.2 切割训练集和测试集1.3.3 模型创建1.3.4 输出模型预测结果2 评估2.1 评估的准备工作2.2 模型评估2.2.1 交叉验证2.2.2 混淆矩阵2.2.3 ROC曲线1 建模 1.1 数据分析流…

Mac创建python2虚拟环境

前提:已经安装配置好python2.7版本,使用python和pip命令可以得到如下返回信息 1.安装virtualenv和virtualenvwrapper pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple sudo pip install virtualenvwrapper -i https://pypi.tuna.t…

1595_AURIX_TC275_PMU_应用提示2

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 如果通过标注来标注了异常字行,那么在算法设计的时候,检查到之后应该跳过这一行的数据。 可以纠正的ECC在PFlash中是可以忽略的,相应的信息只是可以用来…

【SpringCloud】Ribbon负载均衡的基本原理与使用

【SpringCloud】Ribbon负载均衡的基本原理与使用 一、负载均衡原理 二、源码解析 LoadBalanced IDEA源码跟踪 负载均衡源码小结 三、负载均衡策略 负载均衡策略 策略规则解析 自定义负载均衡策略 (1)代码方式 (2)配置文…

Unity的Bounds(包围盒)简记

Unity的Bounds(包围盒)简记一、Bounds(包围盒)概述1.什么是包围盒?2.包围盒的类型2.1 AABB包围盒(Axis-aligned bounding box)2.2 包围球(Sphere)2.3 OBB方向包围盒(Oriented bounding box)2.4 FDH固定方向凸包(Fixed directions hulls或k-DOP)2.5 包围…

云服务器部署前后端分离项目(若依)详细教程

第一次在Linux云服务器上部署前后端分离项目,查了很多资料和视频,踩了许多坑。成功实现部署若依的前后端分离项目后,想记录一下前后端部署的过程,供学习的小伙伴参考。 目录1. 环境准备2. 开放端口3. 下载前后端项目4. 前端部署5.…

Linux部署Kafka及常见问题记录

Linux部署Kafka及常见问题记录kafka 使用场景Kafka 基本概念BrokerTopic(主题)Partition(分区)ProducerConsumerConsumer Group(消费者群组)offset 偏移量Linux 安装&启动 kafka修改核心配置文件创建数据存放目录启动验证 kafk 是否启动成功Topic (主…

AX7A200教程(1):DDR3仿真平台搭建(一)

本章节主要调用官方的MIG控制器,并使用官方的MIG控制器进行仿真,开发环境vivado2020.1鉴于很多童鞋无法仿真自己新建的DDR工程,即使使用modelsim仿真也仿真失败,本例程着重在vivado中对自己新建的带DDR3的工程进行仿真。新建DDR3工…

Python SciPy 插值及其他各种插值法

SciPy 插值什么是插值?在数学的数值分析领域中,插值(英语:interpolation)是一种通过已知的、离散的数据点,在范围内推求新数据点的过程或方法。简单来说插值是一种在给定的点之间生成点的方法。例如&#x…

【MySQL】MyCAT入门综述◆掌握MyCAT的基础概念、功能及适用场景

📫作者简介:小明java问道之路,专注于研究 Java/Liunx内核/C及汇编/计算机底层原理/源码,就职于大型金融公司后端高级工程师,擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1f4…

二叉树知识概括锦囊(一)

作者:爱塔居 专栏:数据结构 作者简介:大三学生,希望跟大家一起进步! 文章目录 目录 文章目录 一、树形结构 二、树的基础知识 三、二叉树 3.1 概念 3.2 特殊的二叉树 3.3 二叉树的性质 四、习题挑战 一、树形结构 树是…

【论文速递】IJCV2022 - CRCNet:基于交叉参考和区域-全局条件网络的小样本分割

【论文速递】IJCV2022 - CRCNet:基于交叉参考和区域-全局条件网络的小样本分割 【论文原文】:CRCNet: Few-shot Segmentation with Cross-Reference and Region-Global Conditional Networks 获取地址:https://link.springer.com/article/10.1007/s112…

BACnet协议详解——应用层说明一

文章目录写在前面1. 应用层模型1.1 需确认的应用层服务1.2 无需确认的应用层服务2 BACnet报文的分段2.1 报文分段规则2.1.1 APDU数据流的分段规则2.1.2 APDU最大长度的确定2.1.3 可接受的最大分段数2.2 分段协议控制信息(PCI)写在前面 年关将至&#xf…

分享77个PHP源码,总有一款适合您

PHP源码 分享77个PHP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 77个PHP源码下载链接:https://pan.baidu.com/s/12hh-lhIVPL1bZw-d2sfVlQ?pwdvhqj 提取码&#xff…

selenium 操作已经打开的浏览器

有时通过selenium打开网站时,发现有些网站需要扫码登录,就很头疼,导致爬虫进展不下去。 如果继续想使用selenium进行数据抓取,下一步应该怎么办呢? 步骤一:创建文件夹 在电脑的D盘或者F盘或者合适的盘创建…

《Python数据分析基础教程:NumPy学习指南:第二版》读书笔记

内容 主要介绍了NumPy库中的函数。 组成方式 用非常零散的知识点串联成章节。 内容摘要 极简地展示了章节中所运用的函数。 第一章 arrange函数创建NumPy数组。 第二章 NumPy特性 在NumPy中,复数的虚部是用j表示的。如果数组中包含复数元素,则…

VMware vSphere 中 Clone 与 Template 的区别

VMware vSphere 中 Clone 与 Template 的区别 Clone(克隆)Template(模板)克隆在克隆过程中为正在运行的虚拟机创建一个精确的副本模板作为具有根据组织标准预先定义的配置的虚拟机的基线映像。克隆虚拟机使用相同的配置和安装的软…

【C语言初阶】指针

文章目录1.指针是什么2.指针和指针类型2.1指针的解引用2.1指针类型的意义3.野指针3.1野指针成因3.2如何规避野指针4.指针运算4.1指针-整数4.2指针-指针4.3指针的关系运算5.指针和数组6.二级指针7.指针数组1.指针是什么 指针理解的2个要点: 指针是内存中一个最小单元…

【GD32F427开发板试用】+使用USBFS轻松实现HID键盘应用

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:不锈钢铁侠 前言 最近有项目需要用到键盘自动输入功能,提升工作效率。故使用该开发板实现自定义输入内容并通过按键控制自动通过u…

STM32——外部中断

目录 外部中断简述 什么是外部中断 传统单片机与新型单片机外部中断区别 STM32外部中断请求 STM32中断线与IO口的对应 STM32 中断服务函数 外部中断与中断服务函数的对应 中断服务函数列表 STM32外部中断程序编写 常用的库函数 外部中断的一般配置步骤 外部中断简…