docs: def tree_predict(x, root, proba=False, regression=False):
      """Predicts a probabilities/value/label for the sample x.
      """
  
      if isinstance(root, Leaf):
          if proba:
              return root.probabilities
          elif regression:
              return root.mean
          else:
              return root.most_frequent
  
      if root.question.match(x):
          return tree_predict(x, root.true_branch, proba=proba, regression=regression)
      else:
          return tree_predict(x, root.false_branch, proba=proba, regression=regression)