CMP++: Uncertainty Quantification & Bayesian Calibration
Loading...
Searching...
No Matches
cmp::scaler::EllipticScaler Class Reference

Scaler that standardizes features independently using diagonal variance scaling. More...

#include <scaler.h>

Inheritance diagram for cmp::scaler::EllipticScaler:
Collaboration diagram for cmp::scaler::EllipticScaler:

Public Member Functions

 EllipticScaler ()=default
 Default constructor.
 
 EllipticScaler (const Eigen::Ref< const Eigen::VectorXd > &mean, const Eigen::Ref< const Eigen::VectorXd > &std)
 Constructs an EllipticScaler with specified mean and standard deviations.
 
 EllipticScaler (const EllipticScaler &other)=default
 
 EllipticScaler (EllipticScaler &&other)=default
 
 ~EllipticScaler ()=default
 
EllipticScaleroperator= (const EllipticScaler &other)=default
 
EllipticScaleroperator= (EllipticScaler &&other)=default
 
Eigen::VectorXd transform (const Eigen::Ref< const Eigen::VectorXd > &data) const override
 Transforms the input data from physical space to the scaled latent space.
 
Eigen::VectorXd inverseTransform (const Eigen::Ref< const Eigen::VectorXd > &data) const override
 Reconstructs the data from the scaled latent space back to physical space.
 
Eigen::VectorXd getIntercept () const override
 Retrieves the intercept vector \( \mu \) used in the transformation.
 
Eigen::MatrixXd getScale () const override
 Retrieves the scaling matrix \( S \) used in the transformation.
 
void fit (const Eigen::Ref< const Eigen::MatrixXd > &data) override
 Learns the scaling parameters (e.g., mean, variance) from the training data.
 
Eigen::MatrixXd fit_transform (const Eigen::Ref< const Eigen::MatrixXd > &data) override
 Fits the scaling parameters to the data and subsequently transforms the data.
 
void setMean (const Eigen::Ref< const Eigen::VectorXd > &mean)
 Explicitly overrides the mean parameters \( \boldsymbol{\mu} \).
 
void setStd (const Eigen::Ref< const Eigen::VectorXd > &std)
 Explicitly overrides the standard deviation parameters \( \boldsymbol{\sigma} \).
 

Private Attributes

Eigen::VectorXd mean_
 The empirical mean vector \( \boldsymbol{\mu} \) of the training dataset.
 
Eigen::VectorXd std_
 The standard deviation vector \( \boldsymbol{\sigma} \) for each feature.
 

Detailed Description

Scaler that standardizes features independently using diagonal variance scaling.

Mathematical Formulation

Standardizes each feature coordinate \( j \) independently:

\[ y_j = \frac{x_j - \mu_j}{\sigma_j} \]

where \( \mu_j \) is the mean and \( \sigma_j \) is the standard deviation of feature \( j \). The inverse transformation is:

\[ x_j = y_j \sigma_j + \mu_j \]

Constructor & Destructor Documentation

◆ EllipticScaler() [1/4]

cmp::scaler::EllipticScaler::EllipticScaler ( )
default

Default constructor.

◆ EllipticScaler() [2/4]

cmp::scaler::EllipticScaler::EllipticScaler ( const Eigen::Ref< const Eigen::VectorXd > &  mean,
const Eigen::Ref< const Eigen::VectorXd > &  std 
)
inline

Constructs an EllipticScaler with specified mean and standard deviations.

Parameters
meanPre-computed mean vector \( \boldsymbol{\mu} \).
stdPre-computed standard deviation vector \( \boldsymbol{\sigma} \).

◆ EllipticScaler() [3/4]

cmp::scaler::EllipticScaler::EllipticScaler ( const EllipticScaler other)
default

◆ EllipticScaler() [4/4]

cmp::scaler::EllipticScaler::EllipticScaler ( EllipticScaler &&  other)
default

◆ ~EllipticScaler()

cmp::scaler::EllipticScaler::~EllipticScaler ( )
default

Member Function Documentation

◆ fit()

void cmp::scaler::EllipticScaler::fit ( const Eigen::Ref< const Eigen::MatrixXd > &  data)
overridevirtual

Learns the scaling parameters (e.g., mean, variance) from the training data.

Parameters
dataA matrix \( X \in \mathbb{R}^{n \times d} \) of training samples.

Implements cmp::scaler::Scaler.

◆ fit_transform()

Eigen::MatrixXd cmp::scaler::EllipticScaler::fit_transform ( const Eigen::Ref< const Eigen::MatrixXd > &  data)
overridevirtual

Fits the scaling parameters to the data and subsequently transforms the data.

Parameters
dataA matrix \( X \in \mathbb{R}^{n \times d} \) of training samples.
Returns
The transformed dataset matrix \( Y \).

Implements cmp::scaler::Scaler.

◆ getIntercept()

Eigen::VectorXd cmp::scaler::EllipticScaler::getIntercept ( ) const
inlineoverridevirtual

Retrieves the intercept vector \( \mu \) used in the transformation.

Returns
The intercept vector.

Implements cmp::scaler::Scaler.

◆ getScale()

Eigen::MatrixXd cmp::scaler::EllipticScaler::getScale ( ) const
inlineoverridevirtual

Retrieves the scaling matrix \( S \) used in the transformation.

Returns
The scaling matrix.

Implements cmp::scaler::Scaler.

◆ inverseTransform()

Eigen::VectorXd cmp::scaler::EllipticScaler::inverseTransform ( const Eigen::Ref< const Eigen::VectorXd > &  data) const
overridevirtual

Reconstructs the data from the scaled latent space back to physical space.

Parameters
dataA column vector \( y \) in the scaled space.
Returns
The unscaled physical data vector \( x \).

Implements cmp::scaler::Scaler.

◆ operator=() [1/2]

EllipticScaler & cmp::scaler::EllipticScaler::operator= ( const EllipticScaler other)
default

◆ operator=() [2/2]

EllipticScaler & cmp::scaler::EllipticScaler::operator= ( EllipticScaler &&  other)
default

◆ setMean()

void cmp::scaler::EllipticScaler::setMean ( const Eigen::Ref< const Eigen::VectorXd > &  mean)
inline

Explicitly overrides the mean parameters \( \boldsymbol{\mu} \).

Parameters
meanThe new mean vector.

◆ setStd()

void cmp::scaler::EllipticScaler::setStd ( const Eigen::Ref< const Eigen::VectorXd > &  std)
inline

Explicitly overrides the standard deviation parameters \( \boldsymbol{\sigma} \).

Parameters
stdThe new standard deviation vector.

◆ transform()

Eigen::VectorXd cmp::scaler::EllipticScaler::transform ( const Eigen::Ref< const Eigen::VectorXd > &  data) const
overridevirtual

Transforms the input data from physical space to the scaled latent space.

Parameters
dataA column vector \( x \) representing a single data point in physical space.
Returns
The scaled data vector \( y \).

Implements cmp::scaler::Scaler.

Member Data Documentation

◆ mean_

Eigen::VectorXd cmp::scaler::EllipticScaler::mean_
private

The empirical mean vector \( \boldsymbol{\mu} \) of the training dataset.

◆ std_

Eigen::VectorXd cmp::scaler::EllipticScaler::std_
private

The standard deviation vector \( \boldsymbol{\sigma} \) for each feature.


The documentation for this class was generated from the following files: