BrizziB / Graph-Classification-with-GCN

A simple implementation of a portion of GCN (Kipf & Welling) that can handle graph classification.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Based on the article: Semi-Supervised Classification with Graph Convolutional Networks - Thomas N. Kipf, Max Welling. link: https://arxiv.org/abs/1609.02907

code: https://github.com/tkipf/gcn.

This Tensorflow implementation of GCN tries to handle graph-classification tasks in two (similar) ways:

  1. "global node" approach - for each graph, a global node is added, only global nodes are classified
  2. global mean pooling approacah - added a mean-pooling layer as the last layer (before softmax) in GCN

Both approaches start with a sparse, block-diagonal version of an adjacency matrix that gathers all the graphs in the dataset. See tkipf/gcn#4 (comment) for a better explanation - with figures

Results: on Protein dataset -with the settings in the code- i obtain an average classification accuracy of 78.8% with 2.7% as standard deviation (the two approaches yield very close results). This accuracy is an average of 100 result. Each test has been conducted using 1000 graphs in the training set and 100 in the test set - with random splits.

About

A simple implementation of a portion of GCN (Kipf & Welling) that can handle graph classification.


Languages

Language:Python 100.0%