【发布时间】:2020-05-15 21:19:26
【问题描述】:
我已经构建了一组 python 脚本。脚本执行以下任务 -
- 根据用户输入(股票代码、开始日期、结束日期等)获取股票价格信息
- 根据股价信息构建和训练模型
- 预测下一个预测价格和相关的 RMSE(均方根误差)
- 将输出与用户输入一起写入 xlsx 文件
到目前为止,一切都很好,它以一种体面的方式完成了上述所有工作。但是,每次我使用相同的数据和用户输入执行脚本 (2) 和 (3) 时,都会得到不同的预测值。我明白这些都是预测,即使所有因素保持相同,预测值也会有所不同。
例如,如果 trial#1 的 pred 值为 100,则 trial#2 的 pred 值为 105,trial#3 的 pred 值为 95,以此类推。这种(加/减)5 的变化是可以接受的。但是pred值不能在80到120之间。
我的问题是 - 如何最小化预测值的变化?
提前致谢, 桑杰S
这是我正在使用的示例代码。
from sklearn.preprocessing import MinMaxScaler
from keras.models import Sequential
from keras.layers import Dense, LSTM, Dropout
from tensorflow.python.util import deprecation
model = Sequential()
lstm1 = LSTM(units=60, return_sequences=True, input_shape = (x_train.shape[1],1))
lstm2 = LSTM(units=60, return_sequences=True)
lstm3 = LSTM(units=60)
dropOut = Dropout(0.2)
dense = Dense(units=1)
model.add(lstm1)
model.add(dropOut)
model.add(lstm2)
model.add(dropOut)
model.add(lstm2)
model.add(dropOut)
model.add(lstm3)
model.add(dropOut)
model.add(dense)
model.compile(optimizer='adam', loss='mean_squared_error')
【问题讨论】:
标签: python tensorflow machine-learning lstm recurrent-neural-network