class_docstr: Over-sampling for imbalanced regression using Chebyshev's inequality.
  
  Chebyshev's inequality can be used to define the probability of target observations
  being frequent values (w.r.t. the distribution mean).
  
  Let $Y$ be a random variable with finite expected value $\overline{y}$ and non-zero variance
  $\sigma^2$. For any real number $t > 0$, the Chebyshev's inequality states that, for a wide class of
  unimodal probability distributions: $Pr(|y-\overline{y}| \ge t\sigma) \le \dfrac{1}{t^2}$.
  
  Taking $t=\dfrac{|y-\overline{y}|}{\sigma}$, and assuming $t > 1$, the Chebyshev’s inequality
  for an observation $y$ becomes: $P(|y - \overline{y}|=t) = \dfrac{\sigma^2}{|y-\overline{y}|}$.
  
  Alternatively, one can use $t$ directly to estimate a frequency weight $\kappa = \lceil t\rceil$
  and define an over-sampling strategy for extreme and rare target values[^1]. Each incoming instance is
  used $\kappa$ times to update the underlying regressor. Frequent target values contribute only once
  to the underlying regressor, whereas rares cases are used multiple times for training.
  
  Parameters
  ----------
  regressor
      The regression model that will receive the biased sample.
  
  Examples
  --------
  >>> from river import datasets
  >>> from river import evaluate
  >>> from river import imblearn
  >>> from river import metrics
  >>> from river import preprocessing
  >>> from river import rules
  
  >>> model = (
  ...     preprocessing.StandardScaler() |
  ...     imblearn.ChebyshevOverSampler(
  ...         regressor=rules.AMRules(
  ...             n_min=50, delta=0.01
  ...         )
  ...     )
  ... )
  
  >>> evaluate.progressive_val_score(
  ...     datasets.TrumpApproval(),
  ...     model,
  ...     metrics.MAE(),
  ...     print_every=500
  ... )
  [500] MAE: 1.673902
  [1,000] MAE: 1.743046
  [1,001] MAE: 1.741335
  MAE: 1.741335
  
  References
  ----------
  [^1]: Aminian, Ehsan, Rita P. Ribeiro, and João Gama. "Chebyshev approaches for imbalanced data
  streams regression models." Data Mining and Knowledge Discovery 35.6 (2021): 2389-2466.
class_docstr_tok: ["Over-sampling","for","imbalanced","regression","using","Chebyshev","'s","inequality",".","Chebyshev","'s","inequality","can","be","used","to","define","the","probability","of","target","observations","being","frequent","values","(","w.r.t",".","the","distribution","mean",")",".","Let","$","Y","$","be","a","random","variable","with","finite","expected","value","$","\\overline","{","y","}","$","and","non-zero","variance","$","\\sigma^2","$",".","For","any","real","number","$","t",">","0","$",",","the","Chebyshev","'s","inequality","states","that",",","for","a","wide","class","of","unimodal","probability","distributions",":","$","Pr","(","|y-\\overline","{","y","}","|","\\ge","t\\sigma",")","\\le","\\dfrac","{","1","}","{","t^2","}","$",".","Taking","$","t=\\dfrac","{","|y-\\overline","{","y","}","|","}","{","\\sigma","}","$",",","and","assuming","$","t",">","1","$",",","the","Chebyshev","\u2019","s","inequality","for","an","observation","$","y","$","becomes",":","$","P","(","|y","-","\\overline","{","y","}","|=t",")","=","\\dfrac","{","\\sigma^2","}","{","|y-\\overline","{","y","}","|","}","$",".","Alternatively",",","one","can","use","$","t","$","directly","to","estimate","a","frequency","weight","$","\\kappa","=","\\lceil","t\\rceil","$","and","define","an","over-sampling","strategy","for","extreme","and","rare","target","values","[","^1","]",".","Each","incoming","instance","is","used","$","\\kappa","$","times","to","update","the","underlying","regressor",".","Frequent","target","values","contribute","only","once","to","the","underlying","regressor",",","whereas","rares","cases","are","used","multiple","times","for","training",".","Parameters","--","--","--","--","--","regressor","The","regression","model","that","will","receive","the","biased","sample",".","Examples","--","--","--","--",">",">",">","from","river","import","datasets",">",">",">","from","river","import","evaluate",">",">",">","from","river","import","imblearn",">",">",">","from","river","import","metrics",">",">",">","from","river","import","preprocessing",">",">",">","from","river","import","rules",">",">",">","model","=","(","...","preprocessing.StandardScaler","(",")","|","...","imblearn.ChebyshevOverSampler","(","...","regressor=rules.AMRules","(","...","n_min=50",",","delta=0.01","...",")","...",")","...",")",">",">",">","evaluate.progressive_val_score","(","...","datasets.TrumpApproval","(",")",",","...","model",",","...","metrics.MAE","(",")",",","...","print_every=500","...",")","[","500","]","MAE",":","1.673902","[","1,000","]","MAE",":","1.743046","[","1,001","]","MAE",":","1.741335","MAE",":","1.741335","References","--","--","--","--","--","[","^1","]",":","Aminian",",","Ehsan",",","Rita","P.","Ribeiro",",","and","Jo\u00e3o","Gama",".","``","Chebyshev","approaches","for","imbalanced","data","streams","regression","models",".","''","Data","Mining","and","Knowledge","Discovery","35.6","(","2021",")",":","2389-2466","."]
code: def __init__(self, regressor: base.Regressor):
      self.regressor = regressor
  
      self._var = stats.Var()
  
file_path: river/river/imblearn/chebyshev.py
imports: from __future__ import annotations
  import math
  import random
  from river import base, linear_model, stats
label_desc: Use image node_id 1 to create a new ChebyshevOverSampler object from inherited base classes: base, base with example: obj = ChebyshevOverSampler(regressor)