ppforest2 v0.1.0
Projection Pursuit Decision Trees and Random Forests
Loading...
Searching...
No Matches
TrainingSpec.hpp
Go to the documentation of this file.
1#pragma once
2
7
8#include <memory>
9#include <thread>
10#include <nlohmann/json.hpp>
11
12namespace ppforest2 {
40 struct TrainingSpec {
41 using Ptr = std::shared_ptr<TrainingSpec>;
42
49
51 int const size;
53 int const seed;
55 int const threads;
57 int const max_retries;
58
73 int size = 0,
74 int seed = 0,
75 int threads = 0,
76 int max_retries = 3);
77
79 bool is_forest() const { return size > 0; }
80
82 void to_json(nlohmann::json& j) const;
83
85 static Ptr from_json(nlohmann::json const& j);
86
94 template<typename... Args> static Ptr make(Args&&... args) {
95 return std::make_shared<TrainingSpec>(std::forward<Args>(args)...);
96 }
97
106 int resolve_threads() const { return threads > 0 ? threads : std::thread::hardware_concurrency(); }
107 };
108}
Dimensionality reduction strategies for variable selection.
Definition DRNoopStrategy.hpp:7
Projection pursuit strategies.
Definition PPPDAStrategy.hpp:8
Split rule strategies for computing decision thresholds.
Definition SRMeanOfMeansStrategy.hpp:7
Definition Benchmark.hpp:22
std::shared_ptr< PPStrategy > Ptr
Definition Strategy.hpp:24
static Ptr make(Args &&... args)
Create a shared pointer to a TrainingSpec.
Definition TrainingSpec.hpp:94
int resolve_threads() const
Get the number of threads to use for training.
Definition TrainingSpec.hpp:106
dr::DRStrategy::Ptr const dr_strategy
Dimensionality reduction strategy.
Definition TrainingSpec.hpp:46
void to_json(nlohmann::json &j) const
Serialize the training spec to JSON.
bool is_forest() const
Whether this specification describes a forest (size > 0).
Definition TrainingSpec.hpp:79
sr::SRStrategy::Ptr const sr_strategy
Group splitting rule strategy.
Definition TrainingSpec.hpp:48
int const max_retries
Maximum retry attempts for degenerate trees.
Definition TrainingSpec.hpp:57
int const size
Number of trees (0 = single tree).
Definition TrainingSpec.hpp:51
int const seed
RNG seed.
Definition TrainingSpec.hpp:53
TrainingSpec(pp::PPStrategy::Ptr pp, dr::DRStrategy::Ptr dr, sr::SRStrategy::Ptr sr, int size=0, int seed=0, int threads=0, int max_retries=3)
Construct a training specification.
pp::PPStrategy::Ptr const pp_strategy
Projection pursuit optimization strategy.
Definition TrainingSpec.hpp:44
static Ptr from_json(nlohmann::json const &j)
Deserialize a training spec from JSON.
int const threads
Number of threads for parallel forest training.
Definition TrainingSpec.hpp:55
std::shared_ptr< TrainingSpec > Ptr
Definition TrainingSpec.hpp:41