【问题标题】:Scale data to a certain range将数据缩放到一定范围
【发布时间】:2019-05-25 22:13:02
【问题描述】:

我有一个关于如何将数据缩放到特定范围的实施问题。我知道使用下面的等式我们可以缩放数据:

X_nor = ((b-a)*(X-min))/((max-min)+a)

其中 a,b 是我想要缩放的范围(例如 -1,1)。而 max 和 min 是原始数据中的最大数和最小数。 X为原始数据,X_nor为归一化数据。

我的问题是:假设我有三个数据,每个形状是 (1,128,128,1)。而我使用上面的等式进行归一化,max和min是三个数据的最大和最小数还是每个单独的数据?

说的清楚一点,上面的代码就是我所说的整个数据的最大值和最小值:

max=0
min=0
for i in range(len(data)):
    if data[i].max()>max:
        max=data[i].max()
     if data[i].min()<min:
        min=data[i].min()

下面的代码就是我所说的单个最大值和最小值:

max=[]
min=[]
for i in range(len(data)):
    max.append(data[i].max())
    min.append(data[i].min())

这样,在做归一化时,数据会减去自己的最大值和最小值,而不是第一种情况下唯一的最大值和最小值。

另外一个问题是:这样会不会破坏原始数据中的特征或模式?

非常感谢!

【问题讨论】:

  • 我认为你的公式应该是 X_nor = (((b-a)*(X-min))/(max-min))+a

标签: python machine-learning deep-learning


【解决方案1】:

这取决于您想要达到的目标。他们俩都是对的。在处理图像时,第二种方法(通道标准化)是最常用的技术。在进行归一化时,我们只是重新调整数据,因此原始特征和模式不会被破坏。如果您想在标准化后随时返回原始比例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 2014-03-14
    • 2012-11-21
    • 2012-12-03
    相关资源
    最近更新 更多