在 (0, 1) 范围内缩放值

Scale values in range (0, 1)

我想在 (0, 1) 范围内缩放我的值,但不获取值 0 和 1,例如 MinMax Scaler。我在想可能会向 MinMax Scaler 函数添加一些内容,例如:

x_scaled[i] = (x[i] - min(x) +- something) / (max(x) - min(x) +- something)

这样最小值就会变得非常小,但不是 0,而最大值会非常接近 1,但不是 1。有什么想法吗?

您可以使用评论中提到的feature_range

对于something,您可以尝试使用比小值更聪明的东西,例如,百分位数(左侧为 0.1 或 0.5 或 1,右侧为 99 或 99.5 或 99.9 - 取决于你的数据)。

或者可以执行更简单的方法,其中您的 something 将是缩放列中 min()max() 值的比率。例如,您可以从 0.9 * min() 缩放到 1.1 * max()

PS 我想真正的小值,比如 1e-8 可能在代码的某处四舍五入。