规范化随机无休止的未知系列?

时间:2014-01-22 07:19:58

标签: python algorithm math normalization

我有一个没有等式的无休止的系列,并且是随机的,类似这样,

   X = 1, 456, 555, 556, 557, 789 ... 

请注意,我将此列表作为一个流,我不知道将来的值,我不知道X的最小值和最大值。

如何查找任何N(X)的倒置正常x in X,以便

如果N(x) --> 0

,请

x --> inf 如果N(x) --> 1

,请

x --> 0

请注意,x越接近0x越小,1越近。{ / p>

我怎样才能实现这样的转变?

我尝试了以下内容:

#python
def invnorm(x):
    denom = 1 + math.exp(-x)
    return 2 - (2/denom)

invnorm(200)
Out[8]: 0.0

invnorm(20)
Out[9]: 4.1223073843355e-09

invnorm(2)
Out[10]: 0.23840584404423537

invnorm(1)
Out[11]: 0.5378828427399902

由于我的范围很大,而且200本身会给0而我的范围会偏向0,所以不会给出令人满意的结果。

2 个答案:

答案 0 :(得分:8)

好的,所以你基本上是在寻找一个连续的单调函数 N :[0,∞)→(0,1)这样:

  • lim x →0 N x )= 1,
  • lim x →∞ N x )= 0.

在这种情况下,“明显的”选择是N(x) = 1 / (x + 1),或者在Python中:

def invnorm (x):
    return 1.0 / (x + 1)

当然,还有无数许多其他函数满足这些条件,例如 N x )= 1 /( x + 1) a 任何正实数 a

另一个“自然”选择是N(x) = ex,或者在Python中:

def invnorm (x):
    return math.exp(-x)

这也可以重新调整为 N x )= b - x 任何实数 b > 1仍然满足您的要求。

当然,如果我们放松单调性要求(我刚才假设,即使你没有明确说明),即使是像Abhishek Bansal N(x) = sin(x) / x这样的怪异函数也符合条件。

答案 1 :(得分:0)

1 - X / M,其中M是预期的最大值(整数4294967295.可能为X)。