数据归一化(sklearn.preprocessing.StandardScaler)
数据归一化能够很好的加速模型的训练,并提高模型的准确度,本篇主要介绍sklearn中的数据预处理方法,当然TensorFlow中也有预处理方法,tf.nn.l2_normalize。
本文介绍的skleran中数据预处理的公式为: x ‾ = x − μ δ \overline{x} = \cfrac{x-\mu}{\delta} x=δx−μ ,其中 μ \mu μ为整个数据的平均数, δ \delta δ为方差。
代码示例:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
#对数据进行归一化处理
#由于transform处理处理数据为二维数组,所以要将数据转化一下
#x_train: [none, 28, 28] -> [none, 784]
#对于使用fit_transform 和transform 请参考我的python中的博客(https://blog.csdn.net/qq_40913465/article/details/104274256)
x_train_scaled = scaler.fit_transform(x_train.astype(np.float32).reshape(-1,1)).reshape(-1,28,28)
x_valid_scaled = scaler.transform(x_valid.astype(np.float32).reshape(-1,1)).reshape(-1,28,28)
x_test_scaled = scaler.transform(x_test.astype(np.float32).reshape(-1,1)).reshape(-1,28,28)
#注意在归一化数据后,之后使用的数据要使用新的归一化数据
以上就是sklearn中数据预处理的方法,注意在归一化数据后,之后使用的数据要使用新的归一化数据。