tkipf / ica

Python implementation of the Iterative Classification Algorithm
MIT License
35 stars 22 forks source link

Iterative Classification Algorithm

This is a python/sklearn implementation of the Iterative Classification Algorithm from:

Qing Lu, Lise Getoor, Link-based classification (ICML 2003)

which served as a semi-supervised classification baseline in our recent paper:

Thomas N. Kipf, Max Welling, Semi-Supervised Classification with Graph Convolutional Networks (2016)

This implementation is largely based on and adapted from: https://github.com/sskhandle/Iterative-Classification

Installation

python setup.py install

Requirements

Run the demo

python train.py

Data

In order to use your own data, you have to provide

Have a look at the load_data() function in utils.py for an example.

In this example, we load citation network data (Cora, Citeseer or Pubmed). The original datasets can be found here: http://linqs.cs.umd.edu/projects/projects/lbc/. In our version (see data folder) we use dataset splits provided by https://github.com/kimiyoung/planetoid (Zhilin Yang, William W. Cohen, Ruslan Salakhutdinov, Revisiting Semi-Supervised Learning with Graph Embeddings, ICML 2016).

You can specify a dataset as follows:

python train.py -dataset citeseer

(or by editing train.py)