class_docstr: Base class for the tree splitters.
  
  Each Attribute Observer (AO) or Splitter monitors one input feature and finds the best
  split point for this attribute. AOs can also perform other tasks related to the monitored
  feature, such as estimating its probability density function (classification case).
  
  This class should not be instantiated, as none of its methods are implemented.
class_docstr_tok: ["Base","class","for","the","tree","splitters",".","Each","Attribute","Observer","(","AO",")","or","Splitter","monitors","one","input","feature","and","finds","the","best","split","point","for","this","attribute",".","AOs","can","also","perform","other","tasks","related","to","the","monitored","feature",",","such","as","estimating","its","probability","density","function","(","classification","case",")",".","This","class","should","not","be","instantiated",",","as","none","of","its","methods","are","implemented","."]
docstr: Get the best split suggestion given a criterion and the target's statistics.
  
  Parameters
  ----------
  criterion
      The split criterion to use.
  pre_split_dist
      The target statistics before the split.
  att_idx
      The attribute index.
  binary_only
      True if only binary splits are allowed.
  
  Returns
  -------
      Suggestion of the best attribute split.
docstr_tok: ["Get","the","best","split","suggestion","given","a","criterion","and","the","target","'s","statistics",".","Parameters","--","--","--","--","--","criterion","The","split","criterion","to","use",".","pre_split_dist","The","target","statistics","before","the","split",".","att_idx","The","attribute","index",".","binary_only","True","if","only","binary","splits","are","allowed",".","Returns","--","--","--","-","Suggestion","of","the","best","attribute","split","."]
code: def best_evaluated_split_suggestion(
      self,
      criterion: SplitCriterion,
      pre_split_dist: list | dict,
      att_idx: base.typing.FeatureName,
      binary_only: bool,
  ) -> BranchFactory:
      """Get the best split suggestion given a criterion and the target's statistics.
  
      Parameters
      ----------
      criterion
          The split criterion to use.
      pre_split_dist
          The target statistics before the split.
      att_idx
          The attribute index.
      binary_only
          True if only binary splits are allowed.
  
      Returns
      -------
          Suggestion of the best attribute split.
      """
  
file_path: river/river/tree/splitter/base.py
imports: from __future__ import annotations
  import abc
  import typing
  from river import base
  from ..split_criterion.base import SplitCriterion
  from ..utils import BranchFactory, GradHess, GradHessStats
label_desc: Use image node_id 3 for calling the Splitter obj's underlying member method code with example usage: obj.best_evaluated_split_suggestion(criterion, pre_split_dist, att_idx, binary_only) without return types