概念
归一化输入是一种常见的数据预处理技术,旨在将不同特征的取值范围映射到相似的尺度,从而帮助优化机器学习模型的训练过程。归一化可以提高模型的收敛速度、稳定性和泛化能力,减少模型受到不同特征尺度影响的情况。
常见的归一化方法
Min-Max 归一化:也称为线性归一化,将特征的取值范围映射到 [0, 1] 区间。公式为:
X
norm
=
X
−
X
min
X
max
−
X
min
X_{\text{norm}} = \frac{X – X_{\text{min}}}{X_{\text{max}} – X_{\text{min}}}
X
norm
=
X
max
−
X
min
X
−
X
min
。
Z-Score 归一化:也称为标准化,将特征的均值调整为 0,标准差调整为 1。公式为:
X
norm
=
X
−
μ
σ
X_{\text{norm}} = \frac{X – \mu}{\sigma}
X
norm
=
σ
X
−
μ
,其中
μ
\mu
μ
是均值,
σ
\sigma
σ
是标准差。
Robust 归一化:通过移除特征的中位数并缩放到一个固定的四分位范围,使得异常值不会对归一化结果产生太大影响。
代码示意
import numpy as np
from sklearn.preprocessing import MinMaxScaler, StandardScaler
# 生成示例数据
data = np.array([[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0],
[7.0, 8.0, 9.0]])
# Min-Max 归一化
min_max_scaler = MinMaxScaler()
data_minmax = min_max_scaler.fit_transform(data)
print("Min-Max 归一化后的数据:")
print(data_minmax)
# Z-Score 归一化
z_score_scaler = StandardScaler()
data_zscore = z_score_scaler.fit_transform(data)
print("Z-Score 归一化后的数据:")
print(data_zscore)