Skip to content

Unofficial Python implementation of the DNMF overlapping community detection algorithm

License

Notifications You must be signed in to change notification settings

Bani57/dnmf-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dnmf-python

Unofficial Python implementation of the Discrete Non-negative Matrix Factorization (DNMF) overlapping community detection algorithm

DOI


Paper

Ye, Fanghua, Chuan Chen, Zibin Zheng, Rong-Hua Li, and Jeffrey Xu Yu. 2019. “Discrete Overlapping Community Detection with Pseudo Supervision.” In 2019 IEEE International Conference on Data Mining (ICDM), 708–17. https://doi.org/10.1109/ICDM.2019.00081.

Official implementation in MATLAB at https://github.com/smartyfh/DNMF.


Requirements

  • python>=3.7.1
  • torch>=1.9.1

Quick start

  • To install the package run one of the two commands:

    • python -m pip install dnmf-python (installation from PyPI)
    • python setup.py install (compile from source, if cloned the repository)
  • To run the algorithm, load the graph adjacency matrix into a torch.FloatTensor (for ex. A), then call:

    from dnmf.DNMF import DNMF
    dnmf = DNMF()
    F = dnmf(A)
    
  • To run a quick test of the algorithm with an example graph, run python test.py from inside the src/dnmf/ directory


Config

The DNMF module supports the following hyperparameters as arguments:

  • alpha: tradeoff parameter for the U-subproblem
  • beta: tradeoff parameter for the F-subproblem
  • gamma: regularization parameter
  • k: desired number of overlapping communities
  • num_outer_iter: number of iterations for the outer loop (SDP iterations)
  • num_inner_iter: number of iterations for the inner loops (U and F subproblems)

How to cite

If you used dnmf-python for work on your paper please use the following BibTeX entry to cite this software:

@software{janchevski_dnmf-python_2022,
author = {Janchevski, Andrej},
doi = {10.5281/zenodo.13881412},
month = jan,
title = {{dnmf-python: Unofficial Python implementation of the Discrete Non-negative Matrix Factorization (DNMF) overlapping community detection algorithm}},
url = {https://github.com/Bani57/dnmf-python},
version = {0.0.3},
year = {2022}
}

Author

Andrej Janchevski

andrej.janchevski@epfl.ch

EPFL STI IEM LIONS

Lausanne, Switzerland

About

Unofficial Python implementation of the DNMF overlapping community detection algorithm

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages