【图神经网络基础】认识数据集--同质数据集PubMed

        PubMed 数据集是另一个广泛用于图神经网络(GNN)研究的基准数据集,主要用于节点分类任务。以下是关于 PubMed 数据集的详细介绍:

数据集概述

        PubMed 数据集由生物医学文献组成,每篇文献被视为一个节点,引用关系被视为边。该数据集包含三类糖尿病相关的论文,每个节点都带有特征向量和标签。数据集的主要任务是根据节点的特征和图结构对节点进行分类。

数据集组成

  • 节点(Nodes)

    • 数量:19,717
    • 代表:每个节点代表一篇生物医学文献。
    • 属性:每个节点有一个500维的浮点特征向量,表示该文献的内容。特征向量是由论文的词频-逆文档频率(TF-IDF)表示的。
  • 边(Edges)

    • 数量:44,338
    • 代表:每条边表示一篇文献对另一篇文献的引用关系。
    • 无向图:边是无向的,即引用关系被视为对称的。
  • 标签(Labels)

    • 类别数:3
    • 类别标签:每个节点(文献)属于一个类别,共有三类:
      1. Diabetes Mellitus, Experimental
      2. Diabetes Mellitus Type 1
      3. Diabetes Mellitus Type 2

数据集统计

  • 节点数:19,717
  • 边数:44,338
  • 特征维度:500
  • 类别数:3

数据表示

PubMed 数据集通常以图的形式表示,其中包含以下内容:

  1. 邻接矩阵(Adjacency Matrix)

    • 表示:图的结构,其中 A[i,j]=1 表示节点 i 和节点 j 之间有边,A[i,j]=0 表示无边。
  2. 特征矩阵(Feature Matrix)

    • 表示:节点特征,其中每行对应一个节点的特征向量。
  3. 标签矩阵(Label Matrix)

    • 表示:每个节点的类别标签。

使用场景

PubMed 数据集主要用于以下研究场景:

  1. 节点分类(Node Classification)

    • 目标:基于节点的特征和图结构,预测节点的类别标签。
    • 常用模型:GCN(Graph Convolutional Network)、GAT(Graph Attention Network)等。
  2. 图嵌入(Graph Embedding)

    • 将节点嵌入到低维向量空间中,以便在嵌入空间中进行分类、聚类等任务。
  3. 图神经网络模型评估(Evaluation of GNN Models)

    • 评估各种 GNN 模型的性能。

常用处理步骤

  1. 读取特征矩阵、邻接矩阵和标签
  2. 对特征进行标准化处理
  3. 划分训练集、验证集和测试集
  4. 构建 GNN 模型
  5. 使用训练集进行模型训练,并在验证集上调参
  6. 在测试集上评估模型性能
  7. 使用准确率(Accuracy)、精确率(Precision)、召回率(Recall)等指标进行评估

示例代码

以下是一个使用 PyTorch Geometric 进行节点分类的简单示例,使用 PubMed 数据集:

import torch
import torch.nn.functional as F
from torch_geometric.datasets import Planetoid
import torch_geometric.transforms as T
from torch_geometric.nn import GCNConv

# 加载 PubMed 数据集
dataset = Planetoid(root='/tmp/PubMed', name='PubMed', transform=T.NormalizeFeatures())

class GCN(torch.nn.Module):
    def __init__(self):
        super(GCN, self).__init__()
        self.conv1 = GCNConv(dataset.num_features, 16)
        self.conv2 = GCNConv(16, dataset.num_classes)

    def forward(self, data):
        x, edge_index = data.x, data.edge_index
        x = self.conv1(x, edge_index)
        x = F.relu(x)
        x = F.dropout(x, training=self.training)
        x = self.conv2(x, edge_index)
        return F.log_softmax(x, dim=1)

# 初始化模型、优化器和损失函数
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = GCN().to(device)
data = dataset[0].to(device)
optimizer = torch.optim.Adam(model.parameters(), lr=0.01, weight_decay=5e-4)

# 训练模型
def train():
    model.train()
    optimizer.zero_grad()
    out = model(data)
    loss = F.nll_loss(out[data.train_mask], data.y[data.train_mask])
    loss.backward()
    optimizer.step()

# 测试模型
def test():
    model.eval()
    _, pred = model(data).max(dim=1)
    correct = int(pred[data.test_mask].eq(data.y[data.test_mask]).sum().item())
    acc = correct / int(data.test_mask.sum())
    return acc

for epoch in range(200):
    train()
    acc = test()
    print(f'Epoch {epoch}: Accuracy: {acc:.4f}')

        这个示例展示了如何使用 PyTorch Geometric 加载 PubMed 数据集,并训练一个简单的图卷积网络(GCN)进行节点分类。

参考文献

        PubMed 数据集广泛用于各种图神经网络的研究和评估,是图数据分析领域的重要资源。

PubMed数据集_数据集-飞桨AI Studio星河社区PubMed 是一个提供生物医学方面的论文搜寻以及摘要,并且免费搜寻的数据库。它的数据库来源为MEDLINE。其核心主题为医学,但亦包括其他与医学相关的领域,像是护理学或者其他健康学科。icon-default.png?t=N7T8https://aistudio.baidu.com/datasetdetail/177591

图网络常用数据集总结——Cora, CiteSeer, PubMed, PPI, BlogCatalog, Yelp_pubmed数据集-CSDN博客文章浏览阅读1.9w次,点赞19次,收藏80次。Cora数据集(引文网络)由机器学习论文组成,是近年来图深度学习很喜欢使用的数据集。该数据集共2708个样本点,每个样本点都是一篇科学论文,所有样本点被分为8个类别,类别分别是:1)基于案例;2)遗传算法;3)神经网络;4)概率方法;5)强化学习;6)规则学习;7)理论每篇论文都由一个1433维的词向量表示,所以,每个样本点具有1433个特征。词向量的每个元素都对应一个词,且该元素只有0或1两个取值。取0表示该元素对应的词不在论文中,取1表示在论文中。所有的词来源于一个具有1433个词的字典。每篇论文_pubmed数据集https://blog.csdn.net/weixin_43580130/article/details/116449062

完结撒花

        那个奶奶怎么一直坐在门口啊?

  • 25
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值