64 lines
1.4 KiB
C
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
|