假设我有一个网络,它由一个弱连接的组件组成。从各种论文中我看到,如果您想使用像GraphSAGE这样的归纳GNN,最好将您的培训/测试数据分成两个单独的图或组件。
由于我已经看到了用于节点分类和链路预测任务的不同方法,所以我特别感兴趣的是节点分类任务,可能的多类分类。
因此,训练/测试分裂图需要确保在训练图和测试图中有某种合理的类存在,同时避免孤立的节点。我已经看到了一些例子,他们只是使用scikit训练/测试拆分,但在我看来,这似乎忽略了节点连接,而且也不能保证您不会被隔离的节点抛出,这些节点可能会扭曲结果。
我能不能用卢万之类的东西,找出节点的社区,然后根据社区来分割图。在我看来,这将有助于提高图形的结构完整性,或者有更好的方法吗?
发布于 2022-03-12 22:14:57
发布于 2022-03-10 18:18:03
一种选择是使用现有的包,用于在保持类费率的同时训练/测试拆分图。例如,PyG (PyTorch几何)包有一个带有num_train_per_class参数的RandomNodeSplit类。
发布于 2022-03-10 20:33:45
在基于图形的ML应用程序中,我没有经验,所以如果我过于简化,请纠正我,但是要重申这个问题:
因此,在所有条件相同的情况下,这种方法似乎是一个解决方案:
同样,我的经验有限,但在我看来,如果你的图形真的很稀疏,过度的预处理输入会让你的模型对你正在处理的问题有一个天真的理解,这意味着当你的模型被应用到训练空间之外时,你的测试结果可能会变得平淡无奇。因此,虽然以上可能是你问题的答案,但我不建议采用这种方法。
https://datascience.stackexchange.com/questions/108777
复制相似问题