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_","`","."]
docstr: Log of probability estimates.
  
  First, runs ``self.estimator_.predict()`` (or ``predict_proba()`` if
  required) then returns the post-processed output from those predictions.
  
  The returned estimates for all classes are ordered by the label of
  classes.
  
  Args:
      X (pandas.DataFrame): Test samples.
  
  Returns:
      array: Returns the log-probability of the sample for each class in
      the model, where classes are ordered as they are in
      ``self.classes_``.
docstr_tok: ["Log","of","probability","estimates",".","First",",","runs","``","self.estimator_.predict","(",")","``","(","or","``","predict_proba","(",")","``","if","required",")","then","returns","the","post-processed","output","from","those","predictions",".","The","returned","estimates","for","all","classes","are","ordered","by","the","label","of","classes",".","Args",":","X","(","pandas.DataFrame",")",":","Test","samples",".","Returns",":","array",":","Returns","the","log-probability","of","the","sample","for","each","class","in","the","model",",","where","classes","are","ordered","as","they","are","in","``","self.classes_","``","."]
code: def predict_log_proba(self, X):
      """Log of probability estimates.
  
      First, runs ``self.estimator_.predict()`` (or ``predict_proba()`` if
      required) then returns the post-processed output from those predictions.
  
      The returned estimates for all classes are ordered by the label of
      classes.
  
      Args:
          X (pandas.DataFrame): Test samples.
  
      Returns:
          array: Returns the log-probability of the sample for each class in
          the model, where classes are ordered as they are in
          ``self.classes_``.
      """
      use_proba = self.postprocessor_._get_tags()["requires_proba"]
      y_score = (
          self.estimator_.predict_proba(X)
          if use_proba
          else self.estimator_.predict(X)
      )
      y_score = pd.DataFrame(y_score, index=X.index).squeeze("columns")
      return self.postprocessor_.predict_log_proba(y_score)
  
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 7 for calling the PostProcessingMeta obj's underlying member method code with example usage: obj.predict_log_proba(X) and returns: self