class_docstr: Implementation of Monotonicity metric by Arya at el., 2019.
  
  Monotonicity tests if adding more positive evidence increases the probability
  of classification in the specified class.
  
  It captures attributions' faithfulness by incrementally adding each attribute
  in order of increasing importance and evaluating the effect on model performance.
  As more features are added, the performance of the model is expected to increase
  and thus result in monotonically increasing model performance.
  
  References:
      1) Vijay Arya et al.: "One explanation does not fit all: A toolkit and taxonomy of ai explainability
      techniques." arXiv preprint arXiv:1909.03012 (2019).
      2) Ronny Luss et al.: "Generating contrastive explanations with monotonic attribute functions."
      arXiv preprint arXiv:1905.12698 (2019).
  
  Attributes:
      -  _name: The name of the metric.
      - _data_applicability: The data types that the metric implementation currently supports.
      - _models: The model types that this metric can work with.
      - score_direction: How to interpret the scores, whether higher/ lower values are considered better.
      - evaluation_category: What property/ explanation quality that this metric measures.
docstr: This method performs XAI evaluation on a single batch of explanations.
  For more information on the specific logic, we refer the metric’s initialisation docstring.
  
  Parameters
  ----------
  model: ModelInterface
      A ModelInterface that is subject to explanation.
  x_batch: np.ndarray
      The input to be evaluated on a batch-basis.
  y_batch: np.ndarray
      The output to be evaluated on a batch-basis.
  a_batch: np.ndarray
      The explanation to be evaluated on a batch-basis.
  kwargs:
      Unused.
  
  Returns
  -------
  scores_batch:
      The evaluation results.
docstr_tok: ["This","method","performs","XAI","evaluation","on","a","single","batch","of","explanations",".","For","more","information","on","the","specific","logic",",","we","refer","the","metric","\u2019","s","initialisation","docstring",".","Parameters","--","--","--","--","--","model",":","ModelInterface","A","ModelInterface","that","is","subject","to","explanation",".","x_batch",":","np.ndarray","The","input","to","be","evaluated","on","a","batch-basis",".","y_batch",":","np.ndarray","The","output","to","be","evaluated","on","a","batch-basis",".","a_batch",":","np.ndarray","The","explanation","to","be","evaluated","on","a","batch-basis",".","kwargs",":","Unused",".","Returns","--","--","--","-","scores_batch",":","The","evaluation","results","."]
code: def evaluate_batch(
      self,
      model: ModelInterface,
      x_batch: np.ndarray,
      y_batch: np.ndarray,
      a_batch: np.ndarray,
      **kwargs,
  ) -> List[float]:
      """
      This method performs XAI evaluation on a single batch of explanations.
      For more information on the specific logic, we refer the metric’s initialisation docstring.
  
      Parameters
      ----------
      model: ModelInterface
          A ModelInterface that is subject to explanation.
      x_batch: np.ndarray
          The input to be evaluated on a batch-basis.
      y_batch: np.ndarray
          The output to be evaluated on a batch-basis.
      a_batch: np.ndarray
          The explanation to be evaluated on a batch-basis.
      kwargs:
          Unused.
  
      Returns
      -------
      scores_batch:
          The evaluation results.
      """
      return [
          self.evaluate_instance(model=model, x=x, y=y, a=a)
          for x, y, a in zip(x_batch, y_batch, a_batch)
      ]
  
file_path: Quantus/quantus/metrics/faithfulness/monotonicity.py
imports: import sys
  from typing import Any, Callable, Dict, List, Optional
  import numpy
  from quantus.functions.perturb_func import baseline_replacement_by_indices
  from quantus.helpers import asserts, utils, warn
  from quantus.helpers.enums import DataType, EvaluationCategory, ModelType, ScoreDirection
  from quantus.helpers.model.model_interface import ModelInterface
  from quantus.helpers.perturbation_utils import make_perturb_func
  from quantus.metrics.base import Metric
label_desc: Use image node_id 5 for calling the Monotonicity obj's underlying member method code with example usage: obj.evaluate_batch(model, x_batch, y_batch, a_batch) and returns: unknown