eis/eqpalg/.do_not_use/distribution/data_mapping.h

64 lines
1.4 KiB
C++

#pragma once
/**
* @file data_mapping.h
* @brief 把数据映射到正态分布的类,现在已经弃用
* 常用的函数包括cox-box函数等
* @author Cat (null.null.null@qq.com)
* @version 0.1
* @date 2021-09-10
*
* Copyright: Baosight Co. Ltd.
* DO NOT COPY/USE WITHOUT PERMISSION
*
*/
#include <vector>
#include <mix_cc/math/log.h>
#include <dlib/statistics.h>
namespace distribution {
/**
* @brief 数据映射,把数据映射到正态分布
*/
struct DataMapping {
private:
double lambda_ = 1.1;
double c_ = 0;
double delta_ = 0.01;
bool is_positive_skewed_;
dlib::running_stats<double> rs_;
public:
/**
* @brief Set the running stats object
* @param prev_rs My Param doc
* @return int
*/
int set_running_stats(dlib::running_stats<double> prev_rs);
/**
* @brief Get the lambda object
* @return double
*/
double get_lambda();
/**
* @brief Get the running stats object
* @return dlib::running_stats<double>
*/
dlib::running_stats<double> get_running_stats();
/**
* @brief 反向变换单个数据
* @param input My Param doc
* @return double
*/
double reverse_transform(double input);
/**
* @brief 正向变换数据组
* @param input My Param doc
* @return std::vector<double>
*/
std::vector<double> transform(const std::vector<double>& input);
};
} // namespace distribution