我正在尝试将LSTM模型应用于时间序列预测。
LSTM的第一步是使用MinMaxScaler缩放数据。我正在尝试缩放(-1,1)范围内的数据。
我的火车数据如下所示:
[[0. 2.54583333]
[2.54583333 2.6125 ]
[2.6125 2.875 ]
...
[2.69583333 2.5125 ]
[2.5125 2.91666667]
[2.91666667 3.4375 ]]
MinMaxScaler(copy=True, feature_range=(-1, 1))
[[-1. -0.95342466]
[-0.80649248 -0.94794521]
[-0.80142518 -0.92636986]
...
[-0.79509105 -0.95616438]
[-0.80902613 -0.92294521]
[-0.77830562 -0.88013699]]
因此,可以看出上面的值没有正确缩放。例如:2.54583333的缩放比例为-0.95342466以及-0.80649248。
实际上,缩放后的值应类似于以下内容:
[[-1. -0.95342466]
[-0.95342466 -0.94794521]
[0.94794521 -0.92636986]
...
[-0.79509105 -0.95616438]
[-0.95616438 -0.92294521]
[-0.92294521 -0.88013699]]
标定值也应遵循训练集中的模式。
有人可以告诉我我在做什么错,为什么同一数字会出现多个缩放值?
我正在使用以下代码缩放值:
def scale(train, test):
# fit scaler
scaler = MinMaxScaler(feature_range=(-1, 1))
scaler = scaler.fit(train)
# transform train
train = train.reshape(train.shape[0], train.shape[1])
train_scaled = scaler.transform(train)
# transform test
test = test.reshape(test.shape[0], test.shape[1])
test_scaled = scaler.transform(test)
return scaler, train_scaled, test_scaled
但是这里确实有问题。请帮忙。
我的整个数据集都是(720,1)
火车数据的长度:519 测试数据长度:200。
在上述方法中,火车数据的形状为(519,2),测试数据的形状为(200,2)。请让我知道是否需要更多信息或任何其他清晰度。我是新手,我是第一次尝试LSTM。
答案 0 :(得分:0)
这没有错。每个特征都是独立缩放的,并且每个特征都有自己的归一化因子,因此不同特征维度中的相同特征值将不会以相同方式归一化。