【图机器学习系列】(二)从传统机器学习角度理解图(一)

news2024/11/16 11:58:55

微信公众号:leetcode_algos_life,代码随想随记
小红书:412408155
CSDN:https://blog.csdn.net/woai8339?type=blog ,代码随想随记
GitHub: https://github.com/riverind
抖音【暂未开始,计划开始】:tian72530,代码随想随记
知乎【暂未开始,计划开始】:代码随想随记

传统角度学习图

  • 从机器学习的角度学习图
    • 图的表达
    • 选择合适的图
    • 图的分类
      • 节点度
      • 二部图
    • 如何构建图
  • 图的表示
    • 邻接矩阵
    • 邻接列表
    • 附加属性
    • 强弱连通图
  • 传统机器学习角度理解图
    • 机器学习管道构建图特征
    • 问题定义
    • 适应性函数学习
    • 图的特征构造
      • 节点度
      • 节点中心性
        • 节点度中心性
        • 特征向量中心性
        • 介数中心性
        • 紧密中心性
      • 集聚系数
      • 图元(Graphlet)
  • 总结
  • 参考资料

从机器学习的角度学习图

图的表达

图一般分为顶点和边,整个结构成为图。
在这里插入图片描述

选择合适的图

图的数学表达是节点和边,在不同应用场景下选择不同场景下的图。
在这里插入图片描述

图的分类

图有有向图和无向图,无向图顾名思义没有方向的图,有向图是指有起始点及指向方向的图。
在这里插入图片描述

节点度

(一)无向图中有节点度的概念

针对某一个节点A,该节点的节点度的概念是,链接当前节点的边的数量。
在这里插入图片描述
(二)有向图中节点度的概念
有向图中,节点度有节点入度和出度。
入度是指指向节点的边的个数
出度是指节点发出的边的个数
该节点的度即为该节点的入度和出度之和。
在这里插入图片描述

二部图

二部图是指有两种类型的节点,假设分为类型A和B类型的节点。
该图只有类型之间链接,即A类型的节点链接B类型的节点。
而在同一个类型内部,节点不链接。即:A类型或者B类型各自类型的内部节点不链接。
在这里插入图片描述

如何构建图

构建图需要确定两件事情:
(1)节点如何定义
(2)边如何定义
在这里插入图片描述

图的表示

图有,主要常见的有:邻接矩阵,

邻接矩阵

如果说,Aij表示从节点i到节点j的链接,如果链接存在,表示为1;如果链接不存在,表示为0。
则有向图和无向图的表示如下:
无向图的邻接矩阵是对称的,正定矩阵。
在这里插入图片描述

在这里插入图片描述

邻接列表

邻接列表是用其中一个节点为key,其value表示的是以该节点为输出的节点list。
具体举例如下:
1节点没有以1节点为起始节点的输出节点,因此,为空。
2节点有以2节点为输出指向3/4节点,因此,2: 3,4。
3节点有以3为节点输出指向2和4节点的,因此,3: 2,4
4节点有以4为节点输出指向5节点的,因此,4:5
5节点有以5节点为输出指向1/2节点的,因此,5: 1,2
因此,邻接列表如下:

1:
2:3,4
3:2,4
4:5
5:1,2

在这里插入图片描述

附加属性

图可以加一些属性,比如,权重等。
在这里插入图片描述
权重在邻接矩阵中也可以表示,
在这里插入图片描述

多图结构的表示如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

强弱连通图

强连通图:简单理解,从节点A到节点B能够形成闭环循环。
在这里插入图片描述
在这里插入图片描述

传统机器学习角度理解图

机器学习管道构建图特征

传统机器学习角度来看,主要是通过构造特征来对目标进行训练。其核心思想是,如何对节点、边和图进行特征设计。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
因此,针对无向图,本文进行详细阐述如何构造图中的节点、边和整个图的特征。
在这里插入图片描述

问题定义

以无向图为例,该问题定义成,给定顶点和边,如何求解一适应性函数,使得其满足给定特征,预测出目标。
具体接下来,就是如何让适应性函数进行学习?
在这里插入图片描述

适应性函数学习

这里用无向图中的节点分类例子进行说明。
场景:
假设有给定一些节点,预测这些节点的类型。
主要看右侧的图。
在这里插入图片描述
从机器学习角度看,该问题需要构造特征,那么图怎么构造特征呢?

