class_docstr: Abstract class for all outlier detection algorithms.
  
  .. warning::
  pyod would stop supporting Python 2 in the future. Consider move to
  Python 3.5+.
  
  Parameters
  ----------
  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.
  
  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_``.
class_docstr_tok: ["Abstract","class","for","all","outlier","detection","algorithms",".","..","warning",":",":","pyod","would","stop","supporting","Python","2","in","the","future",".","Consider","move","to","Python","3.5+",".","Parameters","--","--","--","--","--","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",".","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, contamination=0.1):
      if isinstance(contamination, (float, int)):
          if not (0.0 < contamination <= 0.5):
              raise ValueError(
                  "contamination must be in (0, 0.5], "
                  "got: %f" % contamination
              )
  
      # allow arbitrary input such as PyThreshld object
      self.contamination = contamination
  
imports: from __future__ import division
  from __future__ import print_function
  import abc
  import warnings
  from collections import defaultdict
  from inspect import signature
  import numpy
  import six
  from numpy import percentile
  from scipy.special import erf
  from scipy.stats import binom
  from sklearn.metrics import roc_auc_score
  from sklearn.preprocessing import MinMaxScaler
  from sklearn.utils import deprecated
  from sklearn.utils.multiclass import check_classification_targets
  from sklearn.utils.validation import check_is_fitted
  from .sklearn_base import _pprint
  from ..utils.utility import precision_n_scores
label_desc: Use image node_id 1 to create a new BaseDetector object from inherited base classes: object with example: obj = BaseDetector(contamination)