归一化和标准化
解释概念
https://www.jianshu.com/p/95a8f035c86c
灵魂提问2个问题:
(1)是对每一个样本进行归一化(按行归一化)还是对每一个维度进行归一化(按列归一化)?
(2)是将训练集和测试集分别归一化还是放在一起进行归一化?
答案
(1) 按列
(2) 一般分来归一化,分开归一化效果更好
代码
手写
train_x为2维数据,一维数据直接调用normalization函数即可。
# 按列进行归一化
def normalization(data):
_range = np.max(abs(data))
return data / _range
train_x=np.load("train_x.npy")
normalized_data = np.apply_along_axis(normalization, axis=0, arr=train_x)
sklearn库
from sklearn.preprocessing import MinMaxScaler, StandardScaler
train_x=np.load("train_x.npy")
# 创建最小-最大缩放器
minmax_scaler = MinMaxScaler()
# 创建标准化器
standard_scaler = StandardScaler()
# 对 train_x 进行最小-最大归一化
train_x_minmax = minmax_scaler.fit_transform(train_x)
# 对 train_x 进行标准化
train_x_standardized = standard_scaler.fit_transform(train_x)