图的特征构造

在这里插入图片描述
图中的各个节点中心度概要简介如下:
在这里插入图片描述

节点度

可以将某一个节点的度数看成是其中一个特征。
但该特征无法反映节点的区别。
在这里插入图片描述

节点中心性

节点中心性有节点度中心性(Degrree centrality)、介数中心性(Betweeness centrality)、紧密中心性(Closeness centrality)、特征向量中心性( Eigenvector centrality)。

在这里插入图片描述

节点度中心性

在这里,节点度中心性的理解是,当前节点连接的节点总数。
背后逻辑是说,一个节点度越大,表示其节点越重要。

归一化的节点度中心性,在节点度的中心性上除以<节点总数-1>,这个可以理解成,一个节点最多和n-1个节点产生链接(自环暂不考虑)。具体计算逻辑如下:
在这里插入图片描述

这里分两个大的情况:

  • 无向图
    无向图不加权图其节点边权重看作1。
    无向图权重图其节点边权重是其权重。

  • 有向图
    有向图不加权图其节点边权重看作1,分入度和出度,总的度数是入度和出度之和。
    有向权重图其节点边权重是其权重,分入度和出度,总的度数是入度和出度之和。

优缺点:
优点:简单,直观,计算复杂度低
缺点:仅考虑节点最局部信息,没有对节点周围环境进行探讨。一个典型例子是微博中的僵尸粉。

特征向量中心性

特征向量中心性数学含义上就是特征向量。作用是为了衡量节点在整个网络中的重要性。
为了解决节点度中的缺点问题,考虑周围节点的向量,但其计算复杂度有所增加。因此,在求解的时候,采用幂代法进行高效求解。后续介绍幂代法。
(一)特征向量中心性介绍
假设邻接矩阵为A,存在一个向量x,则其特征向量中心性为A*x。
在这里插入图片描述
在这里插入图片描述

(二)幂代法求解
整体思路:假设邻接矩阵A(具有特征值和特征向量),给定非零向量x0,则:
x1 = Ax0
x2 = A
x1
x3 = Ax2

xn = A
x(n-1)

考虑到数值可能越界,因此,需要归一化,即:
在这里插入图片描述
其中,
在这里插入图片描述
表示一个向量的2范数,其数值等于向量中各个元素的平方和开根号。

作为代码化,伪代码如下:

for i in range(1, n, 1):
	x = A*x
	x = x / sqrt(x*x)

(三)举例
假设一邻接矩阵A和初始向量x0,数值如下图片里数值。
采用幂代法求解特征向量过程如下:
在这里插入图片描述
(四)优缺点
优点:
考虑到不同节点的不同重要程度。比如,院士节点和杰青节点的重要程度肯定不一样。

缺点:
计算复杂度相对较高

介数中心性

介数中心性(Betweenness centrality,BC)度量节点在最短路径中的重要程度。通常认为是最短路径介数中心性(BC),认为网络中所有节点对的最短路径中(一般情况下,一对节点之间存在多条最短路径),经过一个节点的最短路径数越多,这个节点就越重要。
在这里插入图片描述

紧密中心性

紧密度中心性计算的是某一个结点到当前网络内其他所有结点的平均距离,该距离的倒数值称为紧密中心性。
紧密度中心性也叫接近中心性,用于评价一个结点到其他所有结点的紧密程度,适合发掘关键节点。

紧密中心性计算公式如下:
在这里插入图片描述

集聚系数

集聚系数(也称群聚系数、集群系数)是用来描述一个图中的顶点之间结集成团的程度的系数。具体来说,是一个点的邻接点之间相互连接的程度。集聚系数分为整体和局部的,局部是单一节点的,整体为整个图的所有节点的平均值。

在这里插入图片描述

假设当前节点为V,与之连接的节点个数计作 K。
与节点V连接的节点间连接的个数计作 N,
那么 该节点V的集聚系数是:
CC(V) = 2N/(K(K-1))

举例如下:
在这里插入图片描述

在这里插入图片描述

图元(Graphlet)

(一)Graphlet介绍
首先,介绍下连通诱导子图。
所谓,连通诱导子图是指该图中的顶点和边都是从图(Graph)中顶点和边的真子集。
graphlets是指大图(Graph)中节点数目相对较少的连通诱导子图。
即:graphlets指的是连通的非同构子图。

