[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
min_max_scaler.cpp
1 #include "min_max_scaler.h"
2 
3 namespace PHiLiP {
4 namespace ProperOrthogonalDecomposition {
5 
6 MatrixXd MinMaxScaler::fit_transform(const MatrixXd &parameters){
7  min.resize(parameters.cols());
8  max.resize(parameters.cols());
9  MatrixXd parameters_scaled(parameters.rows(), parameters.cols());
10  for(int j = 0 ; j < parameters.cols() ; j++){
11  min(j) = parameters.col(j).minCoeff();
12  max(j) = parameters.col(j).maxCoeff();
13  if(max(j) == min(j)){
14  std::cout << "Min and max are equal, causing the MinMaxScaler to divide by zero. Please ensure that min != max." << std::endl;
15  std::abort();
16  }
17  for(int k = 0 ; k < parameters.rows() ; k++){
18  parameters_scaled(k, j) = (parameters(k, j) - min(j)) / (max(j) - min(j));
19  }
20  }
21  return parameters_scaled;
22 }
23 
24 MatrixXd MinMaxScaler::transform(const MatrixXd &parameters){
25  MatrixXd parameters_scaled(parameters.rows(), parameters.cols());
26  for(int j = 0 ; j < parameters.cols() ; j++){
27  for(int k = 0 ; k < parameters.rows() ; k++){
28  parameters_scaled(k, j) = (parameters(k, j) - min(j)) / (max(j) - min(j));
29  }
30  }
31  return parameters_scaled;
32 }
33 
34 MatrixXd MinMaxScaler::inverse_transform(const MatrixXd &parameters_scaled){
35  MatrixXd parameters(parameters_scaled.rows(), parameters_scaled.cols());
36  for(int j = 0 ; j < parameters_scaled.cols() ; j++){
37  for(int k = 0 ; k < parameters_scaled.rows() ; k++){
38  parameters(k, j) = (parameters_scaled(k,j)*(max(j) - min(j))) + min(j);
39  }
40  }
41  return parameters;
42 }
43 
44 }
45 }
46 
47 
Files for the baseline physics.
Definition: ADTypes.hpp:10
MatrixXd fit_transform(const MatrixXd &snapshot_parameters)
Fit and transform data.
MatrixXd inverse_transform(const MatrixXd &snapshot_parameters)
Unscale data.
MatrixXd transform(const MatrixXd &snapshot_parameters)
Transform data to previously fitted dataset.