【问题标题】:Is it okay if I normalize whole dataset together?如果我将整个数据集一起标准化可以吗?
【发布时间】:2018-06-05 14:58:29
【问题描述】:

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

在数据预处理部分,当我规范化(特征缩放)数据集时,我正在对整个数据库进行规范化。但是,我非常怀疑某些输入列是否占主导地位,这会影响网络训练部分。下面是一个数据集示例,以便更好地理解:

从上图中可以看出,不同颜色的列比其他列更大或更小。

所以,我的问题是;是否可以将整个数据集一起标准化,还是应该单独标准化每一列?

【问题讨论】:

  • 归一化,你指的是feature scaling吗?在这种情况下,您应该基于每个功能(每列)应用这些操作。
  • 感谢您的说明。我已经编辑了这个问题并指出它是特征缩放。非常感谢答案!现在我发现我在整个过程中做错了什么!

标签: neural-network deep-learning lstm data-science recurrent-neural-network


【解决方案1】:

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

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

  • 重新缩放:使特征的值落入一个范围内,例如从 0 到 1。Min-Max 重新缩放通过以下方式完成此操作:

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

可以使用 Scikit-Learn 的 MinMaxScaler 在 Python 中进行重新缩放。可以使用 Scikit-Learn 的 StandardScaler 在 Python 中进行标准化。

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

【讨论】:

    猜你喜欢
    • 2016-05-25
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 2019-10-22
    • 2020-08-19
    • 2019-07-31
    相关资源
    最近更新 更多