class_docstr: Abstract class for all combination classes.
  
  Parameters
  ----------
  base_estimators: list, length must be greater than 1
      A list of base estimators. Certain methods must be present, e.g.,
      `fit` and `predict`.
  
  pre_fitted: bool, optional (default=False)
      Whether the base estimators are trained. If True, `fit`
      process may be skipped.
docstr: Predict the probability of a sample being outlier. Two approaches
  are possible:
  
  1. simply use Min-max conversion to linearly transform the outlier
     scores into the range of [0,1]. The model must be
     fitted first.
  2. use unifying scores, see :cite:`kriegel2011interpreting`.
  
  Parameters
  ----------
  X : numpy array of shape (n_samples, n_features)
      The input samples.
  
  proba_method : str, optional (default='linear')
      Probability conversion method. It must be one of
      'linear' or 'unify'.
  
  Returns
  -------
  outlier_labels : numpy array of shape (n_samples,)
      For each observation, tells whether or not
      it should be considered as an outlier according to the
      fitted model. Return the outlier probability, ranging
      in [0,1].
docstr_tok: ["Predict","the","probability","of","a","sample","being","outlier",".","Two","approaches","are","possible",":","1.","simply","use","Min-max","conversion","to","linearly","transform","the","outlier","scores","into","the","range","of","[","0,1","]",".","The","model","must","be","fitted","first",".","2.","use","unifying","scores",",","see",":","cite",":","`","kriegel2011interpreting","`",".","Parameters","--","--","--","--","--","X",":","numpy","array","of","shape","(","n_samples",",","n_features",")","The","input","samples",".","proba_method",":","str",",","optional","(","default='linear","'",")","Probability","conversion","method",".","It","must","be","one","of","'linear","'","or","'unify","'",".","Returns","--","--","--","-","outlier_labels",":","numpy","array","of","shape","(","n_samples",",",")","For","each","observation",",","tells","whether","or","not","it","should","be","considered","as","an","outlier","according","to","the","fitted","model",".","Return","the","outlier","probability",",","ranging","in","[","0,1","]","."]
code: def _detector_predict_proba(self, X, proba_method="linear"):
      """Predict the probability of a sample being outlier. Two approaches
      are possible:
  
      1. simply use Min-max conversion to linearly transform the outlier
         scores into the range of [0,1]. The model must be
         fitted first.
      2. use unifying scores, see :cite:`kriegel2011interpreting`.
  
      Parameters
      ----------
      X : numpy array of shape (n_samples, n_features)
          The input samples.
  
      proba_method : str, optional (default='linear')
          Probability conversion method. It must be one of
          'linear' or 'unify'.
  
      Returns
      -------
      outlier_labels : numpy array of shape (n_samples,)
          For each observation, tells whether or not
          it should be considered as an outlier according to the
          fitted model. Return the outlier probability, ranging
          in [0,1].
      """
  
      check_is_fitted(
          self, ["decision_scores_", "threshold_", "labels_"]
      )
      train_scores = self.decision_scores_
  
      test_scores = self.decision_function(X)
  
      probs = np.zeros([X.shape[0], int(self._classes)])
      if proba_method == "linear":
          scaler = MinMaxScaler().fit(train_scores.reshape(-1, 1))
          probs[:, 1] = (
              scaler.transform(test_scores.reshape(-1, 1))
              .ravel()
              .clip(0, 1)
          )
          probs[:, 0] = 1 - probs[:, 1]
          return probs
  
      elif proba_method == "unify":
          # turn output into probability
          pre_erf_score = (test_scores - self._mu) / (
              self._sigma * np.sqrt(2)
          )
          erf_score = erf(pre_erf_score)
          probs[:, 1] = erf_score.clip(0, 1).ravel()
          probs[:, 0] = 1 - probs[:, 1]
          return probs
      else:
          raise ValueError(
              proba_method,
              "is not a valid probability conversion method",
          )
  
imports: import warnings
  from collections import defaultdict
  from abc import ABC, abstractmethod
  import numpy
  from numpy import percentile
  from scipy.special import erf
  from sklearn.preprocessing import MinMaxScaler
  from sklearn.utils import column_or_1d
  from sklearn.utils.validation import check_is_fitted
  from sklearn.utils.multiclass import check_classification_targets
  from .sklearn_base import _pprint
  from inspect import signature
label_desc: Use image node_id 8 for calling the BaseAggregator obj's underlying member method code with example usage: obj._detector_predict_proba(X, proba_method) and returns: probs, probs