cdlib.algorithms.danmf

danmf(g_original: object, layers: tuple = (32, 8), pre_iterations: int = 100, iterations: int = 100, seed: int = 42, lamb: float = 0.01) → cdlib.classes.node_clustering.NodeClustering

The procedure uses telescopic non-negative matrix factorization in order to learn a cluster memmbership distribution over nodes. The method can be used in an overlapping and non-overlapping way.

Supported Graph Types

Undirected Directed Weighted
Yes No Yes
Parameters:
  • g_original – a networkx/igraph object
  • layers – Autoencoder layer sizes in a list of integers. Default [32, 8].
  • pre_iterations – Number of pre-training epochs. Default 100.
  • iterations – Number of training epochs. Default 100.
  • seed – Random seed for weight initializations. Default 42.
  • lamb – Regularization parameter. Default 0.01.
Returns:

NodeClustering object

Example:
>>> from cdlib import algorithms
>>> import networkx as nx
>>> G = nx.karate_club_graph()
>>> coms = algorithms.danmf(G)
References:

Ye, Fanghua, Chuan Chen, and Zibin Zheng. “Deep autoencoder-like nonnegative matrix factorization for community detection.” Proceedings of the 27th ACM International Conference on Information and Knowledge Management. 2018.

Note

Reference implementation: https://karateclub.readthedocs.io/