class_docstr: SUOD (Scalable Unsupervised Outlier Detection) is an acceleration
  framework for large scale unsupervised outlier detector training and
  prediction. The corresponding paper is under review in KDD 2020.
  
  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`.
  
  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.
  
  n_jobs : optional (default=1)
          The number of jobs to run in parallel for both `fit` and
          `predict`. If -1, then the number of jobs is set to the
          the number of jobs that can actually run in parallel.
  
  rp_clf_list : list, optional (default=None)
          The list of outlier detection models to use random projection. The
          detector name should be consistent with PyOD.
  
  rp_ng_clf_list : list, optional (default=None)
          The list of outlier detection models NOT to use random projection. The
          detector name should be consistent with PyOD.
  
  rp_flag_global : bool, optional (default=True)
          If set to False, random projection is turned off for all base models.
  
  target_dim_frac : float in (0., 1), optional (default=0.5)
          The target compression ratio.
  
  jl_method : string, optional (default = 'basic')
          The JL projection method:
  
          - "basic": each component of the transformation matrix is taken at
            random in N(0,1).
          - "discrete", each component of the transformation matrix is taken at
            random in {-1,1}.
          - "circulant": the first row of the transformation matrix is taken at
            random in N(0,1), and each row is obtained from the previous one
            by a one-left shift.
          - "toeplitz": the first row and column of the transformation matrix
            is taken at random in N(0,1), and each diagonal has a constant value
            taken from these first vector.
  
  bps_flag : bool, optional (default=True)
          If set to False, balanced parallel scheduling is turned off.
  
  approx_clf_list : list, optional (default=None)
          The list of outlier detection models to use pseudo-supervised
          approximation. The detector name should be consistent with PyOD.
  
  approx_ng_clf_list : list, optional (default=None)
          The list of outlier detection models NOT to use pseudo-supervised
          approximation. The detector name should be consistent with PyOD.
  
  approx_flag_global : bool, optional (default=True)
          If set to False, pseudo-supervised approximation is turned off.
  
  approx_clf : object, optional (default: sklearn RandomForestRegressor)
          The supervised model used to approximate unsupervised models.
  
  cost_forecast_loc_fit : str, optional
          The location of the pretrained cost prediction forecast for training.
  
  cost_forecast_loc_pred : str, optional
          The location of the pretrained cost prediction forecast for prediction.
  
  verbose : bool, optional (default=False)
          Controls the verbosity of the building process.
docstr: Set the parameters of this estimator.
  The method works on simple estimators as well as on nested objects
  (such as pipelines). The latter have parameters of the form
  ``<component>__<parameter>`` so that it's possible to update each
  component of a nested object.
  
  See http://scikit-learn.org/stable/modules/generated/sklearn.base.BaseEstimator.html
  and sklearn/base.py for more information.
  
  Returns
  -------
  self : object
docstr_tok: ["Set","the","parameters","of","this","estimator",".","The","method","works","on","simple","estimators","as","well","as","on","nested","objects","(","such","as","pipelines",")",".","The","latter","have","parameters","of","the","form","``","<","component",">","__","<","parameter",">","``","so","that","it","'s","possible","to","update","each","component","of","a","nested","object",".","See","http",":","\/\/scikit-learn.org\/stable\/modules\/generated\/sklearn.base.BaseEstimator.html","and","sklearn\/base.py","for","more","information",".","Returns","--","--","--","-","self",":","object"]
code: def set_params(self, **params):
      # noinspection PyPep8,PyPep8
      """Set the parameters of this estimator.
      The method works on simple estimators as well as on nested objects
      (such as pipelines). The latter have parameters of the form
      ``<component>__<parameter>`` so that it's possible to update each
      component of a nested object.
  
      See http://scikit-learn.org/stable/modules/generated/sklearn.base.BaseEstimator.html
      and sklearn/base.py for more information.
  
      Returns
      -------
      self : object
      """
  
      if not params:
          # Simple optimization to gain speed (inspect is slow)
          return self
      valid_params = self.get_params(deep=True)
  
      nested_params = defaultdict(dict)  # grouped by prefix
      for key, value in params.items():
          key, delim, sub_key = key.partition("__")
          if key not in valid_params:
              raise ValueError(
                  "Invalid parameter %s for estimator %s. "
                  "Check the list of available parameters "
                  "with `estimator.get_params().keys()`." % (key, self)
              )
  
          if delim:
              nested_params[key][sub_key] = value
          else:
              setattr(self, key, value)
  
      for key, sub_params in nested_params.items():
          valid_params[key].set_params(**sub_params)
  
      return self
  
imports: import os
  import sys
  import time
  import numbers
  import numpy
  from sklearn.ensemble import RandomForestRegressor
  from sklearn.utils import check_array
  import joblib
  from joblib import Parallel, delayed, effective_n_jobs
  from joblib.externals.loky.backend.context import set_start_method
  from pyod.models.sklearn_base import _pprint
  from pyod.utils.utility import check_parameter
  from suod.models.parallel_processes import cost_forecast_meta
  from suod.models.parallel_processes import balanced_scheduling
  from suod.models.parallel_processes import _parallel_fit
  from suod.models.parallel_processes import _parallel_predict
  from suod.models.parallel_processes import _parallel_predict_proba
  from suod.models.parallel_processes import _parallel_decision_function
  from suod.models.parallel_processes import _partition_estimators
  from suod.models.parallel_processes import _parallel_approx_estimators
  from ..utils.utility import _unfold_parallel, build_codes, _get_sklearn_version
  import warnings
  from collections import defaultdict
  from inspect import signature
label_desc: Use image node_id 13 for calling the SUOD obj's underlying member method code with example usage: obj.set_params() and returns: self, self