LSTM时序预测时归一化问题

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yinmengtingjoy/article/details/85311990

LSTM时序预测时归一化问题

在做项目时,发现数据归一化对模型训练结果影响很大,其中还涉及到很多细节问题。以下通过空气污染预测的例子来进行说明。(数据和代码网上都有提供)

描述:在空气污染预测例子中,共有8个属性,利用过去24小时的污染数据和天气条件预测下一个时刻(t+1)可能的污染值

问题:

不对数据进行归一化处理时,loss(mae)将会很大,lstm模型也训练不好,如下图所示:

预测出的结果是相等的常量,如下图所示:,显然,这不是我想要的结果

解决:

对输入数据进行归一化,使用sklearn.preporcessing

scaler = MinMaxScaler(feature_range=(0, 1))
scaled = scaler.fit_transform(values)

原始数据的shape是(n,dim),其中n为样本数目,dim为维度(属性个数),对每个维度进行归一化,使得数据范围都在(0,1)之间。

在获取预测结果的时候,需要反归一化。注意反归一化时需要与归一化时的数据shape相同。

最终的预测结果如下图:

展开阅读全文

没有更多推荐了,返回首页