fontaine618 / NAIVI

Network Node Variable Imputation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

# Node attribute imputation using variational inference (NAIVI)

Author: **Simon Fontaine** (simfont@umich.edu)

## Repository structure

### NAIVI

Contains the source code to run various node attribute imputation methods.

- `vmp`: the proposed method (joint latent space model estimated with variational message passing)
- `mle`: the joint latent space model estimated using either maximum likelihood estimation with projection (MLE) or maximum a posteriori estimation (MAP) using the prior
- `mice`: imputation within the data matrix only using either MICE with linear models or KNN
- `constant`: imputaiton using the mean
- `gcn`: imputation using a graph convolutional network

### Pypet experiments

This folder contains utilities to run experiments using the pypet library.

### Experiments

This folder contains the scripts to run the experiments using `pypet`. Results and figures are also included in the
respective folders.

### Datasets

Datasets used in the real data experiments.

### Requirements

All requirements are contained in the `requirements.txt` file, or can be obtained using the `poetry` library.

Note: the latest version of `pypet` conflicts with newer versions of `numpy`. There are some basic types that were
removed from `numpy` that are referenced in `pypet`. This needs to be patched, otherwise you might not be able to import `pypet`.
Here is my fix: in `pypetconstants.py`, you need to change the following tuple at line 204:

```
PARAMETER_SUPPORTED_DATA = (numpy.int8,
                            numpy.int16,
                            numpy.int32,
                            numpy.int64,
                            # numpy.int,
                            numpy.int_,
                            # numpy.long,
                            numpy.uint8,
                            numpy.uint16,
                            numpy.uint32,
                            numpy.uint64,
                            # numpy.bool,
                            numpy.bool_,
                            numpy.float32,
                            numpy.float64,
                            # numpy.float,
                            numpy.float_,
                            numpy.complex64,
                            # numpy.complex,
                            numpy.complex_,
                            numpy.str_,
                            str,
                            bytes,
                            bool,
                            int,
                            float,
                            complex)
```

About

Network Node Variable Imputation


Languages

Language:Python 97.5%Language:Shell 2.5%