class_docstr: Implementation of Selectivity test by Montavon et al., 2018.
  
  At each iteration, a patch (e.g., of size 4 x 4) corresponding to the region with
  highest relevance is set to black. The plot keeps track of the function value
  as the features are being progressively removed and computes an average over
  a large number of examples.
  
  Assumptions:
      - The original metric definition relies on perturbation functionality suited only for images.
      Therefore, only apply the metric to 3-dimensional (image) data. To extend the applicablity
      to other data domains, adjustments to the current implementation might be necessary.
  
  References:
      1) Grégoire Montavon et al.:
      "Methods for interpreting and understanding deep neural networks."
      Digital Signal Processing 73 (2018): 1-15.
  
  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.
class_docstr_tok: ["Implementation","of","Selectivity","test","by","Montavon","et","al.",",","2018",".","At","each","iteration",",","a","patch","(","e.g.",",","of","size","4","x","4",")","corresponding","to","the","region","with","highest","relevance","is","set","to","black",".","The","plot","keeps","track","of","the","function","value","as","the","features","are","being","progressively","removed","and","computes","an","average","over","a","large","number","of","examples",".","Assumptions",":","-","The","original","metric","definition","relies","on","perturbation","functionality","suited","only","for","images",".","Therefore",",","only","apply","the","metric","to","3-dimensional","(","image",")","data",".","To","extend","the","applicablity","to","other","data","domains",",","adjustments","to","the","current","implementation","might","be","necessary",".","References",":","1",")","Gr\u00e9goire","Montavon","et","al",".",":","``","Methods","for","interpreting","and","understanding","deep","neural","networks",".","''","Digital","Signal","Processing","73","(","2018",")",":","1-15",".","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: Calculate the area under the curve (AUC) score for several test samples.
docstr_tok: ["Calculate","the","area","under","the","curve","(","AUC",")","score","for","several","test","samples","."]
code: def get_auc_score(self):
      """Calculate the area under the curve (AUC) score for several test samples."""
      return np.mean(
          [
              utils.calculate_auc(np.array(curve))
              for i, curve in enumerate(self.evaluation_scores)
          ]
      )
  
file_path: Quantus/quantus/metrics/faithfulness/selectivity.py
imports: import itertools
  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 plotting, 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 4 for calling the Selectivity obj's underlying member method code with example usage: obj.get_auc_score() and returns: np