class_docstr: Learning Node for regression tasks that always use the average target
      value as response.
  
  Parameters
  ----------
  stats
      In regression tasks the node keeps an instance of `river.stats.Var` to estimate
      the target's statistics.
  depth
      The depth of the node.
  splitter
      The numeric attribute observer algorithm used to monitor target statistics
      and perform split attempts.
  kwargs
      Other parameters passed to the learning node.
class_docstr_tok: ["Learning","Node","for","regression","tasks","that","always","use","the","average","target","value","as","response",".","Parameters","--","--","--","--","--","stats","In","regression","tasks","the","node","keeps","an","instance","of","`","river.stats.Var","`","to","estimate","the","target","'s","statistics",".","depth","The","depth","of","the","node",".","splitter","The","numeric","attribute","observer","algorithm","used","to","monitor","target","statistics","and","perform","split","attempts",".","kwargs","Other","parameters","passed","to","the","learning","node","."]
docstr: Trigger Attribute Observers' memory management routines.
  
  Currently, only `EBSTSplitter` and `TEBSTSplitter` have support to this feature.
  
  Parameters
  ----------
  criterion
      Split criterion
  last_check_ratio
      The ratio between the second best candidate's merit and the merit of the best
      split candidate.
  last_check_vr
      The best candidate's split merit.
  last_check_e
      Hoeffding bound value calculated in the last split attempt.
docstr_tok: ["Trigger","Attribute","Observers","'","memory","management","routines",".","Currently",",","only","`","EBSTSplitter","`","and","`","TEBSTSplitter","`","have","support","to","this","feature",".","Parameters","--","--","--","--","--","criterion","Split","criterion","last_check_ratio","The","ratio","between","the","second","best","candidate","'s","merit","and","the","merit","of","the","best","split","candidate",".","last_check_vr","The","best","candidate","'s","split","merit",".","last_check_e","Hoeffding","bound","value","calculated","in","the","last","split","attempt","."]
code: def manage_memory(
      self, criterion, last_check_ratio, last_check_vr, last_check_e
  ):
      """Trigger Attribute Observers' memory management routines.
  
      Currently, only `EBSTSplitter` and `TEBSTSplitter` have support to this feature.
  
      Parameters
      ----------
      criterion
          Split criterion
      last_check_ratio
          The ratio between the second best candidate's merit and the merit of the best
          split candidate.
      last_check_vr
          The best candidate's split merit.
      last_check_e
          Hoeffding bound value calculated in the last split attempt.
      """
      for splitter in self.splitters.values():
          if isinstance(splitter, EBSTSplitter):
              splitter.remove_bad_splits(
                  criterion=criterion,
                  last_check_ratio=last_check_ratio,
                  last_check_vr=last_check_vr,
                  last_check_e=last_check_e,
                  pre_split_dist=self.stats,
              )
  
imports: from __future__ import annotations
  import inspect
  from river.stats import Var
  from ..splitter import EBSTSplitter
  from ..splitter.nominal_splitter_reg import NominalSplitterReg
  from .leaf import HTLeaf
label_desc: Use image node_id 3 for calling the LeafMean obj's underlying member method code with example usage: obj.manage_memory(criterion, last_check_ratio, last_check_vr, last_check_e) without return types