【GNN从入门到精通】第一章 图的基本知识

news/2024/5/19 4:04:24/文章来源:https://blog.csdn.net/weixin_51545953/article/details/127150000

文章目录

  • 一、图的表示
    • 1.1 什么是图?
  • 二、图的特征
    • 2.1 子图
    • 2.2 连通分量
    • 2.3 接通图
      • 2.3.1 无向图连通图
      • 2.3.2 有向连通图
    • 2.4 最短路径
    • 2.5 图直径
  • 三、图中心性
    • 3.1 度中心性
    • 3.2 特征向量中心性
    • 3.3 中介中心性
    • 3.4 连接中心性
  • 四、网页排序算法
    • 4.1 PageRank
    • 4.2 HITS
    • 4.3 例子
  • 五、代码实现


一、图的表示

1.1 什么是图?

图是由点和边组成的数据结构
在这里插入图片描述

二、图的特征

2.1 子图

2.2 连通分量

无向图G的一个极大连通子图称为G的一个连通分量(连通分支)。连通图只有一个连通分量,即其自身;非连通图的无向图有多个连通分量

2.3 接通图

2.3.1 无向图连通图

对于一个无向图,如果任意的节点i能够到达另一个节点j,则称之为连通图

2.3.2 有向连通图

在这里插入图片描述

2.4 最短路径

图上一点到另一点的最短路径

2.5 图直径

图中两节点的最短路径的最大值

三、图中心性

3.1 度中心性

在这里插入图片描述

3.2 特征向量中心性

在这里插入图片描述

3.3 中介中心性

在这里插入图片描述

3.4 连接中心性

在这里插入图片描述

四、网页排序算法

4.1 PageRank

在这里插入图片描述

4.2 HITS

在这里插入图片描述

4.3 例子

在这里插入图片描述

五、代码实现

import pandas as pd
import networkx as nxedges = pd.DataFrame()
edges['sources'] = [1, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5]
edges['targets'] = [2, 4, 5, 3, 1, 2, 5, 1, 5, 1, 3, 4]
edges['weights'] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
G = nx.from_pandas_edgelist(edges, source='sources', target='targets', edge_attr='weights')print("度:", nx.degree(G))
print("连通分量:", list(nx.connected_components(G)))
print("图直径:", nx.diameter(G))print("度中心性:", nx.degree_centrality(G))
print("特征向量中心性:", nx.eigenvector_centrality(G))
print("Betweeness:", nx.betweenness_centrality(G))
print("Closedness:", nx.closeness_centrality(G))print("PageRank:",nx.pagerank(G))
print("HITS:",nx.hits(G))

输出:

: [(1, 3), (2, 2), (4, 2), (5, 3), (3, 2)]
连通分量: [{1, 2, 3, 4, 5}]
图直径: 2
度中心性: {1: 0.75, 2: 0.5, 4: 0.5, 5: 0.75, 3: 0.5}
特征向量中心性: {1: 0.529898889076173, 2: 0.35775191431708964, 4: 0.4271316779596083, 5: 0.5298988890761731, 3: 0.35775191431708964}
Betweeness: {1: 0.25, 2: 0.08333333333333333, 4: 0.0, 5: 0.25, 3: 0.08333333333333333}
Closedness: {1: 0.8, 2: 0.6666666666666666, 4: 0.6666666666666666, 5: 0.8, 3: 0.6666666666666666}
PageRank: {1: 0.24369622576677993, 2: 0.1722562971205864, 4: 0.16809495422526696, 5: 0.24369622576677993, 3: 0.1722562971205864}
HITS: ({1: 0.24059715204600776, 2: 0.162434564716677, 4: 0.19393656647463048, 5: 0.24059715204600784, 3: 0.16243456471667694}, {1: 0.24059715204600784, 2: 0.16243456471667692, 4: 0.1939365664746304, 5: 0.24059715204600773, 3: 0.16243456471667697})

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游程描述的任意区域最小旋转矩形算法实现

效果 采用游程描述了多个区域,经过算法计算,找到最小包围矩形。 白色是指定的区域,黄色是该区域的最小旋转矩形。 算法原理 有时候算法不一定很高深,只要把道理点破,实现起来很简单,难的是最开始的算法构思过程。 区域最小旋转矩形的算法原理也很简单:将区域从0到90…

Dapper 在继承层次结构中处理数据

Dapper 包含一项功能,用于处理可能逐行映射到不同类型的数据。在处理使用Table Per Hierarchy存储模式的继承层次结构时,此功能特别有用,即一个表用于表示层次结构中的所有类。“鉴别器”列用于区分类型。 以下类定义表示基于抽象Contract类型的继承层次结构。还定义了三种派…

16.python实现线性单元和梯度下降-10月4日编程作业-Relu函数

目录 课堂笔记 代码实现1 运行结果1 代码实现2 评定一个学生的综合绩点 运行结果2 小结 课堂笔记 代码实现1 from cgi import print_environ from functools import reduce import numpy as np#定义感知器类 class perceptron(object):#感知器初始化函数(参数个数&…

ASP.NET Core--项目基础与搭建

文章目录项目基础与搭建创建项目ViewImports.cshtmlappsettings.json执行顺序Program.cs类startup.cs类项目基础与搭建 创建项目 ViewImports.cshtml ViewImports文件可以影响文件夹层次结构中的所有视图 ViewImports文件是我们可以编写代码并放置通用指令以引入我们的视图所需…

数据结构 - 单链表

