class_docstr: Learning Node for multi-target regression tasks that dynamically selects between
  predictors and might behave as a regression tree node or a model tree node, depending
  on which predictor is the best one.
  
  Parameters
  ----------
  stats
      In regression tasks the node keeps a `utils.VectorDict` with instances of
      `stats.Var` to estimate the targets' statistics.
  depth
      The depth of the node.
  splitter
      The numeric attribute observer algorithm used to monitor target statistics
      and perform split attempts.
  leaf_models
      A dictionary composed of target identifiers and their respective predictive models.
  kwargs
      Other parameters passed to the learning node.
code: def learn_one(self, x, y, *, w=1.0, tree=None):
      pred_mean = {
          t: self.stats[t].mean.get() if t in self.stats else 0.0
          for t in tree.targets
      }
      pred_model = super().prediction(x, tree=tree)
  
      for t in tree.targets:  # Update the faded errors
          self._fmse_mean[t] = (
              tree.model_selector_decay * self._fmse_mean[t]
              + (y[t] - pred_mean[t]) ** 2
          )
          self._fmse_model[t] = (
              tree.model_selector_decay * self._fmse_model[t]
              + (y[t] - pred_model[t]) ** 2
          )
  
      super().learn_one(x, y, w=w, tree=tree)
  
imports: from __future__ import annotations
  import collections
  import functools
  import inspect
  from copy import deepcopy
  from river.stats import Var
  from river.utils import VectorDict
  from .htr_nodes import LeafMean
label_desc: Use image node_id 2 for calling the LeafAdaptiveMultiTarget obj's underlying member method code with example usage: obj.learn_one(x, y) without return types