20 using Ptr = std::unique_ptr<TreeCondition>;
40 std::set<types::Response>
groups = {},
59 bool is_leaf()
const override {
return false; }
73 std::set<types::Response>
groups = {},
types::FeatureVector Projector
Column vector of projection coefficients (one per variable).
Definition Projector.hpp:6
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
float Feature
Scalar type for feature values (float or double).
Definition Types.hpp:17
Definition Benchmark.hpp:22
types::Feature Threshold
Scalar threshold type for split decisions.
Definition TreeCondition.hpp:10
TreeNode::Ptr clone() const override
Deep copy of this node and its subtree.
static Ptr make(pp::Projector projector, Threshold threshold, TreeNode::Ptr lower, TreeNode::Ptr upper, std::set< types::Response > groups={}, types::Feature pp_index_value=0)
Factory method that returns a unique_ptr to a new TreeCondition.
bool is_leaf() const override
Whether this node is a leaf (TreeResponse).
Definition TreeCondition.hpp:59
std::unique_ptr< TreeCondition > Ptr
Definition TreeCondition.hpp:20
pp::Projector projector
Projection vector (p). Defines the linear combination of features.
Definition TreeCondition.hpp:23
std::set< types::Response > node_groups() const override
Sorted set of group labels reachable from this node.
Definition TreeCondition.hpp:63
void accept(TreeNode::Visitor &visitor) const override
Accept a tree node visitor (double dispatch).
Threshold threshold
Split threshold on the projected value.
Definition TreeCondition.hpp:25
TreeNode::Ptr upper
Child node for observations with projected value ≥ threshold.
Definition TreeCondition.hpp:29
TreeNode::Ptr lower
Child node for observations with projected value < threshold.
Definition TreeCondition.hpp:27
bool equals(TreeNode const &other) const override
Structural equality comparison (value-based).
types::Feature pp_index_value
Projection pursuit index value achieved at this split.
Definition TreeCondition.hpp:34
TreeCondition(pp::Projector projector, Threshold threshold, TreeNode::Ptr lower, TreeNode::Ptr upper, std::set< types::Response > groups={}, types::Feature pp_index_value=0)
types::Response predict(types::FeatureVector const &data) const override
Route an observation through this split.
std::set< types::Response > groups
Set of group labels reachable from this node.
Definition TreeCondition.hpp:32
int group_count() const override
Number of distinct groups reachable from this node.
Definition TreeCondition.hpp:61
types::Response response() const override
Returns the response of the lower child.
Visitor interface for tree node dispatch.
Definition TreeNode.hpp:28
Abstract base class for nodes in a projection pursuit tree.
Definition TreeNode.hpp:19
std::unique_ptr< TreeNode > Ptr
Definition TreeNode.hpp:20