# 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) ```