如果我一起规范化整个数据集可以吗?

Is it okay if I normalize whole dataset together?

我正在尝试训练一个使用 LSTM 的 RNN 网络。

在数据预处理部分,当我规范化(特征缩放)数据集时,我正在一起规范化整个数据库。但是,我严重怀疑某些输入列是否在其他输入列上占主导地位,它会影响网络训练部分。为了更好地理解,这里有一个数据集的例子:

从上图中可以看出,不同颜色的柱子比其他柱子高很多或低很多。

所以,我的问题是;如果我一起对整个数据集进行归一化是否可以,还是应该单独对每一列进行归一化?

特征缩放是在每列的基础上完成的。这些操作一次应用于一个特征,因为 objective 是为了让不同的特征进入相似的范围,因此特征的单位不会影响学习 (source)。你是对的,特征的大小会影响训练,因此缩放被认为是最佳实践,尤其是在训练神经网络时。

通常这是通过以下两种方式之一完成的:

  • 重新缩放:使特征的值落在一个范围内,例如从 0 到 1。最小-最大重新缩放通过以下方式实现:

  • 标准化:减去均值除以标准差。新特征的均值为 0,标准差为 1。

可以使用 Scikit-Learn 的 MinMaxScaler. Standardization can be done in Python using Scikit-Learn's StandardScaler.

在 Python 中完成重新缩放

这是一篇关于特征缩放基础知识的好文章:http://sebastianraschka.com/Articles/2014_about_feature_scaling.html