class_docstr: Helper class that define basic operations of EFDT's nodes.
  
  It inherits from `LearningNode` and provides extra functionalities, while changing
  the splitting behavior of its parent class. This is an abstract class, since it does
  not implement all the inherited abstract methods from its parent class. BaseEDFTNode
  is designed to work with other learning/split nodes.
  
  Parameters
  ----------
  stats
      Class observations.
  depth
      The depth of the node in the tree.
  splitter
      The numeric attribute observer algorithm used to monitor target statistics
      and perform split attempts.
  kwargs
      Other parameters passed to the node.
class_docstr_tok: ["Helper","class","that","define","basic","operations","of","EFDT","'s","nodes",".","It","inherits","from","`","LearningNode","`","and","provides","extra","functionalities",",","while","changing","the","splitting","behavior","of","its","parent","class",".","This","is","an","abstract","class",",","since","it","does","not","implement","all","the","inherited","abstract","methods","from","its","parent","class",".","BaseEDFTNode","is","designed","to","work","with","other","learning\/split","nodes",".","Parameters","--","--","--","--","--","stats","Class","observations",".","depth","The","depth","of","the","node","in","the","tree",".","splitter","The","numeric","attribute","observer","algorithm","used","to","monitor","target","statistics","and","perform","split","attempts",".","kwargs","Other","parameters","passed","to","the","node","."]
code: def __init__(self, stats, depth, splitter, **kwargs):
      super().__init__(
          stats=stats, depth=depth, splitter=splitter, **kwargs
      )
  
imports: from __future__ import annotations
  import copy
  import numbers
  from river.tree.utils import BranchFactory
  from river.utils.norm import normalize_values_in_dict
  from ..splitter.nominal_splitter_classif import NominalSplitterClassif
  from .branch import DTBranch, NominalBinaryBranch, NominalMultiwayBranch, NumericBinaryBranch, NumericMultiwayBranch
  from .htc_nodes import LeafMajorityClass, LeafNaiveBayes, LeafNaiveBayesAdaptive
  from .leaf import HTLeaf
label_desc: Use image node_id 1 to create a new BaseEFDTLeaf object from inherited base classes: HTLeaf with example: obj = BaseEFDTLeaf(stats, depth, splitter)