ppforest2 v0.1.0
Projection Pursuit Decision Trees and Random Forests
Loading...
Searching...
No Matches
Metrics.hpp
Go to the documentation of this file.
1
10#pragma once
11
13#include "utils/Types.hpp"
14
15#include <optional>
16#include <variant>
17
18
19namespace ppforest2::stats {
26 using Maybe = std::optional<ClassificationMetrics>;
27
29
31
33 : confusion_matrix(std::move(cm)) {}
34
36 : confusion_matrix(predictions, actual) {}
37
38 double error_rate() const { return static_cast<double>(confusion_matrix.error()); }
39 };
40
53 using Maybe = std::optional<RegressionMetrics>;
54
55 double mse = 0.0;
56 double mae = 0.0;
57 double r_squared = 0.0;
58
59 RegressionMetrics() = default;
60
66 };
67
68 // ---------------------------------------------------------------------------
69 // Classification metrics
70 // ---------------------------------------------------------------------------
71
76 float accuracy(types::OutcomeVector const& predictions, types::GroupIdVector const& actual);
77
82 double error_rate(types::OutcomeVector const& predictions, types::GroupIdVector const& actual);
83
90 inline double error_rate(types::OutcomeVector const& predictions, types::OutcomeVector const& actual) {
91 types::GroupIdVector const actual_int = actual.cast<types::GroupId>();
92 return error_rate(predictions, actual_int);
93 }
94
95 // ---------------------------------------------------------------------------
96 // Regression metrics
97 // ---------------------------------------------------------------------------
98
100 double mse(types::OutcomeVector const& predictions, types::OutcomeVector const& actual);
101
103 double mae(types::OutcomeVector const& predictions, types::OutcomeVector const& actual);
104
106 double r_squared(types::OutcomeVector const& predictions, types::OutcomeVector const& actual);
107
116 using Metrics = std::variant<ClassificationMetrics, RegressionMetrics>;
117
126}
Confusion matrix for classification model evaluation.
Statistical infrastructure for training and evaluation.
Definition ConfusionMatrix.hpp:11
double r_squared(types::OutcomeVector const &predictions, types::OutcomeVector const &actual)
Coefficient of determination (R²). Returns 0 when total variance is 0.
double mae(types::OutcomeVector const &predictions, types::OutcomeVector const &actual)
Mean absolute error.
std::variant< ClassificationMetrics, RegressionMetrics > Metrics
Mode-polymorphic metrics block.
Definition Metrics.hpp:116
float accuracy(types::OutcomeVector const &predictions, types::GroupIdVector const &actual)
Fraction of predictions matching the ground-truth class label.
Metrics metrics_from_outcomes(types::OutcomeVector const &y_pred, types::OutcomeVector const &y, types::Mode mode)
Build a mode-appropriate Metrics variant from in-memory tensors.
double error_rate(types::OutcomeVector const &predictions, types::GroupIdVector const &actual)
Misclassification rate — 1 - accuracy.
double mse(types::OutcomeVector const &predictions, types::OutcomeVector const &actual)
Mean squared error.
Eigen::Matrix< Outcome, Eigen::Dynamic, 1 > OutcomeVector
Dynamic-size column vector of predictions.
Definition Types.hpp:42
Eigen::Matrix< GroupId, Eigen::Dynamic, 1 > GroupIdVector
Dynamic-size column vector of internal group labels.
Definition Types.hpp:39
int GroupId
Scalar type for internal group labels (integer). Used as map keys, set elements, and partition indice...
Definition Types.hpp:27
Mode
Training mode.
Definition Types.hpp:58
ClassificationMetrics(ConfusionMatrix cm)
Definition Metrics.hpp:32
double error_rate() const
Definition Metrics.hpp:38
std::optional< ClassificationMetrics > Maybe
Definition Metrics.hpp:26
ConfusionMatrix confusion_matrix
Definition Metrics.hpp:28
ClassificationMetrics(types::GroupIdVector const &predictions, types::GroupIdVector const &actual)
Definition Metrics.hpp:35
A confusion matrix comparing predicted vs actual group labels.
Definition ConfusionMatrix.hpp:38
double mse
Mean squared error.
Definition Metrics.hpp:55
double mae
Mean absolute error.
Definition Metrics.hpp:56
RegressionMetrics(types::OutcomeVector const &predictions, types::OutcomeVector const &actual)
Compute metrics from predictions and actual values.
std::optional< RegressionMetrics > Maybe
Definition Metrics.hpp:53
double r_squared
Coefficient of determination (R²).
Definition Metrics.hpp:57