举例如下:

在这里插入图片描述
(二)k节点Graphlets
含 k 个节点的 graphlet记为 k-graphlets.
在这里插入图片描述

在这里插入图片描述
(三)Graphlet度向量
节点的graphlet degree 为包含节点的 graphlet 的个数。
Graphlet Degree Vector指的是各种子图出现的次数(必须包含v,并且必须是完全符合子图,子图包含的节点之间不能有多余的边)。
在这里插入图片描述
上图中,以节点v为参考,

  • a类型的graphlet有两种情况,
  • b类型有1种情况,
  • c类型没有(因为和b的情况,差了一个竖着的边连接),
  • d类型有两种情况,即d旁边的灰色节点当作是节点v。
    这种情况下,组成当前节点的 graphlet degree 为[2,1,0,2]。
    在这里插入图片描述
    在这里插入图片描述

总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考资料

1、cs224w
2、bilibili图机器学习网址
3、图表示学习书籍
4、图深度学习
5、GNN介绍
6、网络重要节点排序方法综述
7、幂代法样例
8、特征向量中心度及scala源码解析
9、紧密中心性
10、聚类系数视频解释
11、聚类系数论文
12、graphlets诱导子图介绍-论文

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

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

相关文章

java 中的设计模式

文章目录 一、前言二、设计模式的分类三、设计模式的原则1、开闭原则&#xff08;Open Close Principle&#xff09;2、里氏代换原则&#xff08;Liskov Substitution Principle&#xff09;3、依赖倒转原则&#xff08;Dependence Inversion Principle&#xff09;4、接口隔离…

【案例55】WebSphere非root用户启动方案

问题背景 很多项目为了安全因素考虑&#xff0c;想让在Linux服务器中启动的程序都用非root用户启动。 解决方案 创建用户和组 现在我们用 root 用户登录&#xff0c;并创建用户和组。 ##创建用户 [rootnc-test ~]# useradd wasadmin##修改密码 [rootnc-test~]# passwd was…

AT 指令和WIFI模组

此次使用到的wifi模组是乐鑫的wifi模组esp8684&#xff0c;该wifi模组内部集成了MQTT协议 串口发送AT指令与单片机进行通信&#xff0c;一下是ESP8684的管脚布局。 ESP8684管脚描述&#xff1a; 注&#xff1a;30 和 31 号管脚是用于调试的管脚&#xff0c;20 与 21 号管脚才是…

allure实现测试报告的生成

在测试用例编写完成之后&#xff0c;我们可以通过allure生成测试报告 一、配置java环境变量&#xff0c;jdk17的版本 二、安装allure-commanlie工具&#xff0c;可在官网下载&#xff0c;也可通过百度网盘下载 链接: https://pan.baidu.com/s/10123Iv2f7Ht476feDiP0Yw 提取码…

视频智能分析平台烟火检测视频安防监控烟火算法识别应用方案

烟火检测算法的应用方案主要围绕其核心技术——深度学习&#xff08;特别是卷积神经网络CNN&#xff09;和计算机视觉技术展开&#xff0c;旨在实现对监控视频中的烟雾和火焰进行实时、准确的检测与识别。以下是一个详细的烟火检测算法应用方案&#xff1a; 一、技术原理 烟火…

如何使用Python进行餐馆满意度分析——K-means算法与NLP情感分析实战

&#x1f393; 作者&#xff1a;计算机毕设小月哥 | 软件开发专家 &#x1f5a5;️ 简介&#xff1a;8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 &#x1f6e0;️ 专业服务 &#x1f6e0;️ 需求定制化开发源码提…

TOP10漏洞原理

## 本人为学习网安不久的新人&#xff0c;记一次学习笔记&#xff0c;有缺陷或者表述不对的地方欢迎大家指出&#xff0c;感谢&#xff01; ## 1、sql注入&#xff1a;web应用程序对用户输入的数据没有进行过滤&#xff0c;或者过滤不严&#xff0c;就把sql语句拼接进数据库…

【C++ Primer Plus习题】3.2

问题: 解答: #include <iostream> using namespace std;const int FOOT_TO_INCH 12; const double INCH_TO_MI 0.0254; const float KG_TO_POUND 2.2;int main() {int inch 0;int foot 0;int inchs 0;double mi 0;int pound 0;double kg 0;double BMI 0;cout &…

QEMU/KVM 虚拟机显卡透传 (vfio-pci)

首发日期 2024-08-22, 以下为原文内容: 本文介绍将 PCIE 设备 (显卡) 透传给 QEMU/KVM 虚拟机的一种方法, 基于 Linux 内核的 vfio-pci 功能. 透传 (pass through) 之后, 虚拟机内可以直接操作 (使用) 显卡硬件, 就像物理机那样, 几乎没有虚拟化的性能损失. 这里是 穷人小水滴…

电商分账系统整个原理 空中分账具体解决方案

电商分账系统最近比较火&#xff0c;比如大家做天猫的时候&#xff0c;直接可以通过网商贷把钱拿出来&#xff0c;但抖店没有这种贷款&#xff0c;大家都有一种不想进对公的方式&#xff0c;那系统本身就是虚拟户加操作系统&#xff0c;虚拟户是银行开的&#xff0c;银行开就需…

【Java】从零到一使用Feign与Sentinel (详细图解)

Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容&#xff1a;三、问题描述四、解决方案&#xff1a;4.1 认识依赖4.1.1 Feign依赖4.1.2 Sentinel依赖4.1.3 负载均衡依赖4.2 父子项目…

基于 Java Web 的校园驿站管理系统

TOC ssm016基于 Java Web 的校园驿站管理系统jsp 第1章 绪论 1.1 课题背景 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。…

嵌入式学习(TCP通信和抓包)

粘包问题&#xff1a; TCP协议在传输时&#xff0c;可能会遇到粘包的问题。造成这个问题的原因&#xff0c;是因为tcp流式套接字&#xff0c;数据之间没有边界造成的。导致了多次的数据&#xff0c;粘黏在一起。 解决方法&#xff1a; 1、规定一些数据与数据之间的间隔符 2、…

访客管理系统 对接微信公众号,发送通知消息

微信公众号模板消息 - 要实现的效果图 1 公众号设置对接的域名 打开【公众号设置】 公众号设置域名&#xff0c;需要先用http server做安全验证。 安全验证成功后&#xff0c;域名配置完毕。 2 获取公众号APPID 和 Secret 3 开通模板消息 官方审核需要2-3日 4 设置IP白名单&…

鸿蒙HarmonyOS编程开发:TLS单向认证通讯示例

1.TLS简介 TLS&#xff08;Transport Layer Security&#xff09;协议的前身是SSL&#xff08;Secure Socket Layer&#xff09;安全套接层协议&#xff0c;由Netscape公司于1994年提出&#xff0c;是一套网络通信安全协议。IETF&#xff08;The Internet Engineering Task Fo…

谷粒商城实战笔记-244~247-商城业务-购物车-获取合并购物车

文章目录 一&#xff0c;244-商城业务-购物车-获取&合并购物车1&#xff0c;在线购物车和临时购物车的合并 二&#xff0c;245-商城业务-购物车-选中购物项三&#xff0c;246-商城业务-购物车-改变购物项数量四&#xff0c;247-商城业务-购物车-删除购物项五&#xff0c;修…

揭秘电子版招生简章的制作方法!

随着科技的不断发展&#xff0c;越来越多的学校和企业开始采用电子版招生简章来代替传统的纸质版招生简章。电子版招生简章不仅能够节省印刷成本&#xff0c;还可以通过互联网进行快速传播&#xff0c;提高宣传效果。那么&#xff0c;如何制作一份精美的电子版招生简章呢&#…

USART串口通讯函数实现 (基于寄存器)

环境 芯片:STM32F103ZET6 库&#xff1a;来自HAL的STM32F1XX.H 原理图 如图可知TX和RX两条线接到了PA9和PA10 Driver_USART1.h #ifndef __DRIVER_USART1_H #define __DRIVER_USART1_H#include "stm32f1xx.h"/*** 初始化USART1 完成相关配置 能够调用下面收发数据…

基于Java的汽车在线销售系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;Java技术 MySQL数据库 B/S结构 SSM框架 工具&#xff1a;IDEA/Eclipse、Navicat、Maven 系统展…

学院党员管理系统

TOC ssm002学院党员管理系统jsp 第1章 绪论 1.1 课题背景 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。所以各行业&#…