20 using Ptr = std::unique_ptr<ClassificationForest>;
29 using Groups = std::set<types::GroupId>;
50 invariant(!this->groups.empty(),
"ClassificationForest requires a non-empty groups set");
void invariant(bool condition, char const *message)
Runtime assertion that throws on failure.
types::Outcome predict(FeatureVector const &x) const override
Per-row prediction (mode-specific: majority vote or mean).
FeatureMatrix predict(FeatureMatrix const &x, Proportions, GroupIndices const &indices) const
Vote proportions per row, with an explicit column layout.
void accept(Model::Visitor &visitor) const override
Accept a model visitor (mode-specific dispatch).
Groups groups
Set of group labels this forest predicts over.
Definition ClassificationForest.hpp:43
types::FeatureMatrix FeatureMatrix
Definition ClassificationForest.hpp:23
std::map< types::GroupId, int > GroupIndices
Definition ClassificationForest.hpp:30
types::Outcome Outcome
Definition ClassificationForest.hpp:26
FeatureVector predict(FeatureVector const &x, Proportions) const
Vote proportions for one observation, columns laid out by groups.
std::unique_ptr< ClassificationForest > Ptr
Definition ClassificationForest.hpp:20
stats::RNG RNG
Definition ClassificationForest.hpp:27
std::set< types::GroupId > Groups
Definition ClassificationForest.hpp:29
ClassificationForest(TrainingSpec::Ptr spec, Groups groups)
Definition ClassificationForest.hpp:45
static Ptr train(TrainingSpec const &spec, FeatureMatrix const &x, OutcomeVector const &y)
types::FeatureVector FeatureVector
Definition ClassificationForest.hpp:24
types::OutcomeVector OutcomeVector
Definition ClassificationForest.hpp:25
BaggedTree::Ptr train_tree(FeatureMatrix const &x, OutcomeVector const &y, RNG &rng) const override
Train one bagged tree on a bootstrap resample of x / y.
FeatureVector predict(FeatureVector const &x, Proportions, GroupIndices const &indices) const
Vote proportions for one observation, with an explicit column layout passed as a precomputed {group →...
FeatureMatrix predict(FeatureMatrix const &x, Proportions) const
Vote proportions per row, columns laid out by groups.
stats::GroupPartition GroupPartition
Definition ClassificationForest.hpp:31
Outcome predict(FeatureVector const &x) const override=0
Per-row prediction (mode-specific: majority vote or mean).
Visitor interface for model dispatch.
Definition Model.hpp:51
TrainingSpec::Ptr training_spec
Training specification used to build this model.
Definition Model.hpp:70
Training configuration for projection pursuit trees and forests.
Definition TrainingSpec.hpp:43
std::shared_ptr< TrainingSpec > Ptr
Definition TrainingSpec.hpp:45
Contiguous-block representation of grouped observations.
Definition GroupPartition.hpp:40
pcg32 RNG
Definition Stats.hpp:24
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
Binarization strategies for multiclass-to-binary reduction.
Definition Benchmark.hpp:25
bool is_classification(Model const &model)
Whether model was trained for classification.
Definition Model.hpp:145
std::unique_ptr< Bagged< Tree > > Ptr
Definition Bagged.hpp:33
Tag type for requesting vote-proportion predictions.
Definition Model.hpp:23