class_docstr: Detector that detects anomalous inter-series relationship.
  
  This detector performs regression to build relationship between a target
  series and the rest of series, and identifies a time point as anomalous
  when the residual of regression is anomalously large.
  
  This detector is internally implemented as a `Pipenet` object. Advanced
  users may learn more details by checking attribute `pipe_`.
  
  Parameters
  ----------
  target: str
      Name of the column to be regarded as target variable.
  
  regressor: object
      Regressor to be used. Same as a scikit-learn regressor, it should
      minimally have `fit` and `predict` methods.
  
  c: float, optional
      Factor used to determine the bound of normal range based on historical
      interquartile range. Default: 3.0.
  
  side: str, optional
      - If "both", to detect anomalous positive and negative residuals;
      - If "positive", to only detect anomalous positive residuals;
      - If "negative", to only detect anomalous negative residuals.
  
      Default: "both".
  
  Attributes
  ----------
  pipe_: adtk.pipe.Pipenet
      Internal pipenet object.
class_docstr_tok: ["Detector","that","detects","anomalous","inter-series","relationship",".","This","detector","performs","regression","to","build","relationship","between","a","target","series","and","the","rest","of","series",",","and","identifies","a","time","point","as","anomalous","when","the","residual","of","regression","is","anomalously","large",".","This","detector","is","internally","implemented","as","a","`","Pipenet","`","object",".","Advanced","users","may","learn","more","details","by","checking","attribute","`","pipe_","`",".","Parameters","--","--","--","--","--","target",":","str","Name","of","the","column","to","be","regarded","as","target","variable",".","regressor",":","object","Regressor","to","be","used",".","Same","as","a","scikit-learn","regressor",",","it","should","minimally","have","`","fit","`","and","`","predict","`","methods",".","c",":","float",",","optional","Factor","used","to","determine","the","bound","of","normal","range","based","on","historical","interquartile","range",".","Default",":","3.0.","side",":","str",",","optional","-","If","``","both","''",",","to","detect","anomalous","positive","and","negative","residuals",";","-","If","``","positive","''",",","to","only","detect","anomalous","positive","residuals",";","-","If","``","negative","''",",","to","only","detect","anomalous","negative","residuals",".","Default",":","``","both","''",".","Attributes","--","--","--","--","--","pipe_",":","adtk.pipe.Pipenet","Internal","pipenet","object","."]
code: def _param_names(self) -> Tuple[str, ...]:
      return ("regressor", "target", "c", "side")
  
imports: from collections import Counter
  from typing import Any, Callable, Dict, Optional, Tuple
  import pandas
  from .._detector_base import _TrainableMultivariateDetector
  from ..aggregator import AndAggregator
  from ..detector import InterQuartileRangeAD, ThresholdAD
  from ..pipe import Pipeline, Pipenet
  from ..transformer import CustomizedTransformer1D, PcaReconstructionError, RegressionResidual
label_desc: Use image node_id 2 for calling the RegressionAD obj's underlying member method code with example usage: obj._param_names() and returns: str,  str,  str,  str