python - Tensorflow 归一化 Vs。减去均值并除以标准差的传统方法
问题描述
我很好奇使用tf.keras.utils.normalize
与我们通常标准化系列的方式的任何偏好,减去平均值并除以标准差:
import tensorflow as tf
import numpy as np
series = np.random.random(10) + 10 * np.sin(np.random.random(1))
mean = np.mean(series)
std = np.std(series)
(series - mean) / std
tf.keras.utils.normalize(series)
这两种方法有什么优点/缺点吗?
tf 在 [0,1] 范围内进行归一化,但我们使用其他方法获得 [-1,1] 范围内的值。
解决方案
tf.keras.utils.normalize
使用此处描述的算法。,所以它只是使沿指定轴的数据成为相对于您最喜欢的lp
范数的单位向量。这是否更可取sklearn.StandardScaler()
取决于问题。对于许多时间序列问题,您想消除它们的趋势,所以取平均值0.
,这样StandardScaler
是合适的。如果您希望输入合理地类似地缩放,则两种方法或多或少都是等效的。