13#if !defined(ULTRA_SRC_CALCULATE_METRICS_H)
14#define ULTRA_SRC_CALCULATE_METRICS_H
22namespace ultra::src::metrics
46template<ClassificationPredictor P>
52 const auto ok(std::ranges::count_if(
56 return p.tag(e.input).label ==
label(e);
59 return static_cast<double>(ok) /
static_cast<double>(d.
size());
72template<RegressionPredictor P>
81 for (
const auto &e : d)
82 if (
const auto res(p(e.input));
has_value(res))
88 return n ? sum /
static_cast<double>(n)
89 : std::numeric_limits<double>::infinity();
Definition dataframe.h:76
class_t classes() const noexcept
Definition dataframe.cc:259
std::size_t size() const noexcept
Definition dataframe.cc:242
class_t label(const example &e)
Definition dataframe.cc:87
T label_as(const src::example &e)
Definition dataframe.h:181
double mae(const P &p, const dataframe &d)
Definition metrics.h:73
double accuracy(const P &p, const dataframe &d)
Definition metrics.h:47
bool has_value(const value_t &v) noexcept
Definition value.cc:31