Skip to main content

Learning from and reconstructing networks using Nonnegative Matrix Factorization

Project description

logo

Network-Dictionary-Learning

Learning from and reconstructing networks using MCMC motif sampling and Nonnegative Matrix Factorization

Installation

To install the Network Dictionary Learning package, run this command in your terminal:

$ pip install ndlearn

This is the preferred method to install Network Dictionary Learning. If you don't have pip installed, these installation instructions can guide you through the process.

Usage

Our package lies on the backbone of the NNetwork class (see https://github.com/HanbaekLyu/NNetwork).

>>> from ndl import Wtd_NNetwork
>>> G = Wtd_NNetwork()
>>> G.load_add_edges_wtd("example.txt", use_genfromtxt=True, delimiter=",")

Learning a Dictionary

>>> from ndl import NetDictLearner
>>> NDL = NetDictLearner(G=G, n_components=25, k=21)
>>> NDL.train_dict()
>>> W = NDL.get_dictionary()

Display and save the learned dictionary:

>>> NDL.display_dict(path="example_dict.npy")

Replace the dictionary with a pre-trained dictionary and/or replace the network:

>>> NDL.set_dict(W)
>>> NDL.set_network(G)

Reconstructing a Network

>>> G_recons = NDL.reconstruct(recons_iter=10000)

The NetDictLearner class provices the base code to perform network dictionary learning and network reconstruction, but we also provide a series of helper fuctions to use alongside the NetDictLearner class to assist on performing tasks related to Network Dictionary Learning and evaluate performance.

Measure Accuracy of Reconstruction (Jaccard)

>>> from ndl import utils
>>> utils.recons_accuracy(G, G_recons)
0.92475345

Network Denoising Application

To add positive corruption (overlaying edges) or negative corruption (deleting edges) from a networks:

>>> len(G.edges())
1000
>>> G_add = utils.corrupt(G, p=0.1, noise_type="ER")
>>> G_remove_10 = utils.corrupt(G, p=0.1, noise_type="negative")
>>>len(G_remove_10.edges())
900

To measure the AUC of network denoising with positive (or negative) noise:

>>> G_corrupt = utils.corrupt(G, p=0.1, noise_type="ER")
>>> NDL_corrupt = NetDictLearner(G=G_corrupt)
>>> NDL_corrupt.train_dict()
>>> G_corrupt_recons = NDL_corrupt.reconstruct(recons_iter=10000)
>>> utils.auc(original=G, corrupt=G_corrupt, corrupt_recons=G_corrupt_recons, type="positive")
0.864578

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ndlearn-0.0.2.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

ndlearn-0.0.2-py2.py3-none-any.whl (24.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file ndlearn-0.0.2.tar.gz.

File metadata

  • Download URL: ndlearn-0.0.2.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.1

File hashes

Hashes for ndlearn-0.0.2.tar.gz
Algorithm Hash digest
SHA256 a42d37c7220c76de4fbef5d909760fecd08aacb9a5cd1742c8ef4bdc1927302f
MD5 e6fb055eb9c8fb2cf577d17f59987eac
BLAKE2b-256 21cb122ed06a2e2eba5b47f76e6ff56cc7897321369f484a4bdf332b3bd39e76

See more details on using hashes here.

File details

Details for the file ndlearn-0.0.2-py2.py3-none-any.whl.

File metadata

  • Download URL: ndlearn-0.0.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.1

File hashes

Hashes for ndlearn-0.0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 51ccd4961b08e947007e5889741cd468b6a47f7dc7e54a078756b17d1205ffe0
MD5 d07b623d8a2cdc71e9eead23fb60402b
BLAKE2b-256 f6f4cf9d43a2a031c4f4fb6478c11c2e9aa82d68ca81cc9808c5fd31626c44ae

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page