safooray / cnn_graph

Survival Analysis Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering

Home Page:https://arxiv.org/abs/1606.09375

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

For Survival Analysis

Fix data path:

	p = os.path.join(os.getcwd(), '../survivalnet/data/Brain_Integ.mat')

You can use the gene data if your machine's memory allows.

	X = D['Integ_X']
  or 
  X = D['Gene_X']
fold_size = int(10 * len(X) / 100)

this means 10% of the data goes to validation and 10% to testing.

set graph construction parameters. Here 4 nearest neighbors are connected to each node based on Euclidean distance:

dist, idx = graph.distance_scipy_spatial(X_train.T, k=4, metric='euclidean')

graph coarsening level should be set to however many times you divide the data by 2 through pooling. So, one 2x2 pooling layer requires a coarsening level of 1, one 2x2 and two 4x4 pooling layers require coarsening level of 5.

graphs, perm = coarsening.coarsen(A, levels=CL, self_connections=False)

Spectral Graph Convolutional Neural Network (SGCNN)

The code in this repository implements an efficient generalization of the popular Convolutional Neural Networks (CNNs) to arbitrary graphs, presented in our paper:

Michaël Defferrard, Xavier Bresson, Pierre Vandergheynst, Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering, Neural Information Processing Systems (NIPS), 2016.

The code is released under the terms of the MIT license. Please cite the above paper if you use it.

Additional material:

There is also implementations of the filters used in:

Installation

  1. Clone this repository.

    git clone https://github.com/mdeff/cnn_graph
    cd cnn_graph
  2. Install the dependencies. Please edit requirements.txt to choose the TensorFlow version (CPU / GPU, Linux / Mac) you want to install, or install it beforehand. The code was developed with TF 0.8 but people have used it with newer versions.

    pip install -r requirements.txt  # or make install
  3. Play with the Jupyter notebooks.

    jupyter notebook

Reproducing our results

Run all the notebooks to reproduce the experiments on MNIST and 20NEWS presented in the paper.

cd nips2016
make

Using the model

To use our graph ConvNet on your data, you need:

  1. a data matrix where each row is a sample and each column is a feature,
  2. a target vector,
  3. optionally, an adjacency matrix which encodes the structure as a graph.

See the usage notebook for a simple example with fabricated data. Please get in touch if you are unsure about applying the model to a different setting.

About

Survival Analysis Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering

https://arxiv.org/abs/1606.09375

License:MIT License


Languages

Language:Jupyter Notebook 69.4%Language:Python 30.2%Language:Makefile 0.4%