归一化和标准化

解释概念

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)

posted @ 2023-08-17 22:33  kingwzun  阅读(26)  评论(0编辑  收藏  举报