class_docstr: Wrapper analysis block for the 'PyOD' anomaly detection library.
  
  For now, the following techniques are supported:
    - SUOD: Large-scale unsupervised heterogeneous outlier detection
class_docstr_tok: ["Wrapper","analysis","block","for","the","'PyOD","'","anomaly","detection","library",".","For","now",",","the","following","techniques","are","supported",":","-","SUOD",":","Large-scale","unsupervised","heterogeneous","outlier","detection"]
code: def __init__(self, contamination=0.1, deps: Optional[Tuple] = ...):
      super().__init__(deps=deps)
      self.target = None
      self.input_cols = []
      self.exceptions = ["__make_predictions"]
      self.ordinal_encoders = dict()
      if contamination > 0.5:
          log.warning(
              "Contamination higher than maximum possible value, setting at 0.5..."
          )
      self.contamination = min(contamination, 0.5)
  
file_path: lightwood/lightwood/analysis/helpers/pyod.py
imports: from copy import deepcopy
  from types import SimpleNamespace
  from typing import Dict, Optional, Tuple
  import pandas
  import numpy
  from sklearn.preprocessing import OrdinalEncoder
  from pyod.models.lof import LOF
  from pyod.models.pca import PCA
  from pyod.models.hbos import HBOS
  from pyod.models.suod import SUOD
  from lightwood.analysis.base import BaseAnalysisBlock
  from lightwood.helpers.log import log
  from lightwood.helpers.parallelism import get_nr_procs
label_desc: Use image node_id 1 to create a new PyOD object from inherited base classes: BaseAnalysisBlock with example: obj = PyOD(contamination, deps)