文章目录一、单链表1.单链表的定义1.1概念介绍2.如何用代码来定义一个单链表*知识点3.单链表的插入删除未完待续...一、单链表 1.单链表的定义 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的&…

Halcon快速入门笔记3

read_image (Image, ‘surface_scratch’) invert_image (Image, ImageInverted) get_image_size (ImageInverted, Width, Height) gen_sin_bandpass (ImageBandpass, 0.4, ‘none’, ‘dc_center’, Width, Height) fft_generic (ImageInverted, ImageFFT, ‘to_freq’, -…

【JavaWeb】前置知识:CSS与JavaScript知识汇总

本文被 系统学习JavaWeb 收录,点击订阅 写在前面 大家好,我是黄小黄!经过上一篇 从Html入门JavaWeb 的学习,想必大家对标签都有了一定的认识。本文将通过案例,讲解CSS与JavaScript的基础知识,文章内容比较…

SSM+Vue个人健康管理系统 个人健康档案系统 个人健康信息管理系统Java

SSM+Vue个人健康管理系统 个人健康档案系统 个人健康信息管理系统Java💖🔥作者主页:计算机毕设老哥🔥 💖精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻Java实战项目专栏 Python实战项目专栏 安卓实战项目专栏 微信小程序实战项目专栏目录Java实战项…

【数据结构从0到1】第九篇:图

文章目录一、图的基本概念二、图的存储结构2.1 邻接矩阵2.2 邻接表三、图的遍历3.1 图的广度优先遍历3.2 图的深度优先遍历四、最小生成树4.1 Kruskal算法4.2 Prim算法五、最短路径5.1 单源最短路径--Dijkstra算法5.2 单源最短路径--Bellman-Ford算法5.3 多源最短路径--Floyd-W…

基于Java开发的五子棋游戏APP设计与实现

目录 一、项目概述 1 (一)安卓游戏发展趋势 1 (二)开发安卓游戏的意义 1 二、项目需求分析 2 (一)功能需求分析 2 (二)性能需求分析 2 (三)可行性分析 3 &…

【点云处理】点云法向量估计及其加速(1)

点云法向量是3D点云一个极其重要的几何表面特征,众多的点云处理算法都依赖精确的法向量估计,例如点云分割,点云去噪等。在自动驾驶领域,面对特殊场景我们主要依赖点云法向量进行场景分割。估计点云法向量需要得到该点的邻域内点&a…

nodejs+vue+elementui幼儿园管理系统python java php

本设计主要分为学生家长,管理员和教师三个角色,其中学生家长功能有注册登查看幼儿信息,查看缴费信息,申请请假,查看体检信息等;教师的功能有登陆系统,对自己的幼儿学生,班级&#xf…

谷粒商城 集群篇 (二) --------- K8s 集群安装

目录一、kubeadm二、前置要求三、部署步骤四、环境准备五、安装环境1. 安装 docker① 卸载 docker② 安装 Docker-CE③ 配置 docker 加速④ 启动 docker & 设置 docker 开机自启2. 添加阿里云 yum 源3. 安装 kubeadm,kubelet 和 kubectl六、部署 k8s-master1. m…

STL之string

更新string,这段时间学习了stl,发现共性的东西很多,string,vector,list等,弄懂他们的逻辑框架很重要,其实也是stl的规范,文章更新内容不管这些函数怎么用,就从大逻辑来讲…

Java项目:SSH土地信息管理系统平台

作者主页:夜未央5788 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目包含管理员与用户两种角色; 管理员角色包含以下功能: 管理员登录,用户管理,分类管理,档案管理等功能。 用户角色包含…

基于STM32的光敏传感器数据采集系统-物联网应用系统设计项目开发

目录1 项目概述1.1 项目介绍1.2 项目开发环境1.3 小组人员及分工2 需求分析2.1 系统需求分析2.2 可行性分析2.3 项目实施安排3 系统硬件设计3.1 系统整体硬件电路设计3.2 STM32 最小系统电路设计3.3 传感器模块电路设计3.4 光敏电阻模块电路设计4系统软件设计4.1 系统整体流程设…

源码、反码、补码和精度损失

数据类型转换,转换过程中可能导致溢出或损失精度 1.源码:源码就是二进制的数字并且开头的一位代表符号位。例:(+1)的源码:0000 0001(-1)的源码:1000 0001 2.反码:正数的反码是其本身负数的反码是符号位不懂其他位取反例: (+1)的反码:0000 0001(-1)的反码:1111 …

TC8:TCP_CLOSING_03-13

TCP_CLOSING_03: RST with DATA 目的 TCP允许接收的RST消息包含数据 测试步骤 Tester:让DUT移动到ESTABLISHED状态Tester:发送RST报文,包含一些数据DUT:不发送任何响应Tester:验证DUT在CLOSED状态期望结果 3, DUT:不发送任何响应 4, Tester:验证DUT在CLOSED状态 CANoe …

谷歌味儿

咱们从小就被教育过,决定一个人成败的最重要因素不是智商、暂时的能力,而是性格和品质。这是如此的正确,以至于很多公司暗暗将这个作为候选人的衡量标准。比如咱们常听到的“X里味儿”。今天咱们看看“谷歌味儿“。谷歌内部明确要求的三大品质…

spring:beanfactory与applicationcontext的设计

beanfactory接口提供的方法:getBean,getBeanProvider,containsBean,isSingleton,getType,getAliases listableBeanFactory: 不会取到手动注册的bean,为什么要这么做呢,因为有些bean属于 SpringFramework 内部使用的,这样做的目的是 SpringFramework 不希望咱开发者直接…