当 LSTM 预测超出训练范围时 MinMaxScaler?

数据挖掘 scikit-学习 lstm rnn 正常化 特征缩放
2022-03-12 21:41:49

我在我的训练集上使用 MinMaxScaler 并将转换应用到我的测试集和 inverse_transform 到我的模型输出。例如,如果这是一个股票预测问题,我的训练集的值可能在 1-200 之间,但在最近的时间步中,这些值接近该范围的高端。

我如何处理应该预测超过 200 的未来时间步长(因为激活函数输出值在 0-1 之间)?我想我的问题是,有没有办法手动(或通过一些“经验法则”)为训练集指定最大值?因此,在这种情况下,是否可以使用 MinMaxScaler 将 0-500 作为最小最大值转换为 0-1,这样我的测试集或预测中的值可以相应地进行 inverse_transformed?这是开箱即用的 scikit-learn 功能吗?实现这一点的最有效方法是什么,特别是如果必须为多个功能独立完成?

1个回答

使用 MinMaxScaler 进行逆变换应该能够产生超出训练数据范围的内容。看来,在您的用例中,使用最终激活[0,1]可能不合适。即使您将训练数据转换为登陆,例如,[0,0.7],在最后一层应用 sigmoid 或类似的东西似乎缺乏动力。

至于能不能做到的问题:是的,稍微迂回思考一下就可以了。您无法指定您希望缩放器认为您的数据的最大值和最小值是什么,但您可以指定您想要的输出范围(参数feature_range),这相当于同一件事。