我有範圍從1 - 0.00000X範圍的數字。大多數是像0.000823這樣的小數字。我如何映射它們以使它們更接近範圍?我使用sqrt方法,但任何其他建議?正常化數字從1-.0000X到1 - 0.0X?
更新
例1-0.1之間 數字我沒有問題與他們。我的數字低於0.1的問題。我需要把它們接近0.1。
- 0.00004 - > 0.0004或0.004英寸
- 0.023 - > 0.05或0.09
我有範圍從1 - 0.00000X範圍的數字。大多數是像0.000823這樣的小數字。我如何映射它們以使它們更接近範圍?我使用sqrt方法,但任何其他建議?正常化數字從1-.0000X到1 - 0.0X?
更新
例1-0.1之間 數字我沒有問題與他們。我的數字低於0.1的問題。我需要把它們接近0.1。
如果你的號碼滿足eps < x <= 1
,功能
y = 1 - C*log(x)
其中C = 1/-log(eps)
將映射數字範圍爲0 ..1。如果範圍不是必需的,只有數字靠得很近,您可以降低比例因子。
編輯: 這當然可以表示沒有減法。
y = 1 + C*log(x)
其中C = 1/log(eps)
例如,與0.0000000001(10^-10)的ε,你會得到C = -0.1:
0.0000000001 => 0
0.000000001 => 0.1
0.00000001 => 0.2
...
0.1 => 0.9
1 => 1
編輯:如果你不想將範圍從0.1 ... 1.0更改爲僅更小的數字,然後將範圍從0 ... 0.1縮放。這可以通過在應用函數之前將x乘以10來完成,並在之後再次除以10來完成。當然,在這種情況下,只有在數值小於0.1時才使用比例函數。
1- log(x),將給予低數字更多權重。例如.0003將會高於.3 – tnaser 2012-04-05 14:35:21
當然可以。那麼'sqrt',你給出的例子是什麼? – hirschhornsalz 2012-04-05 14:38:26
但是減去反向 – tnaser 2012-04-05 14:42:41
我可以想象映射這些值的方法很多;這將是最合適的取決於他們代表的東西以及他們如何使用。例如,使用sqrt會出現什麼問題? – 2012-04-05 14:23:14
我希望數字在1-0的範圍內。我的問題是我有很多像0.000023這樣的低數字。 sqrt縮小了它們,但我需要更好的東西。例如具有4個或更多個0,.0000X或0.00000000X的數字我想將它們映射到1個也更小的事物,可能是0.000X甚至0.0X – tnaser 2012-04-05 14:25:08
再次,定義「更好」。例如,我們可以將所有數字映射到0.1到1之間,然後均勻分佈在0到0.99之間。 – 2012-04-05 14:27:29