class_docstr: An implementation of `"NNSED"
  <http://www.bigdatalab.ac.cn/~shenhuawei/publications/2017/cikm-sun.pdf>`_
  from the CIKM '17 paper "A Non-negative Symmetric Encoder-Decoder Approach
  for Community Detection". The procedure uses non-negative matrix factorization
  in order to learn an unnormalized cluster membership distribution over nodes.
  The method can be used in an overlapping and non-overlapping way.
  
  Args:
      layers (int): Embedding layer size. Default is 32.
      iterations (int): Number of training epochs. Default 10.
      seed (int): Random seed for weight initializations. Default 42.
      noise (float): Random noise for normalization stability. Default is 10**-6.
class_docstr_tok: ["An","implementation","of","`","``","NNSED","''","<","http",":","\/\/www.bigdatalab.ac.cn\/~shenhuawei\/publications\/2017\/cikm-sun.pdf",">","`","_","from","the","CIKM","'17","paper","``","A","Non-negative","Symmetric","Encoder-Decoder","Approach","for","Community","Detection","''",".","The","procedure","uses","non-negative","matrix","factorization","in","order","to","learn","an","unnormalized","cluster","membership","distribution","over","nodes",".","The","method","can","be","used","in","an","overlapping","and","non-overlapping","way",".","Args",":","layers","(","int",")",":","Embedding","layer","size",".","Default","is","32.","iterations","(","int",")",":","Number","of","training","epochs",".","Default","10.","seed","(","int",")",":","Random","seed","for","weight","initializations",".","Default","42.","noise","(","float",")",":","Random","noise","for","normalization","stability",".","Default","is","10","*","*","-6","."]
docstr: Fitting an NNSED clustering model.
  
  Arg types:
      * **graph** *(NetworkX graph)* - The graph to be clustered.
docstr_tok: ["Fitting","an","NNSED","clustering","model",".","Arg","types",":","*","*","*","graph","*","*","*","(","NetworkX","graph",")","*","-","The","graph","to","be","clustered","."]
code: def fit(self, graph: nx.classes.graph.Graph):
      """
      Fitting an NNSED clustering model.
  
      Arg types:
          * **graph** *(NetworkX graph)* - The graph to be clustered.
      """
      self._set_seed()
      graph = self._check_graph(graph)
      A = self._create_base_matrix(graph)
      self._setup_embeddings(A)
      for _ in range(self.iterations):
          self._update_W(A)
          self._update_Z(A)
  
file_path: karateclub/karateclub/community_detection/overlapping/nnsed.py
imports: import numpy
  import networkx
  from typing import Dict
  from scipy import sparse
  from karateclub.estimator import Estimator
label_desc: Use image node_id 9 for calling the NNSED obj's underlying member method code with example usage: obj.fit(graph) without return types