Tensorflow 标准化 Vs。减去平均值并除以标准差的传统方法
Tensorflow normalize Vs. traditional way of subtracting mean and dividing by std
我很好奇使用 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)
这两种方法都有 pros/cons 吗?
tf 在 [0,1] 范围内归一化,但我们使用其他方法获得 [-1,1] 范围内的值。
tf.keras.utils.normalize
使用 描述的算法,因此它只是使沿指定轴的数据成为相对于您最喜欢的 lp
范数的单位向量。这是否优于 sklearn.StandardScaler()
取决于问题。对于很多时间序列问题,想要去趋势化,所以取均值0.
,所以StandardScaler
是合适的。如果您希望输入的缩放比例相当相似,则这两种方法或多或少是等效的。
我很好奇使用 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)
这两种方法都有 pros/cons 吗?
tf 在 [0,1] 范围内归一化,但我们使用其他方法获得 [-1,1] 范围内的值。
tf.keras.utils.normalize
使用 lp
范数的单位向量。这是否优于 sklearn.StandardScaler()
取决于问题。对于很多时间序列问题,想要去趋势化,所以取均值0.
,所以StandardScaler
是合适的。如果您希望输入的缩放比例相当相似,则这两种方法或多或少是等效的。