ppforest2 v0.1.0
Projection Pursuit Decision Trees and Random Forests
Loading...
Searching...
No Matches
Model.hpp
Go to the documentation of this file.
1#pragma once
2
4#include "utils/Types.hpp"
5
6#include <memory>
7
8namespace ppforest2 {
9 struct Tree;
10 struct Forest;
11
19 struct Proportions {};
20
21
25 struct Model {
26 using Ptr = std::shared_ptr<Model>;
27
34 struct Visitor {
35 virtual void visit(Tree const& tree) = 0;
36 virtual void visit(Forest const& forest) = 0;
37 };
38
39 virtual ~Model() = default;
40
42 bool degenerate = false;
43
46
48 virtual void accept(Visitor& visitor) const = 0;
49
56 virtual types::Response predict(types::FeatureVector const& data) const = 0;
57
64 virtual types::ResponseVector predict(types::FeatureMatrix const& data) const = 0;
65
77
89 static Ptr train(TrainingSpec const& spec, types::FeatureMatrix const& x, types::ResponseVector const& y);
90 };
91}
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
Definition Benchmark.hpp:22
A projection pursuit random forest.
Definition Forest.hpp:32
Visitor interface for model dispatch.
Definition Model.hpp:34
virtual void visit(Tree const &tree)=0
virtual void visit(Forest const &forest)=0
Abstract base class for predictive models (trees and forests).
Definition Model.hpp:25
virtual types::ResponseVector predict(types::FeatureMatrix const &data) const =0
Predict a matrix of observations.
std::shared_ptr< Model > Ptr
Definition Model.hpp:26
static Ptr train(TrainingSpec const &spec, types::FeatureMatrix const &x, types::ResponseVector const &y)
Train a model from a training specification.
virtual types::Response predict(types::FeatureVector const &data) const =0
Predict a single observation.
bool degenerate
Whether the model contains degenerate nodes/splits.
Definition Model.hpp:42
TrainingSpec::Ptr training_spec
Training specification used to build this model.
Definition Model.hpp:45
virtual void accept(Visitor &visitor) const =0
Accept a model visitor (double dispatch).
virtual types::FeatureMatrix predict(types::FeatureMatrix const &data, Proportions) const =0
Predict proportions for a matrix of observations.
virtual ~Model()=default
Tag type for requesting vote-proportion predictions.
Definition Model.hpp:19
Training configuration for projection pursuit trees and forests.
Definition TrainingSpec.hpp:40
std::shared_ptr< TrainingSpec > Ptr
Definition TrainingSpec.hpp:41
A single projection pursuit decision tree.
Definition Tree.hpp:26