ppforest2 v0.1.0
Projection Pursuit Decision Trees and Random Forests
Loading...
Searching...
No Matches
Grouping.hpp
Go to the documentation of this file.
1#pragma once
2
5#include "stats/Stats.hpp"
6#include "utils/Types.hpp"
7
20namespace ppforest2 {
21 struct NodeContext;
22}
23
24namespace ppforest2::grouping {
31 class Grouping : public Strategy<Grouping> {
32 public:
47
52
60 void split(NodeContext& ctx, stats::RNG& rng) const;
61
62 protected:
65
67 virtual void compute(NodeContext& ctx, stats::RNG& rng) const = 0;
68 };
69
72
75}
CRTP base class providing self-registration for strategy types.
Definition Strategy.hpp:93
std::shared_ptr< Grouping > Ptr
Definition Strategy.hpp:95
Abstract strategy for managing group partitions.
Definition Grouping.hpp:31
void split(NodeContext &ctx, stats::RNG &rng) const
Split observations into two child partitions; writes ctx.lower_y_part / upper_y_part.
stats::GroupPartition init(types::GroupIdVector const &y) const
Convenience overload for callers with a GroupIdVector.
Definition Grouping.hpp:49
virtual void compute(NodeContext &ctx, stats::RNG &rng) const =0
Subclass implementation of per-node splitting.
virtual stats::GroupPartition compute_init(types::OutcomeVector const &y) const =0
Subclass implementation of initial partition construction.
stats::GroupPartition init(types::OutcomeVector const &y) const
Create the initial GroupPartition from the training response.
Contiguous-block representation of grouped observations.
Definition GroupPartition.hpp:40
Definition ByCutpoint.hpp:6
Grouping::Ptr by_label()
Factory function for label-based grouping.
Grouping::Ptr by_cutpoint()
Factory function for cutpoint-based grouping (regression).
pcg32 RNG
Definition Stats.hpp:24
Eigen::Matrix< Outcome, Eigen::Dynamic, 1 > OutcomeVector
Dynamic-size column vector of predictions.
Definition Types.hpp:42
Eigen::Matrix< GroupId, Eigen::Dynamic, 1 > GroupIdVector
Dynamic-size column vector of internal group labels.
Definition Types.hpp:39
Feature Outcome
Scalar type for predictions (float for both classification and regression).
Definition Types.hpp:30
Binarization strategies for multiclass-to-binary reduction.
Definition Benchmark.hpp:25
Mutable context accumulating intermediate results during node training.
Definition NodeContext.hpp:20