class_docstr: A meta-estimator which wraps a given estimator with a post-processing
  step.
  
  The post-processor trains on a separate training set from the estimator to
  prevent leakage.
  
  Note:
      Because of the dataset splitting, if a Pipeline is necessary it should
      be used as the input to this meta-estimator not the other way around.
  
  Attributes:
      estimator_: Fitted estimator.
      postprocessor_: Fitted postprocessor.
      classes_ (array, shape (n_classes,)): Class labels from `estimator_`.
class_docstr_tok: ["A","meta-estimator","which","wraps","a","given","estimator","with","a","post-processing","step",".","The","post-processor","trains","on","a","separate","training","set","from","the","estimator","to","prevent","leakage",".","Note",":","Because","of","the","dataset","splitting",",","if","a","Pipeline","is","necessary","it","should","be","used","as","the","input","to","this","meta-estimator","not","the","other","way","around",".","Attributes",":","estimator_",":","Fitted","estimator",".","postprocessor_",":","Fitted","postprocessor",".","classes_","(","array",",","shape","(","n_classes",",",")",")",":","Class","labels","from","`","estimator_","`","."]
code: def _estimator_type(self):
      return self.postprocessor._estimator_type
  
file_path: AIF360/aif360/sklearn/postprocessing/__init__.py
imports: from logging import warning
  import pandas
  from sklearn.base import BaseEstimator, MetaEstimatorMixin, clone
  from sklearn.model_selection import train_test_split
  from sklearn.utils.metaestimators import if_delegate_has_method
  from aif360.sklearn.postprocessing.calibrated_equalized_odds import CalibratedEqualizedOdds
  from aif360.sklearn.postprocessing.reject_option_classification import RejectOptionClassifier, RejectOptionClassifierCV
label_desc: Use image node_id 2 for calling the PostProcessingMeta obj's underlying member method code with example usage: obj._estimator_type() and returns: self