class_docstr: Implements methods performing poisoning detection based on data provenance.
  
  | Paper link: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8473440
class_docstr_tok: ["Implements","methods","performing","poisoning","detection","based","on","data","provenance",".","|","Paper","link",":","https",":","\/\/ieeexplore.ieee.org\/stamp\/stamp.jsp","?","tp=","&","arnumber=8473440"]
code: def _check_params(self) -> None:
      if self.eps < 0:
          raise ValueError("Value of epsilon must be at least 0.")
  
      if self.pp_valid < 0:
          raise ValueError("Value of pp_valid must be at least 0.")
  
      if len(self.x_train) != len(self.y_train):
          raise ValueError("x_train and y_train do not match in shape.")
  
      if len(self.x_train) != len(self.p_train):
          raise ValueError("Provenance features do not match data.")
  
file_path: adversarial-robustness-toolbox/art/defences/detector/poison/provenance_defense.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from copy import deepcopy
  from typing import Dict, List, Optional, Tuple, TYPE_CHECKING
  import numpy
  from sklearn.model_selection import train_test_split
  from art.defences.detector.poison.ground_truth_evaluator import GroundTruthEvaluator
  from art.defences.detector.poison.poison_filtering_defence import PoisonFilteringDefence
  from art.utils import segment_by_class, performance_diff
label_desc: Use image node_id 7 for calling the ProvenanceDefense obj's underlying member method code with example usage: obj._check_params() without return types