def load_cora(): path = 'data/cora/' data_name = 'cora' print('Loading from raw data file...') idx_features_labels = np.genfromtxt("{}{}.content".format(path, data_name), dtype=np.dtype(str)) features = sp.csr_matrix(idx_features_labels[:, 1:-1], dtype=np.float32) _, _, labels = np.unique(idx_features_labels[:, -1], return_index=True, return_inverse=True) idx = np.array(idx_features_labels[:, 0], dtype=np.int32) idx_map = {j: i for i, j in enumerate(idx)} edges_unordered = np.genfromtxt("{}{}.cites".format(path, data_name), dtype=np.int32) edges = np.array(list(map(idx_map.get, edges_unordered.flatten())), dtype=np.int32).reshape(edges_unordered.shape) adj = sp.coo_matrix((np.ones(edges.shape[0]), (edges[:, 0], edges[:, 1])), shape=(labels.shape[0], labels.shape[0]), dtype=np.float32) adj = adj.T + adj adj = adj.minimum(1) return features.toarray(), idx_map, adj.toarray(), labels
时间: 2023-06-13 12:02:12 浏览: 58
这是一个函数,用于从Cora数据集的原始数据文件中加载数据。它返回特征、节点索引映射、邻接矩阵和标签。具体来说,它使用numpy库中的genfromtxt函数从包含节点特征和标签的文件中加载数据;使用coo_matrix函数从包含节点之间引用关系的文件中加载数据,并将其转换为邻接矩阵形式;最后,对邻接矩阵进行了处理,使其成为一个二元关系矩阵。
相关问题
def load_data(path="./data/cora/", dataset="cora"): """Load citation network dataset (cora only for now)""" print('Loading {} dataset...'.format(dataset)) idx_features_labels = np.genfromtxt("{}{}.content".format(path, dataset), dtype=np.dtype(str)) features = sp.csr_matrix(idx_features_labels[:, 1:-1], dtype=np.float32) labels = encode_onehot(idx_features_labels[:, -1])
这段代码是用来加载 citation network dataset 中的数据集的。具体来说,它加载了一个叫做 "cora" 的数据集。
这段代码首先使用 `np.genfromtxt` 函数从文件中读取数据,该文件的路径由 `path` 变量指定,文件名由 `dataset` 变量指定。这个文件的格式是一个文本文件,每一行代表了图中的一个节点,每一行包含了节点的特征和标签。
接下来,这段代码使用 `sp.csr_matrix` 函数将节点特征矩阵转换为 Compressed Sparse Row matrix (CSR) 格式。最后,它使用 `encode_onehot` 函数将标签转换为 one-hot 编码格式。
总的来说,这段代码是为了将 citation network dataset 中的数据集加载到内存中,并将其转换为合适的格式以供机器学习算法使用。
path = 'data/cora/' data_name = 'cora' print('Loading from raw data file...') idx_features_labels = np.genfromtxt("{}{}.content".format(path, data_name), dtype=np.dtype(str)) features = sp.csr_matrix(idx_features_labels[:, 1:-1], dtype=np.float32) _, _, labels = np.unique(idx_features_labels[:, -1], return_index=True, return_inverse=True)
这段代码是用来从Cora数据集的原始文件中加载数据的。Cora是一个常用的图分类数据集,包含2708个科学出版物,每个出版物有1433个词作为特征,标签是出版物所属的一类。
具体来说,这段代码首先使用numpy的genfromtxt函数从Cora数据集的文件中读取数据。Cora数据集的每一行都包含出版物的ID、1433个特征值和标签,这些值都被视为字符串类型。因此,dtype=np.dtype(str)告诉numpy将所有值都视为字符串类型。
然后,代码使用切片操作idx_features_labels[:, 1:-1]提取特征值,并使用np.float32将其转换为浮点数类型,创建一个稀疏矩阵。
接下来,代码使用np.unique函数确定Cora数据集中的唯一标签,并将它们转换为整数索引,以便在训练过程中使用。这些整数标签存储在变量labels中。