ppforest2 v0.1.0
Projection Pursuit Decision Trees and Random Forests
Loading...
Searching...
No Matches
ppforest2::TrainingSpec::Builder Class Reference

Fluent builder for TrainingSpec. More...

#include <TrainingSpec.hpp>

Classes

struct  Config
 Builder state — the configuration being assembled. More...
 

Public Member Functions

 Builder (types::Mode mode)
 
Builderapply_defaults ()
 Fill in any null strategy fields with mode-aware defaults.
 
Builderbinarization (binarize::Binarization::Ptr v)
 
TrainingSpec build ()
 Finalize the builder into a TrainingSpec.
 
Buildercutpoint (cutpoint::Cutpoint::Ptr v)
 
Buildergrouping (grouping::Grouping::Ptr v)
 
Builderleaf (leaf::LeafStrategy::Ptr v)
 
Ptr make ()
 Shorthand for std::make_shared<TrainingSpec>(build()).
 
Buildermax_retries (int v)
 
Builderpp (pp::ProjectionPursuit::Ptr v)
 
Builderseed (int v)
 
Buildersize (int v)
 
Builderstop (stop::StopRule::Ptr v)
 
Builderthreads (int v)
 
Buildervars (vars::VariableSelection::Ptr v)
 

Public Attributes

Config config
 
types::Mode const mode
 

Detailed Description

Fluent builder for TrainingSpec.

mode is required at construction — it's structurally primary (drives the mode-dependent default strategies and gates mode-compatibility checks), not a post-construction tweak, so there's no .mode() setter.

The Builder's mutable state is grouped in the nested Config struct, exposed as the public config member. The fluent setters (.pp(v), .size(5), …) keep their conventional names by writing through config.pp / config.size, so the setter names don't collide with the field names.

Strategy fields in Config start as nullptr and are resolved to mode-aware defaults by apply_defaults() — which build() invokes automatically. Calling apply_defaults() directly is useful when a caller wants to inspect the resolved spec before constructing (e.g. for JSON round-trip tests).

The single source of truth for default selection lives in apply_defaults()CLI and R both pass only the strategies the user supplied and rely on the Builder for the rest, so adding a new mode-aware default means changing exactly one location.

Strategy factory calls are made in TrainingSpec.cpp so the header includes only base-class strategy headers.

Constructor & Destructor Documentation

◆ Builder()

ppforest2::TrainingSpec::Builder::Builder ( types::Mode mode)
inlineexplicit

Member Function Documentation

◆ apply_defaults()

Builder & ppforest2::TrainingSpec::Builder::apply_defaults ( )

Fill in any null strategy fields with mode-aware defaults.

Idempotent — only assigns when a field is currently nullptr, so re-calling after explicit overrides leaves user choices intact.

Dispatches on mode exactly once (via the per-mode apply_mode_defaults overloads in the implementation file), so adding a new mode means adding a new overload — not adding more is_regression branches throughout the function.

Defaults by mode:

Returns *this for fluent chaining.

◆ binarization()

Builder & ppforest2::TrainingSpec::Builder::binarization ( binarize::Binarization::Ptr v)
inline

◆ build()

TrainingSpec ppforest2::TrainingSpec::Builder::build ( )

Finalize the builder into a TrainingSpec.

Calls apply_defaults() first so any unset strategies receive their mode-aware default, then constructs and returns the spec.

◆ cutpoint()

Builder & ppforest2::TrainingSpec::Builder::cutpoint ( cutpoint::Cutpoint::Ptr v)
inline

◆ grouping()

Builder & ppforest2::TrainingSpec::Builder::grouping ( grouping::Grouping::Ptr v)
inline

◆ leaf()

Builder & ppforest2::TrainingSpec::Builder::leaf ( leaf::LeafStrategy::Ptr v)
inline

◆ make()

Ptr ppforest2::TrainingSpec::Builder::make ( )

Shorthand for std::make_shared<TrainingSpec>(build()).

◆ max_retries()

Builder & ppforest2::TrainingSpec::Builder::max_retries ( int v)
inline

◆ pp()

Builder & ppforest2::TrainingSpec::Builder::pp ( pp::ProjectionPursuit::Ptr v)
inline

◆ seed()

Builder & ppforest2::TrainingSpec::Builder::seed ( int v)
inline

◆ size()

Builder & ppforest2::TrainingSpec::Builder::size ( int v)
inline

◆ stop()

Builder & ppforest2::TrainingSpec::Builder::stop ( stop::StopRule::Ptr v)
inline

◆ threads()

Builder & ppforest2::TrainingSpec::Builder::threads ( int v)
inline

◆ vars()

Builder & ppforest2::TrainingSpec::Builder::vars ( vars::VariableSelection::Ptr v)
inline

Member Data Documentation

◆ config

Config ppforest2::TrainingSpec::Builder::config

◆ mode

types::Mode const ppforest2::TrainingSpec::Builder::mode

The documentation for this class was generated from the following file: