class_docstr: Numeric attribute observer for classification tasks that is based on
  Gaussian estimators.
  
  The distribution of each class is approximated using a Gaussian distribution. Hence,
  the probability density function can be easily calculated.
  
  
  Parameters
  ----------
  n_splits
      The number of partitions to consider when querying for split candidates.
class_docstr_tok: ["Numeric","attribute","observer","for","classification","tasks","that","is","based","on","Gaussian","estimators",".","The","distribution","of","each","class","is","approximated","using","a","Gaussian","distribution",".","Hence",",","the","probability","density","function","can","be","easily","calculated",".","Parameters","--","--","--","--","--","n_splits","The","number","of","partitions","to","consider","when","querying","for","split","candidates","."]
code: def _class_dists_from_binary_split(self, split_value):
      lhs_dist = {}
      rhs_dist = {}
      for k, estimator in self._att_dist_per_class.items():
          if split_value < self._min_per_class[k]:
              rhs_dist[k] = estimator.n_samples
          elif split_value >= self._max_per_class[k]:
              lhs_dist[k] = estimator.n_samples
          else:
              lhs_dist[k] = (
                  estimator.cdf(split_value) * estimator.n_samples
              )
              rhs_dist[k] = estimator.n_samples - lhs_dist[k]
      return [lhs_dist, rhs_dist]
  
file_path: river/river/tree/splitter/gaussian_splitter.py
imports: from __future__ import annotations
  import math
  from river.base.typing import ClfTarget
  from river.proba import Gaussian
  from ..utils import BranchFactory
  from .base import Splitter
label_desc: Use image node_id 6 for calling the GaussianSplitter obj's underlying member method code with example usage: obj._class_dists_from_binary_split(split_value) and returns: list