199 std::vector<std::pair<types::Feature, types::Feature>>
vertices;
236 std::vector<std::pair<int, types::Feature>>
const& fixed_vars
252 HalfSpace const& hs,
int var_i,
int var_j, std::vector<std::pair<int, types::Feature>>
const& fixed_vars
314 std::vector<HalfSpace>
const& constraints,
328 using Polygon = std::vector<std::pair<types::Feature, types::Feature>>;
394 std::vector<std::pair<int, types::Feature>>
const&
fixed_vars,
Internal split node in a projection pursuit tree.
Definition TreeBranch.hpp:15
Leaf node in a projection pursuit tree.
Definition TreeLeaf.hpp:12
Visitor interface for tree node dispatch.
Definition TreeNode.hpp:31
Abstract base class for nodes in a projection pursuit tree.
Definition TreeNode.hpp:19
Visitor that collects and clips decision boundary line segments.
Definition Visualization.hpp:437
std::vector< BoundarySegment > segments
Output: clipped boundary segments.
Definition Visualization.hpp:440
void visit(TreeBranch const &node) override
SpatialVisitor(int var_i, int var_j, std::vector< std::pair< int, types::Feature > > const &fixed_vars, types::Feature x_min, types::Feature x_max, types::Feature y_min, types::Feature y_max)
std::vector< NodeData > nodes
Collected node data (pre-order).
Definition Visualization.hpp:123
void visit(TreeLeaf const &node) override
types::FeatureMatrix const & x
Full observation matrix (n × p).
Definition Visualization.hpp:119
std::vector< int > indices
Indices of observations reaching the current node.
Definition Visualization.hpp:121
void visit(TreeBranch const &node) override
types::OutcomeVector const & y
Full response vector (n).
Definition Visualization.hpp:120
int depth
Current depth in the traversal.
Definition Visualization.hpp:122
NodeDataVisitor(types::FeatureMatrix const &x, types::OutcomeVector const &y)
Visitor that collects convex decision region polygons.
Definition Visualization.hpp:469
void visit(TreeLeaf const &node) override
std::vector< RegionPolygon > regions
Output: one polygon per reachable leaf.
Definition Visualization.hpp:472
SpatialVisitor(int var_i, int var_j, std::vector< std::pair< int, types::Feature > > const &fixed_vars, types::Feature x_min, types::Feature x_max, types::Feature y_min, types::Feature y_max)
types::Feature y_min
Definition Visualization.hpp:387
types::Feature x_max
Definition Visualization.hpp:387
std::vector< HalfSpace > constraints
Accumulated ancestor half-space constraints.
Definition Visualization.hpp:389
types::Feature x_min
Definition Visualization.hpp:387
int var_i
Definition Visualization.hpp:385
int var_j
Indices of the two displayed feature variables.
Definition Visualization.hpp:385
types::Feature y_max
Visible bounding box.
Definition Visualization.hpp:387
void visit(TreeBranch const &node) override
Push constraint, recurse into children, pop.
std::vector< std::pair< int, types::Feature > > fixed_vars
Fixed (index, value) pairs.
Definition Visualization.hpp:386
void visit(TreeLeaf const &node) override
No-op default; override in subclasses that need leaf work.
SpatialVisitor(int var_i, int var_j, std::vector< std::pair< int, types::Feature > > const &fixed_vars, types::Feature x_min, types::Feature x_max, types::Feature y_min, types::Feature y_max)
int depth
Definition Visualization.hpp:388
Definition Cutpoint.hpp:17
Eigen::Matrix< Feature, Eigen::Dynamic, Eigen::Dynamic > FeatureMatrix
Dynamic-size matrix of feature values.
Definition Types.hpp:33
Eigen::Matrix< Outcome, Eigen::Dynamic, 1 > OutcomeVector
Dynamic-size column vector of predictions.
Definition Types.hpp:42
Eigen::Matrix< Feature, Eigen::Dynamic, 1 > FeatureVector
Dynamic-size column vector of feature values.
Definition Types.hpp:36
Feature Outcome
Scalar type for predictions (float for both classification and regression).
Definition Types.hpp:30
float Feature
Scalar type for feature values.
Definition Types.hpp:24
Definition Visualization.hpp:64
bool clip_param_to_range(types::Feature origin, types::Feature direction, types::Feature range_min, types::Feature range_max, types::Feature &u_min, types::Feature &u_max)
Clip a parametric interval [u_min, u_max] to a 1D range.
HalfSpace project_halfspace_2d(HalfSpace const &hs, int var_i, int var_j, std::vector< std::pair< int, types::Feature > > const &fixed_vars)
Project a p-dimensional HalfSpace constraint to the 2D display plane.
bool clip_boundary_2d(types::FeatureVector const &a, types::Feature cutpoint, std::vector< HalfSpace > const &constraints, types::Feature x_min, types::Feature x_max, types::Feature y_min, types::Feature y_max, BoundarySegment &segment, int depth)
Clip a 2D decision boundary line to the visible rectangle and all ancestor half-space constraints.
TreeLayout compute_tree_layout(TreeNode const &root, LayoutParams const ¶ms=LayoutParams())
Compute a left-aligned tree layout for rendering.
types::Feature adjust_cutpoint(types::FeatureVector const &full_proj, types::Feature thr, std::vector< std::pair< int, types::Feature > > const &fixed_vars)
Adjust a split cutpoint by subtracting contributions of fixed variables.
std::vector< std::pair< types::Feature, types::Feature > > Polygon
A polygon represented as an ordered list of (x, y) vertex pairs.
Definition Visualization.hpp:328
Polygon clip_polygon_halfspace(Polygon const &polygon, types::FeatureVector const &normal, types::Feature cutpoint, bool is_lower)
Clip a convex polygon against a single half-space.
types::FeatureVector project_2d(types::FeatureVector const &full_proj, int var_i, int var_j)
Extract a 2D sub-projection from a full p-dimensional projector.
A clipped decision boundary line segment in 2D feature space.
Definition Visualization.hpp:175
types::Feature y_end
Definition Visualization.hpp:176
int depth
Definition Visualization.hpp:177
types::Feature y_start
Definition Visualization.hpp:176
types::Feature x_start
Definition Visualization.hpp:176
types::Feature x_end
Definition Visualization.hpp:176
A half-space constraint derived from an ancestor split.
Definition Visualization.hpp:150
HalfSpace(types::FeatureVector projector, types::Feature cutpoint, bool is_lower)
Definition Visualization.hpp:155
types::FeatureVector projector
Definition Visualization.hpp:151
bool is_lower
true = lower child side (projected value < cutpoint).
Definition Visualization.hpp:153
types::Feature cutpoint
Definition Visualization.hpp:152
An edge between two positioned nodes with a cutpoint label.
Definition Visualization.hpp:510
types::Feature to_y
Definition Visualization.hpp:511
types::Feature from_x
Definition Visualization.hpp:511
types::Feature to_x
Definition Visualization.hpp:511
std::string label
e.g. "< 1.50" or "≥ 1.50".
Definition Visualization.hpp:512
types::Feature from_y
Definition Visualization.hpp:511
A positioned tree node in the computed layout.
Definition Visualization.hpp:501
bool is_leaf
Definition Visualization.hpp:503
types::Feature y
Center position of the node.
Definition Visualization.hpp:502
types::Feature x
Definition Visualization.hpp:502
int node_idx
Pre-order index (0-based).
Definition Visualization.hpp:504
Layout parameters for tree structure rendering.
Definition Visualization.hpp:489
types::Feature node_h
Internal node height.
Definition Visualization.hpp:492
types::Feature leaf_w
Leaf node width.
Definition Visualization.hpp:493
types::Feature leaf_h
Leaf node height.
Definition Visualization.hpp:494
types::Feature gap
Horizontal gap between sibling subtrees.
Definition Visualization.hpp:495
types::Feature node_w
Internal node width.
Definition Visualization.hpp:491
types::Feature y_spacing
Vertical distance between depth levels.
Definition Visualization.hpp:490
Per-node data collected by routing observations through the tree.
Definition Visualization.hpp:86
types::FeatureVector projector
Definition Visualization.hpp:89
std::vector< types::Outcome > groups
Definition Visualization.hpp:93
bool is_leaf
Definition Visualization.hpp:87
int depth
Definition Visualization.hpp:88
types::Feature cutpoint
Definition Visualization.hpp:90
std::vector< types::Feature > projected_values
Definition Visualization.hpp:92
types::Outcome value
Definition Visualization.hpp:91
A convex decision region polygon in 2D with its predicted group.
Definition Visualization.hpp:198
std::vector< std::pair< types::Feature, types::Feature > > vertices
Definition Visualization.hpp:199
types::Outcome predicted_group
0-indexed group label from the leaf.
Definition Visualization.hpp:200
Complete tree layout: positioned nodes and labelled edges.
Definition Visualization.hpp:518
std::vector< LayoutNode > nodes
Definition Visualization.hpp:519
std::vector< LayoutEdge > edges
Definition Visualization.hpp:520