LSTM-TimeSeriesRegression-数据预处理

这里记录LSTM用在时间序列数据的t+1预测时的数据预处理。

  1. 数据预处理
    1.1 Scaler
    因为LSTM对数据值敏感,在分析数据之前,我们可以对数据做一个scaling.
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler(feature_range=(0, 1))
data = scaler.fit_transform(data)

Note: 记得在查看结果的时候转换回去。

y_predict = scaler.inverse_transform(y_predict)

1.2 Train Test Split
这类问题在分离train, test dataset的时候需要注意保持原有数列顺序。train用到0到分割点,test则是从分割点到数据结尾。

train, test = dataset[0:trainsize, :], dataset[trainsize:len(dataset), :]

1.4 Re-arrange input data
一般原始数据的一个特征可能是一个1D array,一列不同时刻的数值 (column: value_at_time_t)。要使用LSTM做回归,我们需要把数据转化为column: (t-1), (t-2), (...), value_at_time_t(Y)

1.5 Reshape input data
keras LSTM模型对数据形式有一定要求,通常为3D tensor. 因此,如我我们从csv读入一组原始数据,需要用numpy.reshape对原始数据reshape,以便keras LSTM读入。

你可能感兴趣的:(LSTM-TimeSeriesRegression-数据预处理)