【数据预处理】什么时候需要数据归一化?

如何理解归一化(normalization)?

数据预处理:归一化和标准化

机器学习笔记:为什么要对数据进行归一化处理?

数据标准化作用:

  1. 模型求解需要,归一化可以加快梯度下降的速度,即模型收敛速度。
  2. 无量纲化
  3. 避免数值问题,避免因过大或过小的异常值引发的数值问题,去除奇异样本数据导致的不良影响。

归一化和反归一化函数C++实现:

//---------------------------- MinMaxScaler()--------------------------------------------------------------------//
// Min-Max scaling function for Eigen matrix
void MinMaxScaler(MatrixXf& matrix, float min_val, float max_val) {
    for (int col = 0; col < matrix.cols(); ++col) {
        float min_val_col = matrix.col(col).minCoeff();
        float max_val_col = matrix.col(col).maxCoeff();

        // Scale the column using the Min-Max formula
        matrix.col(col) = ((matrix.col(col).array() - min_val_col) / (max_val_col - min_val_col)).cast<float>() * (max_val - min_val) + min_val;
    }
}

//---------------------------- inverse MinMaxScaler()------------------------------------------------------------//
// Inverse Min-Max scaling function for Eigen matrix
void InverseMinMaxScaler(MatrixXf& matrix, float min_val, float max_val, float original_min, float original_max) {
    for (int col = 0; col < matrix.cols(); ++col) {
        // Inverse scale the column using the Min-Max formula
        matrix.col(col) = ((matrix.col(col).array() - min_val) / (max_val - min_val)).cast<float>() * (original_max - original_min) + original_min;
    }
}

你可能感兴趣的:(深度学习)