【问题标题】:How to normalize data that goes from - inf to +inf between 0,1 where the value 0 is always equals to 0.5 when normalized?如何标准化从 - inf 到 +inf 在 0,1 之间的数据,其中值 0 在标准化时始终等于 0.5?
【发布时间】:2020-02-11 15:28:35
【问题描述】:

我正在尝试对神经网络的数据集进行规范化,数据集中的负值和正值可以从 -inf 变为 +inf。 我需要对 0,0.5 之间的负值和 0.5,1 之间的正值进行归一化,但归一化的数据永远不会达到 0 或 1,因为它们分别是 -inf 和 +inf。

我可以用 python 做到这一点吗?

对不起,我生疏的英语,如果这个问题看起来很愚蠢,但我真的在努力解决这个数学问题。

【问题讨论】:

  • 您的具体要求是什么?归一化是否应该始终将相同的输入归一化为相同的输出,而不管数据集中还有什么?归一化是否总是导致归一化的最低和最高输出为 0 和 1?规范化方法不可能同时具有这两个属性。

标签: python normalization sigmoid


【解决方案1】:

您可以使用 sigmoid 函数

Sigmoid function
import numpy as np

def sigmoid(x):
  return 1 / (1 + np.exp(-x))

但 sigmoid 并不是唯一这样做的函数。也请查看tanh(x)

tanh(x) = (exp(x) - exp(-x))/(exp(x) - exp(-x)) = sigmoid(2x) - sigmoid(-2x)

参考

How to calculate a logistic sigmoid function in Python?

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-27
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      • 2017-03-14
      • 2019-07-27
      相关资源
      最近更新 更多