ppforest2 v0.1.0
Projection Pursuit Decision Trees and Random Forests
Loading...
Searching...
No Matches
PPPDAStrategy.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "utils/Types.hpp"
6#include "models/Strategy.hpp"
7
8namespace ppforest2::pp {
16 struct PPPDAStrategy : public PPStrategy {
17 explicit PPPDAStrategy(float lambda);
18
19 void to_json(nlohmann::json& j) const override;
20 std::string display_name() const override { return lambda == 0 ? "LDA" : "PDA"; }
21
23 stats::GroupPartition const& group_spec,
24 Projector const& projector) const override;
25
26 PPResult optimize(types::FeatureMatrix const& x, stats::GroupPartition const& group_spec) const override;
27
28 static PPStrategy::Ptr from_json(nlohmann::json const& j);
29
31
32 private:
34 float const lambda;
35 };
36
38 PPStrategy::Ptr pda(float lambda);
39}
#define PPFOREST2_REGISTER_STRATEGY(StrategyBase, name)
Auto-registration macro for strategy factories.
Definition Strategy.hpp:100
Contiguous-block representation of grouped observations.
Definition GroupPartition.hpp:42
Projection pursuit strategies.
Definition PPPDAStrategy.hpp:8
types::FeatureVector Projector
Column vector of projection coefficients (one per variable).
Definition Projector.hpp:6
PPStrategy::Ptr pda(float lambda)
Factory function for a PDA projection pursuit strategy.
Eigen::Matrix< Feature, Eigen::Dynamic, Eigen::Dynamic > FeatureMatrix
Dynamic-size matrix of feature values.
Definition Types.hpp:24
float Feature
Scalar type for feature values (float or double).
Definition Types.hpp:17
std::shared_ptr< PPStrategy > Ptr
Definition Strategy.hpp:24
types::Feature index(types::FeatureMatrix const &x, stats::GroupPartition const &group_spec, Projector const &projector) const override
Evaluate the projection pursuit index for a given projector.
PPResult optimize(types::FeatureMatrix const &x, stats::GroupPartition const &group_spec) const override
Find the optimal projection for the data.
static PPStrategy::Ptr from_json(nlohmann::json const &j)
std::string display_name() const override
Human-readable name for display in summaries.
Definition PPPDAStrategy.hpp:20
void to_json(nlohmann::json &j) const override
Serialize this strategy's configuration to JSON.
Result of a projection pursuit optimization step.
Definition PPStrategy.hpp:21
Abstract strategy for projection pursuit optimization.
Definition PPStrategy.hpp:37