我想將我的資料轉換為 1-11 比例。起初,我獲取原始資料并使用以下公式轉換它們,我從這里獲取:
scale_min float(x-data_min)*float(scale_max-scale_min)/(data_max-data_min)
但是,由于我的資料具有極端的例外值,因此無法看到大多數資料的差異。我想過取資料的 log10,然后將這些值轉換為我的 1-11 比例,但是,上述公式不適用于負值,這可能發生在 log10 中。有沒有其他方法可以將 log10 值映射到 1-11 比例?或者任何其他方式將具有極端例外值的資料映射到 1-11 的比例,從而可以感知較小值的差異,同時不會丟失任何資訊?
我的價值觀的一個例子是
[0.1, 10, 300, 500000]
uj5u.com熱心網友回復:
我不明白為什么你的公式不應該使用負數。這是一個簡單的仿射函式。
python中的示例:
from math import log10
data = [0.1, 10, 300, 500000]
logdata = [log10(x) for x in data]
a = min(logdata)
b = max(logdata)
data1_11 = [1 (y - a) * 10 / (b - a) for y in logdata]
print(data1_11)
# [1.0, 4.0, 6.2, 11.0]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/316458.html
