将数据缩放到一定范围

2024-06-09 04:09:53 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

其中a,b是我要缩放的范围(例如-1,1)。最大值和最小值是原始数据中的最大值和最小值。X是原始数据,XƏu nor是标准化数据。你知道吗

我的问题是:假设我有三个数据,每个形状是(1128128,1)。我用上面的公式做归一化,最大值和最小值是三个数据的最大值和最小值,还是每个数据的最大值和最小值?你知道吗

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

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())

这样,在进行归一化时,数据将减去它自己的最大值和最小值,而不是第一种情况下唯一的最大值和最小值。你知道吗

另一个问题是:这样,原始数据中的特征或模式会被破坏吗?你知道吗

非常感谢!你知道吗


Tags: 数据代码infordata原始数据lenif
1条回答
网友
1楼 · 发布于 2024-06-09 04:09:53

这取决于你想要实现什么。他们两个都是对的。在处理图像时,第二种方法(通道归一化)是最常用的技术。在进行标准化时,我们只需重新缩放数据,因此原始特征和模式不会被破坏。在标准化之后,如果希望,可以随时返回原始比例。你知道吗

相关问题 更多 >