class_docstr: Class for importing CatBoost models.
class_docstr_tok: ["Class","for","importing","CatBoost","models","."]
docstr: Create a `Classifier` instance from a CatBoost model.
  
  :param model: CatBoost model.
  :param preprocessing_defences: Preprocessing defence(s) to be applied by the classifier.
  :param postprocessing_defences: Postprocessing defence(s) to be applied by the classifier.
  :param preprocessing: Tuple of the form `(subtrahend, divisor)` of floats or `np.ndarray` of values to be
         used for data preprocessing. The first value will be subtracted from the input. The input will then
         be divided by the second one.
  :param clip_values: Tuple of the form `(min, max)` representing the minimum and maximum values allowed
         for features.
  :param nb_features: Number of features.
docstr_tok: ["Create","a","`","Classifier","`","instance","from","a","CatBoost","model",".",":","param","model",":","CatBoost","model",".",":","param","preprocessing_defences",":","Preprocessing","defence","(","s",")","to","be","applied","by","the","classifier",".",":","param","postprocessing_defences",":","Postprocessing","defence","(","s",")","to","be","applied","by","the","classifier",".",":","param","preprocessing",":","Tuple","of","the","form","`","(","subtrahend",",","divisor",")","`","of","floats","or","`","np.ndarray","`","of","values","to","be","used","for","data","preprocessing",".","The","first","value","will","be","subtracted","from","the","input",".","The","input","will","then","be","divided","by","the","second","one",".",":","param","clip_values",":","Tuple","of","the","form","`","(","min",",","max",")","`","representing","the","minimum","and","maximum","values","allowed","for","features",".",":","param","nb_features",":","Number","of","features","."]
code: def __init__(
      self,
      model: Optional["CatBoostClassifier"] = None,
      preprocessing_defences: Union[
          "Preprocessor", List["Preprocessor"], None
      ] = None,
      postprocessing_defences: Union[
          "Postprocessor", List["Postprocessor"], None
      ] = None,
      preprocessing: "PREPROCESSING_TYPE" = (0.0, 1.0),
      clip_values: Optional["CLIP_VALUES_TYPE"] = None,
      nb_features: Optional[int] = None,
  ) -> None:
      """
      Create a `Classifier` instance from a CatBoost model.
  
      :param model: CatBoost model.
      :param preprocessing_defences: Preprocessing defence(s) to be applied by the classifier.
      :param postprocessing_defences: Postprocessing defence(s) to be applied by the classifier.
      :param preprocessing: Tuple of the form `(subtrahend, divisor)` of floats or `np.ndarray` of values to be
             used for data preprocessing. The first value will be subtracted from the input. The input will then
             be divided by the second one.
      :param clip_values: Tuple of the form `(min, max)` representing the minimum and maximum values allowed
             for features.
      :param nb_features: Number of features.
      """
      # pylint: disable=E0611,E0401
      from catboost.core import CatBoostClassifier
  
      if not isinstance(model, CatBoostClassifier):  # pragma: no cover
          raise TypeError(
              "Model must be of type catboost.core.CatBoostClassifier"
          )
  
      super().__init__(
          model=model,
          clip_values=clip_values,
          preprocessing_defences=preprocessing_defences,
          postprocessing_defences=postprocessing_defences,
          preprocessing=preprocessing,
      )
  
      self._input_shape = (nb_features,)
      nb_classes = self._get_nb_classes()
      if nb_classes != -1:
          self.nb_classes = nb_classes
  
file_path: adversarial-robustness-toolbox/art/estimators/classification/catboost.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  import os
  import pickle
  from typing import List, Optional, Union, Tuple, TYPE_CHECKING
  import numpy
  from art.estimators.classification.classifier import ClassifierDecisionTree
  from art import config
label_desc: Use image node_id 1 to create a new CatBoostARTClassifier object from inherited base classes: ClassifierDecisionTree with example: obj = CatBoostARTClassifier(model, preprocessing_defences, postprocessing_defences, preprocessing, clip_values, nb_features)