class_docstr: An implementation of `"Role2vec" <https://arxiv.org/abs/1802.02896>`_
  from the IJCAI '18 paper "Learning Role-based Graph Embeddings".
  The procedure uses random walks to approximate the pointwise mutual information
  matrix obtained by multiplying the pooled adjacency power matrix with a
  structural feature matrix (in this case Weisfeiler-Lehman features). This way
  one gets structural node embeddings.
  
  Args:
      walk_number (int): Number of random walks. Default is 10.
      walk_length (int): Length of random walks. Default is 80.
      dimensions (int): Dimensionality of embedding. Default is 128.
      workers (int): Number of cores. Default is 4.
      window_size (int): Matrix power order. Default is 2.
      epochs (int): Number of epochs. Default is 1.
      learning_rate (float): HogWild! learning rate. Default is 0.05.
      down_sampling (float): Down sampling frequency. Default is 0.0001.
      min_count (int): Minimal count of feature occurrences. Default is 10.
      wl_iterations (int): Number of Weisfeiler-Lehman hashing iterations. Default is 2.
      seed (int): Random seed value. Default is 42.
      erase_base_features (bool): Removing the base features. Default is False.
code: def __init__(
      self,
      walk_number: int = 10,
      walk_length: int = 80,
      dimensions: int = 128,
      workers: int = 4,
      window_size: int = 2,
      epochs: int = 1,
      learning_rate: float = 0.05,
      down_sampling: float = 0.0001,
      min_count: int = 10,
      wl_iterations: int = 2,
      seed: int = 42,
      erase_base_features: bool = False,
  ):
      self.walk_number = walk_number
      self.walk_length = walk_length
      self.dimensions = dimensions
      self.workers = workers
      self.window_size = window_size
      self.epochs = epochs
      self.learning_rate = learning_rate
      self.down_sampling = down_sampling
      self.min_count = min_count
      self.wl_iterations = wl_iterations
      self.seed = seed
      self.erase_base_features = erase_base_features
  
file_path: karateclub/karateclub/node_embedding/structural/role2vec.py
imports: from typing import Dict, List
  import numpy
  import networkx
  from gensim.models.doc2vec import Doc2Vec, TaggedDocument
  from karateclub.utils.walker import RandomWalker
  from karateclub.estimator import Estimator
  from karateclub.utils.treefeatures import WeisfeilerLehmanHashing
label_desc: Use image node_id 1 to create a new Role2Vec object from inherited base classes: Estimator with example: obj = Role2Vec(walk_number, walk_length, dimensions, workers, window_size, epochs, learning_rate, down_sampling, min_count, wl_iterations, seed, erase_base_features)