eis/eqpalg/.do_not_use/utility-no-use/normalize.cc

45 lines
1.3 KiB
C++

#include <eqpalg/utility/normalize.h>
namespace utility {
int normalize_min_max(std::vector<double>* vec_ptr,
dlib::running_stats<double> rs) {
double base = rs.min();
double top = rs.max();
double diff = top - base;
std::for_each(vec_ptr->begin(), vec_ptr->end(),
[&](double& value) { value = (value - base) / diff; });
return 0;
}
int normalize_z_score(std::vector<double>* vec_ptr,
dlib::running_stats<double> rs) {
double mean = rs.mean();
double stddev = rs.stddev();
std::for_each(vec_ptr->begin(), vec_ptr->end(),
[&](double& value) { value = (value - mean) / stddev; });
return 0;
}
double normalize_min_max(double x, dlib::running_stats<double> rs) {
double base = rs.min();
double top = rs.max();
double diff = top - base;
return (x - base) / diff;
}
double normalize_z_score(double x, dlib::running_stats<double> rs) {
return (x - rs.mean()) / rs.stddev();
}
double denormalize_z_score(double invert_x, dlib::running_stats<double> rs) {
return (invert_x * rs.stddev()) + rs.mean();
}
double denormalize_min_max(double invert_x, dlib::running_stats<double> rs) {
double base = rs.min();
double top = rs.max();
double diff = top - base;
return (invert_x * diff) + base;
}
} // namespace utility