class_docstr: Implementation of Label-Only Inference Attack based on Decision Boundary.
  
  You only need to call ONE of the calibrate methods, depending on which attack you want to launch.
  
  | Paper link: https://arxiv.org/abs/2007.14321 (Choquette-Choo et al.)
  | Paper link: https://arxiv.org/abs/2007.15528 (Li and Zhang)
docstr: Create a `LabelOnlyDecisionBoundary` instance for Label-Only Inference Attack based on Decision Boundary.
  
  :param estimator: A trained classification estimator.
  :param distance_threshold_tau: Threshold distance for decision boundary. Samples with boundary distances larger
                                 than threshold are considered members of the training dataset.
docstr_tok: ["Create","a","`","LabelOnlyDecisionBoundary","`","instance","for","Label-Only","Inference","Attack","based","on","Decision","Boundary",".",":","param","estimator",":","A","trained","classification","estimator",".",":","param","distance_threshold_tau",":","Threshold","distance","for","decision","boundary",".","Samples","with","boundary","distances","larger","than","threshold","are","considered","members","of","the","training","dataset","."]
code: def __init__(
      self,
      estimator: "CLASSIFIER_TYPE",
      distance_threshold_tau: Optional[float] = None,
  ):
      """
      Create a `LabelOnlyDecisionBoundary` instance for Label-Only Inference Attack based on Decision Boundary.
  
      :param estimator: A trained classification estimator.
      :param distance_threshold_tau: Threshold distance for decision boundary. Samples with boundary distances larger
                                     than threshold are considered members of the training dataset.
      """
      super().__init__(estimator=estimator)
      self.distance_threshold_tau = distance_threshold_tau
      self.threshold_bins: list = []
      self._check_params()
  
file_path: adversarial-robustness-toolbox/art/attacks/inference/membership_inference/label_only_boundary_distance.py
imports: import logging
  from typing import Optional, TYPE_CHECKING
  import numpy
  from art.attacks.attack import MembershipInferenceAttack
  from art.estimators.estimator import BaseEstimator
  from art.estimators.classification.classifier import ClassifierMixin
  from art.utils import check_and_transform_label_format
label_desc: Use image node_id 1 to create a new LabelOnlyDecisionBoundary object from inherited base classes: MembershipInferenceAttack with example: obj = LabelOnlyDecisionBoundary(estimator, distance_threshold_tau)