code: def __call__(self, data):
      if self._strategy == "random":
          random_center = np.random.randint(0, len(data.pos))
  
      elif self._strategy == "freq_class_based":
          labels = np.asarray(data.y)
          uni, uni_counts = np.unique(
              np.asarray(data.y), return_counts=True
          )
          uni_counts = uni_counts.mean() / uni_counts
          if self._class_weight_method == "sqrt":
              uni_counts = np.sqrt(uni_counts)
          uni_counts /= np.sum(uni_counts)
          chosen_label = np.random.choice(uni, p=uni_counts)
          random_center = np.random.choice(
              np.argwhere(labels == chosen_label).flatten()
          )
      else:
          raise NotImplementedError
  
      return random_center
  
imports: import numpy
label_desc: Use image node_id 2 for calling the SamplingStrategy obj's underlying member method code with example usage: obj.__call__(data) and returns: random_center