GraphSAGE模型实验记录(简洁版)【Cora、Citeseer、Pubmed】

article/2025/9/18 22:54:22

1、准备工作

数据集

数据集节点特征标签(y)
Cora12708542914337
Citeseer13327473237036
Pubmed119717443385003

数据集划分方式:https://github.com/kimiyoung/planetoid (Zhilin Yang, William W. Cohen, Ruslan Salakhutdinov, Revisiting Semi-Supervised Learning with Graph Embeddings, ICML 2016)

数据集划分(数量)训练集验证集测试集
Cora1405001000
Citeseer1205001000
Pubmed605001000

实验环境

  • 云服务器GTX 2080Ti。
  • PyTorch 1.6.0
  • PyTorch Geometric 1.6.0

2、实验结果

实验均使用2层SAGE层进行。

使用PyTorch进行实验

参考:

  • https://github.com/FighterLYL/GraphNeuralNetwork/tree/master/chapter7。
  • 官方复现:PyTorch GraphSAGE Implementation–github

使用监督学习的方法,增加了Citeseer和Pubmed数据集,并对其代码进行了重构和调试,排除了一些小bug。
完善后的代码(minibatch):https://github.com/ytchx1999/GraphSAGE-Cora-Citeseer-Pubmed。

聚合 + 更新方法CoraCiteseerPubmed
mean_pool + sum0.780.570.73
max_pool + sum0.750.570.75
mean_pool + concat0.740.550.75
max_pool + concat0.750.590.75

数据集划分对实验(公平性)的影响

根据paper原作者的实验代码,重新划分数据集,做了实验(lr=0.1)

数据集划分(数量)训练集验证集测试集
Cora12085001000
Citeseer18125001000
Pubmed20005001000
聚合 + 更新方法CoraCiteseerPubmed
mean_pool + sum0.850.590.76

结果比之前好不少,但是这种私自划分数据集在多个模型对比实验的时候不能够保证公平性。

使用PyG进行实验

使用PyTorch geometric(PyG)自己重写了GraphSAGE的代码,也不麻烦。
数据集的划分同最开始,因为图都比较小,所以直接使用full-batch,发现效果要比minibatch好一些。
实现代码:https://github.com/ytchx1999/PyG-GraphSAGE。

聚合 + 更新方法CoraCiteseerPubmed
mean_pool + sum0.810.670.77

3、问题分析

  1. GraphSAGE原文使用的citation数据集是WoS(一个比较大的图),效果要比本实验小图的效果好一点(小训练集),不过差距也不太大,也进一步说明了GraphSAGE归纳学习的能力。

    在这里插入图片描述
  2. 这是GNN综述《A Comprehensive Survey on Graph Neural Networks》中汇总各个paper的结果,但是GraphSAGE并没有使用到这几个数据集(Cora、Citeseer、Pubmed),可能是因为这几个数据集都比较小,而GraphSAGE对于大图来说效果比较好。GraphSAGE采样可能意味着邻居信息的丢失,这在小图中可能影响很大,因此,效果可能并不如GCN等模型。

    在这里插入图片描述
  3. 关于Citeseer数据集的问题。应该是有15个孤立节点,导致了程序出现问题以及训练精度都不好。
    有2种思路来解决这个问题:①直接删除3312之后的节点;②补全法:Citeseer的测试数据集中有一些孤立的点没有在test.index中(15个),可把这些点当作特征全为0的节点加入到测试集tx中,并且对应的标签加入到ty中。
    对于15个孤立节点,PyG采用了补全法强行将其补全为3327。。。

    在这里插入图片描述
    总之就是有问题,实际上总共有3327各节点,但是原始数据集是有向图,只有3312个节点有出边。只能说,数据集本身就有问题,这也导致了效果远不如Coras和Pubmed。

4、参考引用

代码:Chapter7:GraphSage示例(使用Cora数据集)–github
官方复现:PyTorch GraphSAGE Implementation–github
数据集划分:《Revisiting Semi-Supervised Learning with Graph Embeddings》–github


关于数据集:
《GCN使用的数据集Cora、Citeseer、Pubmed、Tox21格式》
《GCN数据集Cora、Citeseer、Pubmed文件分析》
《GCN的Benchmark数据集追溯》


