193 std::vector<std::pair<types::Feature, types::Feature>>
vertices;
229 std::vector<std::pair<int, types::Feature>>
const& fixed_vars);
287 std::vector<HalfSpace>
const& constraints,
300 using Polygon = std::vector<std::pair<types::Feature, types::Feature>>;
371 std::vector<std::pair<int, types::Feature>>
const&
fixed_vars,
414 std::vector<std::pair<int, types::Feature>>
const&
fixed_vars,
Eigen::Matrix< Feature, Eigen::Dynamic, Eigen::Dynamic > FeatureMatrix
Dynamic-size matrix of feature values.
Definition Types.hpp:24
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
Eigen::Matrix< Response, Eigen::Dynamic, 1 > ResponseVector
Dynamic-size column vector of group labels.
Definition Types.hpp:29
float Feature
Scalar type for feature values (float or double).
Definition Types.hpp:17
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.
bool clip_boundary_2d(types::FeatureVector const &a, types::Feature threshold, 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_threshold(types::FeatureVector const &full_proj, types::Feature thr, std::vector< std::pair< int, types::Feature > > const &fixed_vars)
Adjust a split threshold 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:300
Polygon clip_polygon_halfspace(Polygon const &polygon, types::FeatureVector const &normal, types::Feature threshold, 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.
Internal split node in a projection pursuit tree.
Definition TreeCondition.hpp:19
Visitor interface for tree node dispatch.
Definition TreeNode.hpp:28
Abstract base class for nodes in a projection pursuit tree.
Definition TreeNode.hpp:19
Leaf node in a projection pursuit tree.
Definition TreeResponse.hpp:12
A clipped decision boundary line segment in 2D feature space.
Definition Visualization.hpp:169
types::Feature y_end
Definition Visualization.hpp:170
int depth
Definition Visualization.hpp:171
types::Feature y_start
Definition Visualization.hpp:170
types::Feature x_start
Definition Visualization.hpp:170
types::Feature x_end
Definition Visualization.hpp:170
std::vector< BoundarySegment > segments
Output: clipped boundary segments.
Definition Visualization.hpp:367
std::vector< HalfSpace > constraints
Accumulated ancestor constraints.
Definition Visualization.hpp:366
std::vector< std::pair< int, types::Feature > > fixed_vars
Fixed (index, value) pairs.
Definition Visualization.hpp:363
BoundaryVisitor(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 var_i
Definition Visualization.hpp:362
int var_j
Indices of the two displayed feature variables.
Definition Visualization.hpp:362
types::Feature y_min
Definition Visualization.hpp:364
void visit(TreeCondition const &node) override
types::Feature y_max
Visible bounding box.
Definition Visualization.hpp:364
types::Feature x_max
Definition Visualization.hpp:364
types::Feature x_min
Definition Visualization.hpp:364
int depth
Definition Visualization.hpp:365
void visit(TreeResponse const &node) override
A half-space constraint derived from an ancestor split.
Definition Visualization.hpp:149
types::FeatureVector projector
Definition Visualization.hpp:150
types::Feature threshold
Definition Visualization.hpp:151
bool is_lower
true = lower child side (projected value < threshold).
Definition Visualization.hpp:152
An edge between two positioned nodes with a threshold label.
Definition Visualization.hpp:456
types::Feature to_y
Definition Visualization.hpp:457
types::Feature from_x
Definition Visualization.hpp:457
types::Feature to_x
Definition Visualization.hpp:457
std::string label
e.g. "< 1.50" or "≥ 1.50".
Definition Visualization.hpp:458
types::Feature from_y
Definition Visualization.hpp:457
A positioned tree node in the computed layout.
Definition Visualization.hpp:447
bool is_leaf
Definition Visualization.hpp:449
types::Feature y
Center position of the node.
Definition Visualization.hpp:448
types::Feature x
Definition Visualization.hpp:448
int node_idx
Pre-order index (0-based).
Definition Visualization.hpp:450
Layout parameters for tree structure rendering.
Definition Visualization.hpp:435
types::Feature node_h
Internal node height.
Definition Visualization.hpp:438
types::Feature leaf_w
Leaf node width.
Definition Visualization.hpp:439
types::Feature leaf_h
Leaf node height.
Definition Visualization.hpp:440
types::Feature gap
Horizontal gap between sibling subtrees.
Definition Visualization.hpp:441
types::Feature node_w
Internal node width.
Definition Visualization.hpp:437
types::Feature y_spacing
Vertical distance between depth levels.
Definition Visualization.hpp:436
std::vector< NodeData > nodes
Collected node data (pre-order).
Definition Visualization.hpp:122
void visit(TreeResponse const &node) override
types::FeatureMatrix const & x
Full observation matrix (n × p).
Definition Visualization.hpp:118
std::vector< int > indices
Indices of observations reaching the current node.
Definition Visualization.hpp:120
types::ResponseVector const & y
Full response vector (n).
Definition Visualization.hpp:119
void visit(TreeCondition const &node) override
NodeDataVisitor(types::FeatureMatrix const &x, types::ResponseVector const &y)
int depth
Current depth in the traversal.
Definition Visualization.hpp:121
Per-node data collected by routing observations through the tree.
Definition Visualization.hpp:86
types::Feature threshold
Definition Visualization.hpp:90
std::vector< types::Response > groups
Definition Visualization.hpp:93
types::FeatureVector projector
Definition Visualization.hpp:89
bool is_leaf
Definition Visualization.hpp:87
int depth
Definition Visualization.hpp:88
std::vector< types::Feature > projected_values
Definition Visualization.hpp:92
types::Response value
Definition Visualization.hpp:91
A convex decision region polygon in 2D with its predicted group.
Definition Visualization.hpp:192
std::vector< std::pair< types::Feature, types::Feature > > vertices
Definition Visualization.hpp:193
types::Response predicted_group
0-indexed group label from the leaf.
Definition Visualization.hpp:194
void visit(TreeCondition const &node) override
int var_i
Definition Visualization.hpp:406
types::Feature x_min
Definition Visualization.hpp:408
std::vector< HalfSpace > constraints
Accumulated ancestor constraints.
Definition Visualization.hpp:409
RegionVisitor(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_max
Bounding box for the initial rectangle.
Definition Visualization.hpp:408
int var_j
Indices of the two displayed feature variables.
Definition Visualization.hpp:406
std::vector< std::pair< int, types::Feature > > fixed_vars
Fixed (index, value) pairs.
Definition Visualization.hpp:407
types::Feature y_min
Definition Visualization.hpp:408
std::vector< RegionPolygon > regions
Output: one polygon per reachable leaf.
Definition Visualization.hpp:410
void visit(TreeResponse const &node) override
types::Feature x_max
Definition Visualization.hpp:408
Complete tree layout: positioned nodes and labelled edges.
Definition Visualization.hpp:464
std::vector< LayoutNode > nodes
Definition Visualization.hpp:465
std::vector< LayoutEdge > edges
Definition Visualization.hpp:466