20 using Ptr = std::unique_ptr<TreeNode>;
Eigen::Matrix< Feature, Eigen::Dynamic, 1 > FeatureVector
Dynamic-size column vector of feature values.
Definition Types.hpp:26
int Response
Scalar type for group labels (integer).
Definition Types.hpp:21
Definition Benchmark.hpp:22
Internal split node in a projection pursuit tree.
Definition TreeCondition.hpp:19
Visitor interface for tree node dispatch.
Definition TreeNode.hpp:28
virtual void visit(TreeResponse const &response)=0
virtual void visit(TreeCondition const &condition)=0
Abstract base class for nodes in a projection pursuit tree.
Definition TreeNode.hpp:19
virtual bool is_leaf() const =0
Whether this node is a leaf (TreeResponse).
virtual std::set< types::Response > node_groups() const =0
Sorted set of group labels reachable from this node.
bool operator!=(TreeNode const &other) const
virtual types::Response response() const =0
The group label at this node (leaf value or majority group).
bool degenerate
Whether this node (or any descendant) had a degenerate split.
Definition TreeNode.hpp:34
virtual void accept(Visitor &visitor) const =0
Accept a tree node visitor (double dispatch).
virtual bool equals(TreeNode const &other) const =0
Structural equality comparison (value-based).
virtual types::Response predict(types::FeatureVector const &data) const =0
Predict the group label for a single observation.
std::unique_ptr< TreeNode > Ptr
Definition TreeNode.hpp:20
virtual int group_count() const =0
Number of distinct groups reachable from this node.
virtual ~TreeNode()=default
bool operator==(TreeNode const &other) const
virtual Ptr clone() const =0
Deep copy of this node and its subtree.
Leaf node in a projection pursuit tree.
Definition TreeResponse.hpp:12