71 m_mean =
X.colwise().mean();
72 VectorXf variance = ((
X.rowwise() - m_mean.transpose()).array().square().colwise().sum() /
73 static_cast<float>(
X.rows())).matrix().transpose();
74 m_std = variance.array().sqrt().max(1e-10f).matrix();
76 m_min =
X.colwise().minCoeff();
77 VectorXf maxVals =
X.colwise().maxCoeff();
78 m_range = (maxVals - m_min).array().max(1e-10f).matrix();
89 throw std::runtime_error(
"MlScaler::transform – scaler has not been fitted.");
95 MatrixXf result = ((
X.rowwise() - m_mean.transpose()).array().rowwise() / m_std.transpose().array()).matrix();
98 MatrixXf result = ((
X.rowwise() - m_min.transpose()).array().rowwise() / m_range.transpose().array()).matrix();
116 throw std::runtime_error(
"MlScaler::inverseTransform – scaler has not been fitted.");
122 MatrixXf result = ((
X.array().rowwise() * m_std.transpose().array()).rowwise() + m_mean.transpose().array()).matrix();
125 MatrixXf result = ((
X.array().rowwise() * m_range.transpose().array()).rowwise() + m_min.transpose().array()).matrix();
MlScaler class declaration.
Machine learning (models, pipelines, ONNX Runtime integration).
MlTensor transform(const MlTensor &data) const
MlScaler(ScalerType type=StandardScaler)
void fit(const MlTensor &data)
MlTensor fitTransform(const MlTensor &data)
MlTensor inverseTransform(const MlTensor &data) const
N-dimensional tensor with contiguous row-major (C-order) float32 storage.
RowMajorMatrixMap matrix()