【Datawhale图机器学习】半监督节点分类:标签传播和消息传递
半监督节点分类:标签传播和消息传递
半监督节点分类问题的常见解决方法:
- 特征工程
- 图嵌入表示学习
- 标签传播
- 图神经网络
基于“物以类聚,人以群分”的Homophily假设,讲解了Label Propagation、Relational Classification(标签传播)、Iterative Classification、Correct & Smooth(C & S)、Loopy Belief Propagation(消息传递)、Masked Lable Prediction等半监督和自监督节点分类方法。这些方法经常被用于节点分类任务的Baseline比较基线。消息传递和聚合的思路也影响了后续图神经网络的设计。
半监督节点分类 Transductive 直推式学习<->Inductive 归纳式学习
半监督节点分类问题求解思路
- 节点特征工程
- 节点表示学习(图嵌入)
- 标签传播(消息传递)
- 图神经网络
半监督节点分类问题-求解方法对比
| 方法 | 图嵌入 | 表示学习 | 使用属性特征 | 使用标注 | 直推式 | 归纳式 |
|---|---|---|---|---|---|---|
| 人工特征工程 | 是 | 否 | 否 | 否 | / | / |
| 基于随机游走的方法 | 是 | 是 | 否 | 否 | 是 | 否 |
| 基于矩阵分解的方法 | 是 | 是 | 否 | 否 | 是 | 否 |
| 标签传播 | 否 | 否 | 是/否 | 是 | 是 | 否 |
| 图神经网络 | 是 | 是 | 是 | 是 | 是 | 是 |
-
人工特征工程:节点重要度、集群系数、Graphlet等。
-
基于随机游走的方法,构造自监督表示学习任务实现图嵌入。无法泛化到新节点。
例如:DeepWalk、Node2Vec、LINE、SDNE等。
-
标签传播:假设“物以类聚,人以群分”,利用邻域节点类别猜测当前节点类别。无法泛化到新节点。
例如:Label Propagation、Iterative Classification、Belief Propagation、Correct & Smooth等。
-
图神经网络:利用深度学习和神经网络,构造邻域节点信息聚合计算图,实现节点嵌入和类别预测。
可泛化到新节点。
例如:GCN、GraphSAGE、GAT、GIN等。
标签传播和集体分类
- Label Propagation(Relational Classification)
- Iterative Classification
- Correct & Smooth
- Belief Propagation
- Masked Lable Prediction
具有相似属性特征的节点更可能相连且有相同类别
具有相似属性特征的节点更可能相连且具有相同类别
社群检测算法代码
# 运行社群检测算法
from networkx.algorithms import community
communities = community.label_propagation_communities(G)#获得每个社群的节点
node_groups = []
for com in communities:node_groups.append(list(com))
print(node_groups)#每个社群的分配颜色
color_mpa = []
for node_id in G:if node_id in node_groups[0]:color_map.append('blue')elif node_id in node_groups[1]:color_map.append('red')else:color_map.append('green')#可视化
nx.draw(G,node_color=color_map,with_labels = True)
pit.show()
参考资料
子豪兄视频:https://www.bilibili.com/video/BV1184y1G7pA/
GITHUB页面:https://github.com/TommyZihao/zihao_course/edit/main/CS224W/5-Semi.md
相关文章:
【Datawhale图机器学习】半监督节点分类:标签传播和消息传递
半监督节点分类:标签传播和消息传递 半监督节点分类问题的常见解决方法: 特征工程图嵌入表示学习标签传播图神经网络 基于“物以类聚,人以群分”的Homophily假设,讲解了Label Propagation、Relational Classificationÿ…...
【分布式缓存学习篇】Redis数据结构
一、Redis的数据结构 二、String 数据结构 2.1 字符串常用操作 //存入字符串键值对 SET key value //批量存储字符串键值对 MSET key value [key value ...] //存入一个不存在的字符串键值对 SETNX key value //获取一个字符串键值 GET ke…...
【跟着ChatGPT学深度学习】ChatGPT带我入门NLP
❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...
RGB888与RGB565颜色
颜色名称RGB888原色RGB565还原色英RGB888[Hex]RGB888_R[Hex]RGB888_G[Hex]RGB888_B[Hex]RGB565[Hex]RGB565_R[Hex]RGB565_G[Hex]RGB565_B[Hex]黑色Black0x0000000000000x0000000昏灰Dimgray0x6969696969690x6B4DD1AD灰色Gray0x8080808080800x8410102010暗灰Dark Gray0xA9A9A9A9…...
常见的域名后缀有哪些?不同域名后缀的含义是什么?
域名发展至今,已演变出各种各样的域名后缀,导致很多网站管理人员在注册域名时不知该如何选择。下面,中科三方针对常见域名后缀种类,以及不同域名后缀的含义做下简单介绍。 什么是域名后缀? 域名是由一串由点分隔开的…...
LevelDB架构介绍以及读、写和压缩流程
LevelDB 基本介绍 是一个key/value存储,key值根据用户指定的comparator排序。 特性 keys 和 values 是任意的字节数组。数据按 key 值排序存储。调用者可以提供一个自定义的比较函数来重写排序顺序。提供基本的 Put(key,value),Get(key),…...
华为OD机试模拟题 用 C++ 实现 - 快递货车(2023.Q1)
最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 最多获得的短信条数(2023.Q1)) 文章目录 最近更新的博客使用说明快递货车题目输入输出示例一输入输出Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单…...
伺服三环控制深层原理解析
我们平时使用的工业伺服,通常是成套伺服,即驱动器和电机型号存在配对关系。 但有些时候,我们要用电机定转子和编码器制作非成套电机,这种时候,我们需要对驱动器进行各种设置才能驱动电机。 此篇文章将通过介绍伺服控制的三环控制原理入手来说明我们调试非成套伺服时需要…...
Cornerstone完整的基于 Web 的医学成像平台(一)
1.简介 Cornerstone是一个开源的基于Web的医学成像平台,它提供了一个易于使用的界面,可以用于加载、显示和处理医学图像。Cornerstone可以用于许多医学图像处理应用程序,例如计算机断层扫描(CT)、磁共振成像ÿ…...
老板让我在Linux中使用traceroute排查服务器网络问题,幸好我收藏了这篇文章!
一、前言 作为网络工程师或者运维工程师,traceroute命令不会陌生,它的作用类似于ping命令,用于诊断网络的连通性,不过traceroute命令输出的命令会比ping命令丰富的多,可以跟踪从源系统到目标系统的路径。 很多工程师…...
一文读懂【数据埋点】
数据埋点是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。比如用户某个icon点击次数、观看某个视频的时长等等。 数据分析是我们获得需求的来源之一,…...
Qt图片定时滚动播放器+透明过渡动画
目录参考结构PicturePlay.promain.cppmyqlabel.h 自定义QLabelmyqlabel.cpp自定义QLabelpictureplay.hpictureplay.cpppictureplay.uistyle.qss效果源码参考 Qt图片浏览器 QT制作一个图片播放器 Qt中自适应的labelpixmap充满窗口后,无法缩小只能放大 Qt的动画类修改…...
手把手带你做一套毕业设计-征程开启
本文是《手把手带你做一套毕业设计》专栏的开篇,文本将会包含我们创作这个专栏的初衷,专栏的主体内容,以及我们专栏的后续规划。关于这套毕业设计的作者呢前端部分由狗哥负责,服务端部分则由天哥操刀。我们力求毕业生或者新手通过…...
万字解析 Linux 中 CPU 利用率是如何算出来的?
在线上服务器观察线上服务运行状态的时候,绝大多数人都是喜欢先用 top 命令看看当前系统的整体 cpu 利用率。例如,随手拿来的一台机器,top 命令显示的利用率信息如下 这个输出结果说简单也简单,说复杂也不是那么容易就能全部搞明白…...
芯驰(E3-gateway)开发板环境搭建
1-Windows下环境配置 可以在Windows上使用命令行或者IAR IDE编译SSDK项目。Windows编译依赖的工具已经包含在 prebuilts/windows 目录中,包括编译器、Python和命令行工具。 1.1.1 CMD SSDK集成 msys 工具,可以在Windows命令行中完成SDK的配置、编译和…...
HiveSql一天一个小技巧:如何巧用分布函数percent_rank()求去掉最大最小值的平均薪水问题
0 问题描述参考链接(3条消息) HiveSql面试题12--如何分析去掉最大最小值的平均薪水(字节跳动)_莫叫石榴姐的博客-CSDN博客文中已经给出了三种解法,这里我们借助于此题,来研究如何用percent_rank()函数求解,简化解题思路…...
【python实现华为OD机试真题】优雅子数组【2023 Q1 | 200分】
题目描述 如果一个数组Q中出现次数最多的元素出现大于等于K次,被称为k-优雅数组,k也可以被称为优雅阈值只。 例如: 数组1,2, 3, 1、2, 3, 1,它是一个3-优雅数组,因为元素1出现次数大于等于3次, 数组[1,2, 3, 1, 2]就不是一一个3-优雅数组,因为其中出现次数最多的元素是1和…...
九种分布式ID解决方案
文章目录背景1、UUID2、数据库自增ID2.1、主键表2.2、ID自增步长设置3、号段模式4、Redis INCR5、雪花算法6、美团(Leaf)7、百度(Uidgenerator)8、滴滴(TinyID)总结比较背景 在复杂的分布式系统中,往往需要对大量的数据进行唯一标识,比如在对一个订单表…...
RocketMQ源码分析
RocketMQ源码深入剖析 1 RocketMQ介绍 RocketMQ 是阿里巴巴集团基于高可用分布式集群技术,自主研发的云正式商用的专业消息中间件,既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠…...
跟着我从零开始入门FPGA(一周入门系列)第六天
6、有限状态机状态机,只要C代码写过2年的人,估计无人不识君,稍微复杂的逻辑都可以借助状态机来简化问题。为了方便,我们使用前面用过的一个例子,来说明状态机的应用,也就是说我们前面已经有意无意的用过状态…...
告别格式烦恼:哈工大深圳LaTeX论文模板的6大核心优势
告别格式烦恼:哈工大深圳LaTeX论文模板的6大核心优势 【免费下载链接】hitszthesis A dissertation template for Harbin Institute of Technology, ShenZhen (HITSZ), including bachelor, master and doctor dissertations. 项目地址: https://gitcode.com/gh_m…...
深入剖析YOLOv8核心模块:从架构设计到实战应用全解析
1. YOLOv8架构设计揭秘 YOLOv8作为目标检测领域的标杆模型,其架构设计处处体现着工程师的巧思。我第一次拆解它的代码时,最惊艳的是它的模块化设计——就像搭积木一样,每个组件都能灵活替换。核心的Backbone部分采用CSPDarknet53结构…...
粒子追踪模拟单透镜聚焦comsol ansys Fluent 二维三维模型 仿真模型,文献复现
粒子追踪模拟单透镜聚焦comsol ansys Fluent 二维三维模型 仿真模型,文献复现,热湿传递在实验室折腾粒子追踪仿真的时候,最让人上头的莫过于单透镜聚焦的场景搭建。COMSOL和ANSYS这对冤家各有各的脾气——前者把物理场耦合玩出花࿰…...
FastAPI 2.0流式响应源码深度拆解,从Starlette 1.12到Pydantic v2.6兼容层的5处隐式await丢失点(生产环境已验证)
第一章:FastAPI 2.0流式响应架构演进与问题定位全景FastAPI 2.0 对流式响应(StreamingResponse)进行了底层重构,核心变化在于将 ASGI 生命周期与异步生成器的生命周期解耦,并引入更严格的流控契约。此前版本中常见的内…...
CCS:Code Composer Studio 12.8.1 窗口颜色改为深色
Code Composer Studio (CCS) 基于 Eclipse 平台开发,要将其界面改为深色模式,最推荐且有效的方法是安装 Eclipse Color Theme 插件。以下是针对 CCS 12.8.1 的具体操作步骤:🛠️ 第一步:安装主题插件在 CCS 菜单栏中&a…...
从零开始:用正则表达式处理日期时间格式的完整指南
从零开始:用正则表达式处理日期时间格式的完整指南 在数据处理和文本分析中,日期时间格式的校验一直是个高频需求。无论是表单验证、日志分析还是数据清洗,确保日期时间格式的正确性都至关重要。正则表达式作为文本处理的瑞士军刀,…...
Java初学者项目需要哪些技术?
对于Java初学者,以下技术栈组合既能满足学习需求,又能完成完整项目开发:核心基础Java语法基础掌握变量、循环、条件语句面向对象三大特性:封装、继承、多态集合框架:$ArrayList$、$HashMap$等异常处理机制开发工具IDE&…...
cutlass代码架构分析
CUTLASS 代码架构分析 本文档基于 cutlass代码进行梳理,快速理解 CUTLASS 4.x 的模块边界与调用链路。 1. 总体架构 CUTLASS 本质上是一个 header-only 的 CUDA C++ 模板库,外围配套了可选构建目标: include/:核心库(cutlass + cute) tools/:库实例化、性能测试与通用…...
九齐单片机NYIDE开发环境避坑指南:从仿真器到实物板的温度检测实战(以062E为例)
九齐单片机NYIDE开发环境避坑指南:从仿真器到实物板的温度检测实战(以062E为例) 在嵌入式开发领域,仿真环境与实物硬件之间的差异常常成为工程师的"隐形杀手"。特别是对于九齐单片机这类资源紧凑型芯片,开发…...
保姆级教程:用seqtk、bwa和bedtools从零绘制GC-depth图,诊断测序污染
从零构建GC-depth分析全流程:手把手教你诊断测序数据污染 刚拿到测序数据的生物信息学新手,常常会面临一个灵魂拷问:我的数据干净吗?GC-depth分析就像给测序数据做"体检",通过一张图就能快速发现细菌污染、样…...
