基于遗传算法优化TCN-LSTM开发预测研究(Python代码实现)
👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
时间卷积网络( temporal convolutional network ,TCN)是一种新型的、可以对时间序列数据进行处理的神经网络架构,与传统的卷积神经网络相比,它可以更有效地提取时序数据的特征。TCN通过卷积神经网络( convolutional neural network , CNN)变化而来,它由多个残差单元构成。为了提高学习能力, TCN通过加入残差连接模块,使得该模型可以将信息以跨层的方式来进行传递,进而使模型的反馈和收敛速度进一步提升。图1为TCN模型的单个残差单元。
在残差单元中一维扩张因果卷积发挥着重要作用,一维扩张因果卷积通过卷积系数来控制对输入的采样间隔,使得TCN 网络只需要通过很少的层,就能够拥有较长的感受野。同时和CNN不同TCN中的因果卷积不是双向,而是单向的,即模型中t时刻的输出只由前一层中t时刻及t时刻以前的输入来决定,这样避免了模型不会丢失掉历史信息及受到未来信息的影响,这也使得TCN模型变成了一种严格的时间约束模型。
📚2 运行结果
部分代码:
fig, ax = plt.subplots(1, 1, figsize=( 18,6)) plt.plot(actual_entire_lstm_tcn, label = 'Actual production') plt.plot(forecast_entire_lstm_tcn, label = 'GA-TCN-LSTM predicted values') # create the horizontal dashed line plt.axvline(x=train_X.shape[0] + 1, color='black', linestyle='--') plt.legend() # add text labels plt.text(1350, 17500, 'Training set', rotation=0, verticalalignment='center', style='italic', fontweight='bold') plt.text(1540, 15000, 'Testing set', rotation=0, verticalalignment='center', style='italic', fontweight='bold') plt.ylabel('Daily Oil Prodcution, bbl', fontsize=15) plt.xlabel('Days', fontsize=15) plt.xticks(fontsize=15) plt.yticks(fontsize=15) # Create a font object with bold weight font = FontProperties() font.set_weight('bold') plt.legend(fontsize=10, loc= 'upper right', prop=font) plt.savefig("GA-TCN-LSTM actual-forecast.png", dpi=1600, bbox_inches='tight') plt.show()
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]赵星宇,吴泉军,朱威.基于CEEMDAN和TCN-LSTM模型的短期电力负荷预测[J].科学技术与工程,2023,23(04):1557-1564.