class_docstr: Wrapper for anomaly detector algorithms.
  
  :py:meth:`~autogluon.eda.analysis.anomaly.AnomalyDetector.fit_transform` automatically creates
  cross-validation splits and fits detectors on each of them. The scores produced for the training
  data are produced using out-of-folds predictions
  
  :py:meth:`~autogluon.eda.analysis.anomaly.AnomalyDetector.transform` uses average of scores from
  the detectors trained on the folds.
  
  Please note: the data passed into the fit/transform must be already pre-processed;
  numeric columns must have no NaNs.
  
  Parameters
  ----------
  label: str
      dataset's label column name
  n_folds: int, default = 5,
      number of folds to use when training detectors
  detector_list: Optional[List[BaseDetector]], default = None
      list of detectors to ensemble. If `None`, then use the standard list:
       - LOF(n_neighbors=15)
       - LOF(n_neighbors=20)
       - LOF(n_neighbors=25)
       - LOF(n_neighbors=35)
       - COPOD
       - IForest(n_estimators=100)
       - IForest(n_estimators=200)
      See `pyod <https://pyod.readthedocs.io/en/latest/pyod.models.html>`_ documentation for the full model list.
  silent: bool, default = True
      Suppress SUOD logs if `True`
  detector_kwargs
      kwargs to pass into detector
class_docstr_tok: ["Wrapper","for","anomaly","detector","algorithms",".",":","py",":","meth",":","`","~autogluon.eda.analysis.anomaly.AnomalyDetector.fit_transform","`","automatically","creates","cross-validation","splits","and","fits","detectors","on","each","of","them",".","The","scores","produced","for","the","training","data","are","produced","using","out-of-folds","predictions",":","py",":","meth",":","`","~autogluon.eda.analysis.anomaly.AnomalyDetector.transform","`","uses","average","of","scores","from","the","detectors","trained","on","the","folds",".","Please","note",":","the","data","passed","into","the","fit\/transform","must","be","already","pre-processed",";","numeric","columns","must","have","no","NaNs",".","Parameters","--","--","--","--","--","label",":","str","dataset","'s","label","column","name","n_folds",":","int",",","default","=","5",",","number","of","folds","to","use","when","training","detectors","detector_list",":","Optional","[","List","[","BaseDetector","]","]",",","default","=","None","list","of","detectors","to","ensemble",".","If","`","None","`",",","then","use","the","standard","list",":","-","LOF","(","n_neighbors=15",")","-","LOF","(","n_neighbors=20",")","-","LOF","(","n_neighbors=25",")","-","LOF","(","n_neighbors=35",")","-","COPOD","-","IForest","(","n_estimators=100",")","-","IForest","(","n_estimators=200",")","See","`","pyod","<","https",":","\/\/pyod.readthedocs.io\/en\/latest\/pyod.models.html",">","`","_","documentation","for","the","full","model","list",".","silent",":","bool",",","default","=","True","Suppress","SUOD","logs","if","`","True","`","detector_kwargs","kwargs","to","pass","into","detector"]
code: def problem_type(self):
      return "regression"
  
imports: from __future__ import print_function
  import builtins
  import contextlib
  import logging
  from functools import partial
  from typing import Any, Dict, List, Optional
  import joblib
  import numpy
  import pandas
  from pyod.models.base import BaseDetector
  from pyod.models.copod import COPOD
  from pyod.models.iforest import IForest
  from pyod.models.lof import LOF
  from pyod.models.suod import SUOD
  from autogluon.common.utils.resource_utils import ResourceManager
  from autogluon.core.utils import CVSplitter
  from ..None import AnalysisState
  from .base import AbstractAnalysis
label_desc: Use image node_id 3 for calling the AnomalyDetector obj's underlying member method code with example usage: obj.problem_type() and returns: str