http://chatgpt.dhexx.cn/article/52WgL5C2.shtml

相关文章

GCN使用的数据集Cora、Citeseer、Pubmed、Tox21格式

文章目录 Cora、Citeseer、Pubmed以Cora为例数据格式示例 Tox21 数据集 本文分享一下图卷积网络GCN里用到的一些数据集的格式 Cora、Citeseer、Pubmed 数据集来源#图#节点#边#特征#标签(y)Cora“Collective classification in network data,” AI magazine,200812708542914337…

小白的靶机VulnHub-Stapler

从这一台靶机开始 就要上VirtualBox了 开机界面就是个这 就凑合一下 开桥接 确定靶机ip地址 :192.168.56.102 要上 了哦!!!!! 扫出 好多 好多 端口 像极了一个蜜罐 我淦 从ftp 入手吧 进行匿名登录 进…

Vulnhub-靶机-Stapler 1

Vulnhub—靶机—Stapler 1 本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关 文章目录 Vulnhub—靶机—Stapler 1一、信息收集二、漏洞利用三、Flag 一、信息收集 【步骤一】使…

调用Jenkins api报错 403 forbidden

** 调用Jenkins api报错 403 forbidden ** String url url "/computer/doCreateItem?nametest&typehudson.slaves.DumbSlave";HttpHeaders headers new HttpHeaders();MultiVpalueMap<String, String> parameters new LinkedMultiValueMap<>()…

Vulnhub 靶机 Stapler write up samba+wp advanced-video ->mysql 密码 连接 john解密 登录后台 wp插件getshell sudo提权

Stapler write up 0x00 靶机搭建0x01 信息收集0x02 漏洞挖掘web思路mysql 思路ftp 思路139 samba思路步骤一&#xff1a;ftp匿名访问步骤二&#xff1a;samba139测试步骤三&#xff1a;web渗透 80步骤四&#xff1a;web渗透12380端口步骤五&#xff1a;利用wordpress漏洞步骤六…

macOS分发app打包+签名+公证+添加票据+生成dmg文件

1.打包 网上有很多使用命令行的打包的方式大家可自行查找,以下是使用Xcode进行打包. 首先配置证书要配置Developer ID Application证书然后使用的是Xcode进行打包:Product->Archive 这种打包方式的好处是省去了签名的过程,但是用网上其他人的命令查看签名时候还是未成功&a…

CTF实战之Stapler

CTF实战之Stapler Penetrating Methodology: 0x01 网络扫描&#xff08;Nmap, netdiscover&#xff09; nmap -sP 192.168.153.0/24 通过筛选找到靶机地址 扫描靶机端口 nmap -sT -T4 -sV -p 1-65535 192.168.153.154通过端口扫描发现靶机开了很多端口 我们一个一个来 …

Jenkins 远程命令执行漏洞 (CVE-2018-1000861)复现

文章目录 漏洞描述&#xff08;介绍、成因&#xff09;漏洞危害适用场景实验环境漏洞复现过程1、 开启docker环境2、通过dnslog检测漏洞是否存在3、监听端口4、利用exp获取反弹shell 修复建议扩展知识&#xff08;链接、文章&#xff09; 漏洞描述&#xff08;介绍、成因&#…

VulnHub-STAPLER: 1-靶机渗透学习

靶机地址&#xff1a;https://www.vulnhub.com/entry/stapler-1,150/ 靶机难度&#xff1a;中级&#xff08;CTF&#xff09; 靶机描述&#xff1a;Stapler is reported to be one of several vulnerable systems that are supposed to assist penetration testers with challe…

【甄选靶场】Vulnhub百个项目渗透——项目十:stapler-1(文件上传,多方式提权)

Vulnhub百个项目渗透 Vulnhub百个项目渗透——项目十&#xff1a;stapler-1&#xff08;文件上传&#xff0c;多方式提权&#xff09; 靶场环境 &#x1f525;系列专栏&#xff1a;Vulnhub百个项目渗透 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&…

vulnhub靶机:Stapler

