我正在尝试为神经网络创建一个模型,该模型试图使用 LSTM 逐点预测股票的价格(是的,我知道这可能没有得到任何东西,我应该预测上/下或一些真正的布尔决策,但我喜欢先试试这个)
我将使用过去 60 天的 HIGH、LOW、OPEN 作为特征,并尝试预测第二天的 ADJ_CLOSE。
当我需要对数据进行规范化时,问题就来了。我使用的是 1980 年到 2019 年的 AAPL 数据,主要问题是 80 年代的股票价格是美分,而 10 年代的股票价格是数百美元,所以我决定使用 Sklearn 的 MinMaxScaler 进行窗口标准化。
火车数据没有问题,我有 7887 个数据点,所以我用 500 个窗口对它们进行了缩放,最后分别保留。代码是这样的
x_train = train.values
window_size = 500
for i in range(0,7500,window_size):
x_train[i:i+window_size] = min_max_scaler.fit_transform(x_train[i:i+window_size])
x_train[i+window_size:] = min_max_scaler.fit_transform(x_train[i+window_size:])
测试时出现问题我不知道做类似的事情
x_test = test.values
x_test = min_max_scaler.fit_transform(x_test)
是一种聊天,因为他们自己适合。但我做不到
x_test = test.values
x_test = min_max_scaler.transform(x_test)
在训练数据的窗口归一化之后(使用最后一个拟合的缩放器),因为训练数据的最后一个窗口上的最小值和最大值之间的范围与测试数据的范围有很大不同,在这种情况下,归一化不会很好地完成并且测试数据会不适合 [0,1]。
有什么帮助吗?
