code: def expected_input_format(self):
      desc = "==== Expected input format of Evaluator for {}\n".format(
          self.name
      )
      if "hits@" in self.eval_metric:
          desc += (
              "{'y_pred_pos': y_pred_pos, 'y_pred_neg': y_pred_neg}\n"
          )
          desc += "- y_pred_pos: numpy ndarray or torch tensor of shape (num_edges, ). Torch tensor on GPU is recommended for efficiency.\n"
          desc += "- y_pred_neg: numpy ndarray or torch tensor of shape (num_edges, ). Torch tensor on GPU is recommended for efficiency.\n"
          desc += (
              "y_pred_pos is the predicted scores for positive edges.\n"
          )
          desc += (
              "y_pred_neg is the predicted scores for negative edges.\n"
          )
          desc += "Note: As the evaluation metric is ranking-based, the predicted scores need to be different for different edges."
      elif self.eval_metric == "mrr":
          desc += (
              "{'y_pred_pos': y_pred_pos, 'y_pred_neg': y_pred_neg}\n"
          )
          desc += "- y_pred_pos: numpy ndarray or torch tensor of shape (num_edges, ). Torch tensor on GPU is recommended for efficiency.\n"
          desc += "- y_pred_neg: numpy ndarray or torch tensor of shape (num_edges, num_nodes_neg). Torch tensor on GPU is recommended for efficiency.\n"
          desc += (
              "y_pred_pos is the predicted scores for positive edges.\n"
          )
          desc += "y_pred_neg is the predicted scores for negative edges. It needs to be a 2d matrix.\n"
          desc += "y_pred_pos[i] is ranked among y_pred_neg[i].\n"
          desc += "Note: As the evaluation metric is ranking-based, the predicted scores need to be different for different edges."
      elif self.eval_metric == "rocauc":
          desc += (
              "{'y_pred_pos': y_pred_pos, 'y_pred_neg': y_pred_neg}\n"
          )
          desc += "- y_pred_pos: numpy ndarray or torch tensor of shape (num_edges, ).\n"
          desc += "- y_pred_neg: numpy ndarray or torch tensor of shape (num_edges, ).\n"
          desc += (
              "y_pred_pos is the predicted scores for positive edges.\n"
          )
          desc += (
              "y_pred_neg is the predicted scores for negative edges.\n"
          )
      else:
          raise ValueError(
              "Undefined eval metric %s" % (self.eval_metric)
          )
  
      return desc
  
file_path: ogb/ogb/linkproppred/evaluate.py
imports: import os
  import numpy
  import pandas
  from sklearn.metrics import roc_auc_score
label_desc: Use image node_id 4 for calling the Evaluator obj's underlying member method code with example usage: obj.expected_input_format() and returns: desc