Graph machine learning 工具

OGB: Open Graph Benchmark(斯坦福开源用于网络神经百万量级OGB基准测试的数据集)

https://ogb.stanford.edu/

https://github.com/snap-stanford/ogb

OGB is a collection of benchmark datasets, data-loaders and evaluators for graph machine learning in PyTorch.

Data-loaders are fully compatible with PyTorch Geometric (PYG) and Deep Graph Library (DGL). The goal is to have an easily-accessible standardized large-scale benchmark datasets to drive research in graph machine learning.

 

Deep Graph Library (DGL)

https://www.dgl.ai/

https://github.com/dmlc/dgl

DGL works on PyTorch 0.4.1+ and MXNet nightly build

PyTorch Geometric (PYG)

https://pytorch-geometric.readthedocs.io/en/latest/

https://github.com/rusty1s/pytorch_geometric

 

以节点预测为例,OGB支持PYG图和DGL图来表示学习框架中的数据加载方法。加载代码如下:
PYG
from ogb.nodeproppred.dataset_pyg import PygNodePropPredDataset

dataset = PygNodePropPredDataset(name = d_name) 
num_tasks = dataset.num_tasks # obtaining number of prediction tasks in a dataset

splitted_idx = dataset.get_idx_split()
train_idx, valid_idx, test_idx = splitted_idx["train"], splitted_idx["valid"], splitted_idx["test"]
graph = dataset[0] # pyg graph object

DGL
from ogb.nodeproppred.dataset_dgl import DglNodePropPredDataset

dataset = DglNodePropPredDataset(name = d_name)
num_tasks = dataset.num_tasks # obtaining number of prediction tasks in a dataset

splitted_idx = dataset.get_idx_split()
train_idx, valid_idx, test_idx = splitted_idx["train"], splitted_idx["valid"], splitted_idx["test"]
graph, label = dataset[0] # graph: dgl graph object, label: torch tensor of shape (num_nodes, num_tasks)

同时,该项目提供了一些示例代码来评估每个数据集。具体如下:
from ogb.nodeproppred import Evaluator

evaluator = Evaluator(name = d_name) 
print(evaluator.expected_input_format) 
print(evaluator.expected_output_format)

用户可以了解此数据集的输入和输出的特定格式。然后,用户可以将输入字典传递给计算器,以查看实际性能:
# In most cases, input_dict is
# input_dict = {"y_true": y_true, "y_pred": y_pred} 
result_dict = evaluator.eval(input_dict)
据悉,OGB已经正式指定上海AWS人工智能研究院的主要开源框架DGL作为数据导入平台之一。目前,DGL与PyTorch和MxNet作为后端引擎兼容,TensorFlow也在开发中。事实上,DGL已经做了很长一段时间的异构图形和可伸缩性工作,因此下一步可能是在相关领域将新技术与OGB结合起来,促进开源框架的发展。

  

PyGSP:Graph Signal Processing in Python

https://pygsp.readthedocs.io/en/stable/index.html

https://pygsp.readthedocs.io/en/stable/reference/index.html

Development: https://github.com/epfl-lts2/pygsp.git

https://github.com/wangg12/pygsp.git

 

networkx

https://pypi.org/project/networkx/

https://github.com/networkx/networkx

Website : http://networkx.github.io/

 

igraph:network analysis tools. igraph can be programmed in R, Python, Mathematica and C/C++.

https://igraph.org/

 

graph-tools,Efficient network analysis

https://graph-tool.skewed.de/

https://git.skewed.de/count0/graph-tool

https://graph-tool.skewed.de/static/doc/index.html

https://github.com/solstag/graph-tool

 

Agglomerative cluster tool (pip install agglomcluster)

https://github.com/MSeal/agglom_cluster

http://arxiv.org/pdf/cond-mat/0309508v1.pdf

 

因果关系推理,causal inference in graphs and in the pairwise settings

https://github.com/Diviyan-Kalainathan/CausalDiscoveryToolbox

https://diviyan-kalainathan.github.io/CausalDiscoveryToolbox/html/index.html

pip install cdt

Causal Discovery Toolbox: Uncover causal relationships in Python

https://arxiv.org/abs/1903.02278

补充两个网络可视化工具

Cytoscape: https://cytoscape.org/

Gephi: https://gephi.org/

posted @ 2019-12-15 16:34  土博姜山山  阅读(999)  评论(0编辑  收藏  举报