class_docstr: A collection of simple detector combination methods.
  
  Parameters
  ----------
  base_estimators : list, length must be greater than 1
      Base unsupervised outlier detectors from PyOD. (Note: requires fit and
      decision_function methods)
  
  method : str, optional (default='average')
      Combination method: {'average', 'maximization',
      'median'}. Pass in weights of detector for weighted version.
  
  contamination : float in (0., 0.5), optional (default=0.1)
      The amount of contamination of the data set,
      i.e. the proportion of outliers in the data set. Used when fitting to
      define the threshold on the decision function.
  
  standardization : bool, optional (default=True)
      If True, perform standardization first to convert
      prediction score to zero mean and unit variance.
      See http://scikit-learn.org/stable/auto_examples/preprocessing/plot_scaling_importance.html
  
  weights : numpy array of shape (1, n_detectors)
      detector weights.
  
  pre_fitted : bool, optional (default=False)
      Whether the base detectors are trained. If True, `fit`
      process may be skipped.
  
  Attributes
  ----------
  decision_scores_ : numpy array of shape (n_samples,)
      The outlier scores of the training data.
      The higher, the more abnormal. Outliers tend to have higher
      scores. This value is available once the detector is fitted.
  
  threshold_ : float
      The threshold is based on ``contamination``. It is the
      ``n_samples * contamination`` most abnormal samples in
      ``decision_scores_``. The threshold is calculated for generating
      binary outlier labels.
  
  labels_ : int, either 0 or 1
      The binary labels of the training data. 0 stands for inliers
      and 1 for outliers/anomalies. It is generated by applying
      ``threshold_`` on ``decision_scores_``.
code: def __init__(
      self,
      base_estimators,
      method="average",
      contamination=0.1,
      standardization=True,
      weights=None,
      pre_fitted=False,
  ):
      super(SimpleDetectorAggregator, self).__init__(
          base_estimators=base_estimators, pre_fitted=pre_fitted
      )
  
      # validate input parameters
      if method not in ["average", "maximization", "median"]:
          raise ValueError(
              "{method} is not a valid parameter.".format(method=method)
          )
      self.method = method
  
      if not (0.0 < contamination <= 0.5):
          raise ValueError(
              "contamination must be in (0, 0.5], "
              "got: %f" % contamination
          )
      self.contamination = contamination
  
      self.standardization = standardization
  
      if weights is None:
          self.weights = np.ones([1, self.n_base_estimators_])
      else:
          self.weights = column_or_1d(weights).reshape(1, len(weights))
          assert self.weights.shape[1] == self.n_base_estimators_
  
          # adjust probability by a factor for integrity
          adjust_factor = self.weights.shape[1] / np.sum(weights)
          self.weights = self.weights * adjust_factor
  
file_path: combo/combo/models/detector_comb.py
imports: import numpy
  from sklearn.utils import check_array
  from sklearn.utils import column_or_1d
  from sklearn.utils.validation import check_is_fitted
  from pyod.utils.utility import standardizer
  from .base import BaseAggregator
  from .score_comb import average, maximization, median
label_desc: Use image node_id 1 to create a new SimpleDetectorAggregator object from inherited base classes: BaseAggregator with example: obj = SimpleDetectorAggregator(base_estimators, method, contamination, standardization, weights, pre_fitted)