文章目录 0x000x01 靶机安装0x02 靶机发现0x03 端口探测0x04 信息收集端口21&#xff1a;FTP服务端口22&#xff1a;SSH服务端口80&#xff1a;HTTP服务端口139&#xff1a;SMB服务端口666&#xff1a;未知服务端口3306&#xff1a;MySQL服务端口12380&#xff1a;HTTP服务 0x0…

实战打靶集锦-006-Stapler

**写在前面&#xff1a;**记录博主的一次打靶经历。 目录 1. 主机发现2. 端口发现3. 服务枚举4. 服务探查4.1 FTP探查4.1.1 匿名登录4.1.2 Elly用户4.1.3 John用户4.1.4 EXP搜索 4.2 dnsmasq探查4.2.1 基础信息获取4.2.2 EXP搜索 4.3 WEB应用探查4.3.1 浏览器访问4.3.2 目录扫描…

Stapler: 1

Stapler: 1 项目地址&#xff1a;https://www.vulnhub.com/entry/stapler-1,150/ 文章目录 Stapler: 1一、信息收集&#xff1a;1. 靶机地址获取&#xff1a;2. 收集端口服务信息&#xff1a; 二、信息利用1. 针对12380端口进行web目录枚举&#xff1a;1.1 访问&#xff1a;ph…

No.10-VulnHub-Stapler: 1-Walkthrough渗透学习

** VulnHub-Stapler: 1-Walkthrough ** 靶机地址&#xff1a;https://www.vulnhub.com/entry/stapler-1,150/ 靶机难度&#xff1a;中级&#xff08;CTF&#xff09; 靶机发布日期&#xff1a;2016年6月8日 靶机描述&#xff1a;Stapler is reported to be one of several v…

Stapler:1 靶机渗透测试-Vulnhub(STAPLER: 1)

Stapler&#xff1a;1&#xff08;STAPLER: 1&#xff09;靶机渗透-Vulnhub 一、IP端口探测二、端口信息收集1.ftp匿名登录2.OpenSSH漏洞查询3.80端口4.666端口5.SMB枚举6.12380端口 二、边界突破1.video插件文件包含2.修改wordpress数据库管理员密码3.上传webshell 三、提权总…

Stapler#攻略

写在前面&#xff1a;前人栽树后人乘凉&#xff0c;谢谢网上各位大佬的解题思路作为参考学习&#xff1b; 一、实验准备 1、实验地址&#xff1a; Stapler: 1 ~ VulnHub 2、下载之后&#xff0c;本地解压&#xff0c;用VMware运行该虚拟机&#xff1b; ​ 3、设置stapler与攻击…

Stapler-1靶场详细教学(7种漏洞利用+5种提权)

目录 前言 简介 信息收集 0x00 主机发现 0x01 端口探测 0x02 信息收集-1 0x03 信息收集-2 0x04 漏洞利用-1 0x05 信息收集-3 0x06 漏洞利用-2 0x07 漏洞利用-3 0x08漏洞利用-4 0x09 漏洞利用-5 0x10 漏洞利用-6 0x11 漏洞利用-7 提权 0x12 提权-1-内核提权 0…

CSDN开通博客

今天想写博客&#xff0c;却发现没有开通博客页面没有发现验证码&#xff0c; 后来点击验证码输入框&#xff0c;验证码才出来。真是失策&#xff0c;我觉得还是在刷新页面的时候就显示验证码就好了。

【JavaScript 逆向】数美滑块逆向分析

声明 本文章中所有内容仅供学习交流&#xff0c;相关链接做了脱敏处理&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 案例目标 验证码&#xff1a;aHR0cHM6Ly93d3cuaXNodW1laS5jb20vbmV3L3Byb2R1Y3QvdHcvY29kZQ 以上均做了脱敏处理&#xff0c;Base64 编码及解…

个人总结 - JS逆向解析

目前加密的方式总结有下面几点&#xff1a; 对称加密&#xff08;加密解密密钥相同&#xff09;&#xff1a;DES、DES3、AES 非对称加密&#xff08;分公钥私钥&#xff09;&#xff1a;RSA 信息摘要算法/签名算法&#xff1a;MD5、HMAC、SHA 前端实际使用中MD5、AES、RSA&a…