最近在使用神经网络研究股票涨跌的预测,运用lstm模型进行研究。最初只使用开盘价、收盘价、最高,最低进行预测,准确率只有50%左右;在此基础上引入股票技术指标模型,准确率提高到90%,感觉不太正常,请问有人知道是哪里出了问题吗?(窗口是5,基于keras。)
样本不平衡,过拟合
深度学习这玩意不好说,毕竟炼丹...
你可以适当扩充测试集来进一步验证你的模型
【以下回答由 GPT 生成】
从问题描述中可以看出,问题的核心是为什么在修改神经网络模型后,股票预测准确率突然提高到了90%。可能存在以下几个原因:
数据问题:在引入股票技术指标模型之后,数据的质量和特征工程的处理可能产生了变化。可以检查数据的来源和处理过程,确保数据的准确性和一致性,并且监测数据质量的变化。
过拟合问题:在引入技术指标模型后,模型的复杂度可能增加,容易出现过拟合的情况。过拟合是指模型在训练数据上表现很好,但在测试数据上表现较差的情况。可以尝试使用更多的训练数据,或者通过正则化(如L1、L2正则化)来减少模型的复杂度,防止过拟合。
数据泄露问题:在处理股票数据时,可能会泄露未来信息,导致模型在现有数据上表现良好,但在真实环境中表现较差。可以检查数据的时间顺序,确保在训练模型时不会使用到未来的信息。
模型选择问题:虽然LSTM模型是处理时间序列数据的良好选择,但它可能不适用于所有的股票预测问题。可以尝试其他适用于时间序列的模型,如ARIMA、Prophet等,并比较它们的准确率。
参数调优问题:在引入技术指标模型后,可能需要重新调整模型的超参数。可以通过网格搜索或贝叶斯优化等方法,找到最优的超参数组合,以提高模型的准确率。
在解决这些问题时,你可以参考以下步骤来进一步分析和调整模型:
检查数据的来源和处理过程,确保数据的准确性和一致性。
检查模型的复杂度和过拟合情况,尝试使用更多的训练数据,或者通过正则化减少模型的复杂度。
检查数据是否存在泄露问题,确保在训练模型时不使用未来信息。
尝试其他适用于时间序列的模型,并比较它们的准确率。
重新调整模型的超参数,找到最优的超参数组合。
我希望以上建议对你有所帮助。如果你有任何进一步的问题,请随时提问。