GraphSHA 开源项目使用教程
GraphSHA 项目地址: https://gitcode.com/gh_mirrors/gr/GraphSHA
1. 项目介绍
GraphSHA 是一个用于处理类不平衡节点分类问题的开源项目。该项目在 KDD'23 会议上发表,旨在通过合成更难的样本(Harder Samples)来扩大少数类(Minor Classes)的决策边界,从而提高图神经网络(GNN)在类不平衡节点分类任务中的表现。
GraphSHA 的核心思想是通过合成更难的样本,使得少数类的决策边界得到扩展,同时避免这些扩展边界侵入相邻类的子空间。项目中还引入了一个名为 SemiMixup 的模块,用于在扩展少数类边界的同时,阻止信息从少数类传播到相邻类。
2. 项目快速启动
环境要求
GraphSHA 项目已经在以下环境中进行了测试:
- Python == 3.8.13
- PyTorch == 1.11.0
- PyTorch Geometric == 2.0.4
请确保按照官方指南安装 PyTorch 和 PyTorch Geometric。
安装步骤
-
克隆项目仓库:
git clone https://github.com/wenzhilics/GraphSHA.git cd GraphSHA
-
安装依赖项:
pip install -r requirements.txt
运行示例
以下是一个简单的运行示例,使用 Cora 数据集进行类不平衡节点分类:
python main.py --dataset Cora --data_path dataset/ --imb_ratio 100 --net GCN --gdc ppr
主要参数说明
--dataset
: 数据集名称,可选值包括['Cora', 'CiteSeer', 'PubMed', 'Amazon-Photo', 'Amazon-Computers', 'Coauthor-CS']
。--data_path
: 数据集路径,数据集将自动下载到该路径。--imb_ratio
: 不平衡比率。--net
: GNN 骨干网络,可选值包括['GCN', 'GAT', 'SAGE']
。--gdc
: 获取加权图的方式,可选值包括['ppr', 'hk', 'none']
。
3. 应用案例和最佳实践
应用案例
GraphSHA 适用于处理类不平衡的节点分类问题,特别是在以下场景中表现出色:
- 社交网络分析
- 推荐系统
- 生物信息学
最佳实践
- 数据预处理:确保数据集的类不平衡问题显著,以便 GraphSHA 能够有效发挥作用。
- 参数调优:根据具体数据集和任务需求,调整
--imb_ratio
和--net
等参数,以获得最佳性能。 - 模型评估:使用交叉验证等方法评估模型性能,确保模型在不同数据集上的泛化能力。
4. 典型生态项目
GraphSHA 作为一个专注于类不平衡节点分类的工具,可以与以下开源项目结合使用,以构建更强大的图神经网络应用:
- PyTorch Geometric:用于图神经网络的 PyTorch 扩展库,提供了丰富的图数据处理和 GNN 模型。
- DGL (Deep Graph Library):另一个强大的图神经网络库,支持多种图神经网络模型和算法。
- NetworkX:用于复杂网络分析的 Python 库,可以用于图数据的预处理和可视化。
通过结合这些生态项目,可以进一步提升 GraphSHA 在实际应用中的表现和灵活性。