Cora数据集简介
以下内容引用自https://blog.csdn.net/yeziand01/article/details/93374216。
Cora数据集共包含2708个样本点,每个样本点的特征向量长度为1433。每个样本点都是一篇科学论文,样本点总共有7个类别。
每篇论文的特征向量长度为1433,特征是一个词向量,词向量的每一个元素对应一个词,且该元素是一个布尔值,如果为 1 1 1,那就代表这个词在论文中出现过,否则就是没出现过。
Cora数据集是图结构数据,是著名的论文引用数据集。下面通过PyG来对Cora数据集进行读取,并在python中对数据集的结构进行查看。
使用PyG读取Cora数据集
这部分内容参考自https://zhuanlan.zhihu.com/p/543207982。
使用torch_geometric.datasets
库中的Planetoid
,读取Cora数据集,必要的参数包括数据集的路径(即存放Cora文件夹的路径)以及数据集的名称,即'Cora'
:
dataset = Planetoid(root=path, name=name)
dataset保存了数据集本身及数据集的一些性质,比如结点特征的数量(dataset.num_node_features
)和结点的类别dataset.num_classes
。
之后,取:
data = dataset[0].to(device)
便可对数据集的结构进行查看。
data是数据集本身,其中存储了整个Cora数据集,它的类型是torch_geometric.data.data.Data
,对它进行输出,输出的结果为:
Data(x=[2708, 1433], edge_index=[2, 10556], y=[2708], train_mask=[2708], val_mask=[2708], test_mask=[2708])
其中,x=[2708, 1433]
对应的就是图中的2708个结点了,每个结点具有1433个特征(词袋特征向量);而edge_index=[2, 10556]
表示图中有10556条边,第一个维度为2
表示起点和终点;y=[2708]
是一个一维向量,存储的是每一个结点的标签;后面的三个mask
是布尔值数组,以train_mask
为例,它是一个由True/False
组成的一维向量,如果为True
即表示当前索引对应的结点是训练集当中的结点。