如何处理神经网络中的不连续输入分布



我使用Keras来设置神经网络。作为输入数据,我使用向量,其中每个坐标可以是0(特征不存在或未测量),也可以是一个范围在5000到10000之间的值。

所以我的输入值分布是一种高斯中心假设在7500附近加上一个非常薄的峰值在0。

我不能移除某些坐标为0的向量因为几乎所有的向量在某些位置都有0

所以我的问题是:"如何最好地规范化输入向量?"我看到两种可能:

  1. 只需减去平均值并除以标准差。问题是,均值被大量无意义的0所偏倚,而std被高估了,这就抹去了有意义测量中的细微变化。
  2. 计算非零坐标上的均值和标准差,更有意义。但是,所有与非测量数据对应的0值都将得到高(负)值,这对无意义的数据具有一定的重要性。

谁有什么建议吗?

谢谢!

相反,将您的特征表示为二维:

  • 第一个是特征的归一化值,如果它是非零的(其中对非零元素计算归一化),否则为0
  • 如果特征为0,则秒为1,否则为1。这确保可以区分来自原始0或标准化0的前一个特征中的0

你可以认为这是编码额外的功能,说"另一个功能缺失"。这样,每个特征的尺度被归一化,所有的信息被保留

最新更新