DGL图如何从边的水平划分为训练集,验证集和测试集,比例为7:2:1
时间: 2024-05-13 13:17:21 浏览: 11
DGL中的数据集划分可以使用`dgl.data.utils.random_split_edges`函数来实现。该函数将图的边随机划分为训练集、验证集和测试集。具体实现方法如下:
```python
import dgl
# 创建图
g = dgl.graph([...])
# 划分比例
train_ratio = 0.7
val_ratio = 0.2
# 划分边
train_eids, val_eids, test_eids = dgl.data.utils.random_split_edges(
g, [train_ratio, val_ratio], shuffle=True)
# 将边划分为训练集、验证集和测试集
g.edata['train_mask'] = dgl.utils.tensor([i in train_eids for i in range(g.number_of_edges())])
g.edata['val_mask'] = dgl.utils.tensor([i in val_eids for i in range(g.number_of_edges())])
g.edata['test_mask'] = dgl.utils.tensor([i in test_eids for i in range(g.number_of_edges())])
```
在上述代码中,`random_split_edges`函数将图`g`的边随机划分为训练集、验证集和测试集。`[train_ratio, val_ratio]`参数指定了划分比例。`shuffle=True`参数表示是否打乱边的顺序。划分后,将训练集、验证集和测试集的边的索引信息保存在图的边特征中,名称分别为`train_mask`、`val_mask`和`test_mask`。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)