首页 > 解决方案 > 如何标准化从 - inf 到 +inf 在 0,1 之间的数据,其中值 0 在标准化时始终等于 0.5?

问题描述

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

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

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

标签: pythonnormalizationsigmoid

解决方案


您可以使用sigmoid 函数

Sigmoid 函数
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)

参考

如何在 Python 中计算逻辑 sigmoid 函数?


推荐阅读