在 (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
可能在代码的某处四舍五入。
我想在 (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
可能在代码的某处四舍五入。