class_docstr: An implementation of `"BigClam" <http://infolab.stanford.edu/~crucis/pubs/paper-nmfagm.pdf>`_
  from the WSDM '13 paper "Overlapping Community Detection at Scale: A Non-negative Matrix
  Factorization Approach". The procedure uses gradient ascent to create an embedding which is
  used for deciding the node-cluster affiliations.
  
  Args:
      dimensions (int): Number of embedding dimensions. Default 8.
      iterations (int): Number of training iterations. Default 50.
      learning_rate (float): Gradient ascent learning rate. Default is 0.005.
      seed (int): Random seed value. Default is 42.
class_docstr_tok: ["An","implementation","of","`","``","BigClam","''","<","http",":","\/\/infolab.stanford.edu\/~crucis\/pubs\/paper-nmfagm.pdf",">","`","_","from","the","WSDM","'13","paper","``","Overlapping","Community","Detection","at","Scale",":","A","Non-negative","Matrix","Factorization","Approach","''",".","The","procedure","uses","gradient","ascent","to","create","an","embedding","which","is","used","for","deciding","the","node-cluster","affiliations",".","Args",":","dimensions","(","int",")",":","Number","of","embedding","dimensions",".","Default","8.","iterations","(","int",")",":","Number","of","training","iterations",".","Default","50.","learning_rate","(","float",")",":","Gradient","ascent","learning","rate",".","Default","is","0.005.","seed","(","int",")",":","Random","seed","value",".","Default","is","42","."]
docstr: Updating the embedding and the feature sum.
  
  Arg types:
      * **node** *(int)* - The node identifier.
      * **gradient** *(Numpy array)* - The gradient of the node representation.
      * **node_feature** *(Numpy array)* - The node representation.
docstr_tok: ["Updating","the","embedding","and","the","feature","sum",".","Arg","types",":","*","*","*","node","*","*","*","(","int",")","*","-","The","node","identifier",".","*","*","*","gradient","*","*","*","(","Numpy","array",")","*","-","The","gradient","of","the","node","representation",".","*","*","*","node_feature","*","*","*","(","Numpy","array",")","*","-","The","node","representation","."]
code: def _do_updates(self, node, gradient, node_feature):
      """
      Updating the embedding and the feature sum.
  
      Arg types:
          * **node** *(int)* - The node identifier.
          * **gradient** *(Numpy array)* - The gradient of the node representation.
          * **node_feature** *(Numpy array)* - The node representation.
      """
      self._embedding[node] = (
          self._embedding[node] + self.learning_rate * gradient
      )
      self._embedding[node] = np.clip(
          self._embedding[node], 0.00001, 10
      )
      self._global_features = (
          self._global_features - node_feature + self._embedding[node]
      )
  
file_path: karateclub/karateclub/community_detection/overlapping/bigclam.py
imports: import random
  import community
  import numpy
  import networkx
  from typing import Dict
  from karateclub.estimator import Estimator
label_desc: Use image node_id 4 for calling the BigClam obj's underlying member method code with example usage: obj._do_updates(node, gradient, node_feature) without return types