mlpack  3.4.2
scaling_model.hpp
Go to the documentation of this file.
1 
12 #ifndef MLPACK_CORE_DATA_SCALING_MODEL_HPP
13 #define MLPACK_CORE_DATA_SCALING_MODEL_HPP
14 
15 #include <mlpack/core.hpp>
22 
23 namespace mlpack {
24 namespace data {
25 
30 {
31  public:
33  {
40  };
41 
42  private:
43  size_t scalerType;
44  data::MinMaxScaler* minmaxscale;
45  data::MaxAbsScaler* maxabsscale;
46  data::MeanNormalization* meanscale;
47  data::StandardScaler* standardscale;
48  data::PCAWhitening* pcascale;
49  data::ZCAWhitening* zcascale;
50  int minValue;
51  int maxValue;
52  double epsilon;
53 
54  public:
56  ScalingModel(const int minvalue = 0, const int maxvalue = 1,
57  double epsilonvalue = 0.00005);
58 
60  ScalingModel(const ScalingModel& other);
61 
64 
67 
70 
72  size_t ScalerType() const { return scalerType; }
74  size_t& ScalerType() { return scalerType; }
75 
77  template<typename MatType>
78  void Transform(const MatType& input, MatType& output);
79 
80  // Fit to intialize the scaling parameter.
81  template<typename MatType>
82  void Fit(const MatType& input);
83 
84  // Scale back the dataset to their original values.
85  template<typename MatType>
86  void InverseTransform(const MatType& input, MatType& output);
87 
89  template<typename Archive>
90  void serialize(Archive& ar, const unsigned int /* version */)
91  {
92  if (Archive::is_loading::value)
93  {
94  if (minmaxscale)
95  delete minmaxscale;
96  if (maxabsscale)
97  delete maxabsscale;
98  if (meanscale)
99  delete meanscale;
100  if (standardscale)
101  delete standardscale;
102  if (pcascale)
103  delete pcascale;
104  if (zcascale)
105  delete zcascale;
106 
107  minmaxscale = NULL;
108  maxabsscale = NULL;
109  standardscale = NULL;
110  meanscale = NULL;
111  pcascale = NULL;
112  zcascale = NULL;
113  }
114 
115  ar & BOOST_SERIALIZATION_NVP(scalerType);
116  ar & BOOST_SERIALIZATION_NVP(epsilon);
117  ar & BOOST_SERIALIZATION_NVP(minValue);
118  ar & BOOST_SERIALIZATION_NVP(maxValue);
119  if (scalerType == ScalerTypes::MIN_MAX_SCALER)
120  ar & BOOST_SERIALIZATION_NVP(minmaxscale);
121  else if (scalerType == ScalerTypes::MEAN_NORMALIZATION)
122  ar & BOOST_SERIALIZATION_NVP(meanscale);
123  else if (scalerType == ScalerTypes::MAX_ABS_SCALER)
124  ar & BOOST_SERIALIZATION_NVP(maxabsscale);
125  else if (scalerType == ScalerTypes::STANDARD_SCALER)
126  ar & BOOST_SERIALIZATION_NVP(standardscale);
127  else if (scalerType == ScalerTypes::PCA_WHITENING)
128  ar & BOOST_SERIALIZATION_NVP(pcascale);
129  else if (scalerType == ScalerTypes::ZCA_WHITENING)
130  ar & BOOST_SERIALIZATION_NVP(zcascale);
131  }
132 };
133 
134 } // namespace data
135 } // namespace mlpack
136 
137 // Include implementation.
138 #include "scaling_model_impl.hpp"
139 
140 #endif
mlpack::data::ScalingModel::MIN_MAX_SCALER
@ MIN_MAX_SCALER
Definition: scaling_model.hpp:35
mlpack::data::ScalingModel::MEAN_NORMALIZATION
@ MEAN_NORMALIZATION
Definition: scaling_model.hpp:36
mlpack::data::MinMaxScaler
A simple MinMax Scaler class.
Definition: min_max_scaler.hpp:49
mlpack::data::ScalingModel::operator=
ScalingModel & operator=(const ScalingModel &other)
Copy assignment operator.
mlpack::data::ScalingModel::STANDARD_SCALER
@ STANDARD_SCALER
Definition: scaling_model.hpp:34
mlpack::data::ScalingModel::PCA_WHITENING
@ PCA_WHITENING
Definition: scaling_model.hpp:38
mlpack::data::ScalingModel::Fit
void Fit(const MatType &input)
min_max_scaler.hpp
mlpack::data::ScalingModel::Transform
void Transform(const MatType &input, MatType &output)
Transform to scale features.
mlpack::data::ScalingModel::ScalingModel
ScalingModel(const ScalingModel &other)
Copy constructor.
mlpack::data::ScalingModel::ScalerType
size_t & ScalerType()
Modify the Scaler type.
Definition: scaling_model.hpp:74
mlpack::data::ScalingModel::ScalerTypes
ScalerTypes
Definition: scaling_model.hpp:33
mlpack::data::MeanNormalization
A simple Mean Normalization class.
Definition: mean_normalization.hpp:47
mlpack
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: add_to_cli11.hpp:21
mlpack::data::ScalingModel::ScalerType
size_t ScalerType() const
Get the Scaler type.
Definition: scaling_model.hpp:72
mlpack::data::ZCAWhitening
A simple ZCAWhitening class.
Definition: zca_whitening.hpp:48
mlpack::data::ScalingModel::ScalingModel
ScalingModel(const int minvalue=0, const int maxvalue=1, double epsilonvalue=0.00005)
Create an object.
max_abs_scaler.hpp
mlpack::data::ScalingModel::serialize
void serialize(Archive &ar, const unsigned int)
Serialize the model.
Definition: scaling_model.hpp:90
pca_whitening.hpp
mlpack::data::ScalingModel::~ScalingModel
~ScalingModel()
Clean up memory.
mlpack::data::MaxAbsScaler
A simple MaxAbs Scaler class.
Definition: max_abs_scaler.hpp:47
mlpack::data::ScalingModel::InverseTransform
void InverseTransform(const MatType &input, MatType &output)
mlpack::data::PCAWhitening
A simple PCAWhitening class.
Definition: pca_whitening.hpp:48
zca_whitening.hpp
mlpack::data::ScalingModel::MAX_ABS_SCALER
@ MAX_ABS_SCALER
Definition: scaling_model.hpp:37
standard_scaler.hpp
mlpack::data::ScalingModel
The model to save to disk.
Definition: scaling_model.hpp:30
mlpack::data::StandardScaler
A simple Standard Scaler class.
Definition: standard_scaler.hpp:48
mean_normalization.hpp
core.hpp
Include all of the base components required to write mlpack methods, and the main mlpack Doxygen docu...
mlpack::data::ScalingModel::ZCA_WHITENING
@ ZCA_WHITENING
Definition: scaling_model.hpp:39
mlpack::data::ScalingModel::ScalingModel
ScalingModel(ScalingModel &&other)
Move constructor.