code: def __init__(self, att_val, target_val, w):
      self.att_val = att_val
  
      if isinstance(target_val, dict):
          # Import VectorDict here to prevent circular import of river.utils
          from river.utils import VectorDict
  
          self.estimator = VectorDict(
              default_factory=functools.partial(Var)
          )
          self._update_estimator = self._update_estimator_multivariate
      else:
          self.estimator = Var()
          self._update_estimator = self._update_estimator_univariate
  
      self._update_estimator(self, target_val, w)
  
      self._left = None
      self._right = None
  
file_path: river/river/tree/splitter/ebst_splitter.py
imports: from __future__ import annotations
  import functools
  from river.stats import Var
  from ..utils import BranchFactory
  from .base import Splitter
label_desc: Use image node_id 1 to create a new EBSTNode object  with example: obj = EBSTNode(att_val, target_val, w)