我正在使用python预处理来扩展我的数据。我使用MinMaxScaler参数feature_range =( - 1,1)。但是这会返回[-1,1]范围内的数据。我需要(-1,1)范围内的数据。我该怎么办?
答案 0 :(得分:0)
这似乎是一个奇怪的问题,因为通常缩放是包容性的 - 根据定义,缩放到(lower_bound, upper_bound)
意味着数据集中最小的东西被映射到lower_bound
而最大的映射到upper_bound
因此,你想要一个独有的范围是有点矛盾的,因为那时范围的“最大值”没有映射到数据中的任何东西。
这就是为什么没有这样做的功能 - 缩放到范围始终是包容性的。我会仔细考虑为什么你需要一个独特的缩放 - 即你是否真的这样做。
那就是说,这里有一些想法,在数学上都是可疑的(它们会引入一些错误):
1。)feature_range = (-1 + eps, 1 - eps)
:其中eps = .000000000000001
或适当的小数字。当数字eps
接近0时,将可接受范围缩小到任意小数近似排他范围。
2)。
for entry in data:
if entry is 1:
entry = entry - eps
else if entry is -1:
entry = entry + eps
这在数学上更具有可疑性,因为它会人为地“推入”分布的末尾,但是对于大于(-1 + eps)
且小于(1 - eps)
的每个值,它将保持映射不变。 / p>