class_docstr: Numeric attribute observer for classification tasks that is based on
  a Binary Search Tree.
  
  This algorithm[^1] is also referred to as exhaustive attribute observer,
  since it ends up storing all the observations between split attempts[^2].
  
  This splitter cannot perform probability density estimations, so it does not work well
  when coupled with tree leaves using naive bayes models.
  
  References
  ----------
  [^1]: Domingos, P. and Hulten, G., 2000, August. Mining high-speed data streams.
  In Proceedings of the sixth ACM SIGKDD international conference on Knowledge discovery
  and data mining (pp. 71-80).
  [^2]: Pfahringer, B., Holmes, G. and Kirkby, R., 2008, May. Handling numeric attributes in
  hoeffding trees. In Pacific-Asia Conference on Knowledge Discovery and Data Mining
  (pp. 296-307). Springer, Berlin, Heidelberg.
class_docstr_tok: ["Numeric","attribute","observer","for","classification","tasks","that","is","based","on","a","Binary","Search","Tree",".","This","algorithm","[","^1","]","is","also","referred","to","as","exhaustive","attribute","observer",",","since","it","ends","up","storing","all","the","observations","between","split","attempts","[","^2","]",".","This","splitter","can","not","perform","probability","density","estimations",",","so","it","does","not","work","well","when","coupled","with","tree","leaves","using","naive","bayes","models",".","References","--","--","--","--","--","[","^1","]",":","Domingos",",","P.","and","Hulten",",","G.",",","2000",",","August",".","Mining","high-speed","data","streams",".","In","Proceedings","of","the","sixth","ACM","SIGKDD","international","conference","on","Knowledge","discovery","and","data","mining","(","pp",".","71-80",")",".","[","^2","]",":","Pfahringer",",","B.",",","Holmes",",","G.","and","Kirkby",",","R.",",","2008",",","May",".","Handling","numeric","attributes","in","hoeffding","trees",".","In","Pacific-Asia","Conference","on","Knowledge","Discovery","and","Data","Mining","(","pp",".","296-307",")",".","Springer",",","Berlin",",","Heidelberg","."]
docstr: The underlying data structure used to monitor the input does not allow probability
  density estimations. Hence, it always returns zero for any given input.
docstr_tok: ["The","underlying","data","structure","used","to","monitor","the","input","does","not","allow","probability","density","estimations",".","Hence",",","it","always","returns","zero","for","any","given","input","."]
code: def cond_proba(self, att_val, target_val):
      """The underlying data structure used to monitor the input does not allow probability
      density estimations. Hence, it always returns zero for any given input.
      """
      return 0.0
  
file_path: river/river/tree/splitter/exhaustive_splitter.py
imports: from __future__ import annotations
  from collections import Counter, defaultdict
  from ..utils import BranchFactory
  from .base import Splitter
label_desc: Use image node_id 3 for calling the ExhaustiveSplitter obj's underlying member method code with example usage: obj.cond_proba(att_val, target_val) and returns: int