目录
1. 前提摘要
最近,本人在优化深度神经网络模型时发现为了减少预测标签值和真实标签值之间差距,不仅仅需提高模型本身的性能,还关乎于标签值标准化、数据集划分、模型超参数等一系列初始设定。其中后两项的实验内容俗称“炼丹”,很多研究人员已经炉火丹青,运筹帷幄,唯独标签值标准化容易被人忽略。一个优秀的标准化方法不仅能提高模型训练的稳定性,加速收敛,还能增强模型测试性能,可谓是中流砥柱。
现有模型训练大多默认选用 StandardScaler(),这本没错,但是如果能够参考标签值分布尝试其他方法,并修改为适合的激活函数,无论是回归还是分类任务均能小小的涨点。上篇文章已经粗略的介绍了大部分标准化方法,本次来详细谈谈常见的四种标准化方法。在您为涨点头疼时,尝试下每种标准化方法,或许会有奇效。
2. 标准化方法
2.1 StandardScaler
StandardScaler 是一种最常见的数据标准化方法,用于将特征按其均值和标准差进行缩放。它将数据调整为均值为0,标准差为1,使得每个特征的数据都服从标准正态分布。标准化有助于在训练过程中更稳定地优化模型参数,特别是对于依赖于特征大小的算法。
2.1.1 计算方法
StandardScaler 的主要步骤如下:
-
计算每个特征的均值: 对于给定数据集中的每个特征,计算其均值
。
-
计算每个特征的标准差: 计算每个特征的标准差
。
-
缩放数据: 将每个特征的值减去该特征的均值,再除以该特征的标准差,使得缩放后的数据均值为0,标准差为1。
2.1.2 计算公式
其中, 是原始数据,
是特征的均值,
是特征的标准差。
2.1.3 适用场景
StandardScaler 适用于以下场景:
数据符合正态分布: 当数据的大多数特征接近正态分布时,使用 StandardScaler 可以让每个特征有相同的量纲。
算法对特征缩放敏感: 许多机器学习算法(如支持向量机、K均值聚类和神经网络等)对输入特征的缩放敏感,因此使用 St