咨询机器学习(ML)与深度学习(DL)中-1~1范围的归一化方法
将数据归一化至-1到1范围的方法
当然有,最常用且易实现的是基于最小-最大缩放(Min-Max Scaling)的变体,直接通过公式转换即可:
scaled_value = 2 * (x - min_x) / (max_x - min_x) - 1
原理说明:
- 先通过
(x - min_x)/(max_x - min_x)将原始数据缩放到0-1区间; - 乘以2后数据范围变为0-2;
- 最后减1,就得到了-1到1区间的归一化结果。
实操注意事项:
- 计算
min_x和max_x时,必须仅使用训练集数据,不能包含测试集数据,避免数据泄露影响模型泛化能力; - 如果数据存在异常值,建议先通过截断或移除异常值再做归一化,否则极值会压缩大部分数据的分布范围。
另一种适用场景的方法:
如果你的数据本身围绕均值对称分布,可以用基于最大绝对偏差的缩放,公式如下:
scaled_value = (x - mean_x) / max_abs(x - mean_x)
这里max_abs(x - mean_x)是所有数据与均值差值的绝对值的最大值,这样处理后数据会被缩放到-1到1区间,同时保留数据的对称分布特性。
内容的提问来源于stack exchange,提问作者wonki cho
相关产品推荐
相关产品推荐

