时序预测 | 基于MAMbaS+transformer时间序列预测模型(pytorch)

效果一览

在这里插入图片描述
在这里插入图片描述

基本介绍

MAMBAS,transformer
python代码,pytorch架构
可以发刊,先发先的,高精度代码。
需知:好的创新性模型可以事半功倍。。
适合功率预测,风电光伏预测,负荷预测,流量预测,浓度预测,机械领域预测等等各种时间序列直接预测。
MAMBAS是在2024年5月顶会提出的一个对MAMBA的改进版。首先,简单地让 SSM 参数成为输入的函数,解决了它们在离散模态方面的弱点,允许模型根据当前标记选择性地沿序列长度维度传播或忘记信息。其次,尽管这种变化阻止了高效卷积的使用,但我们在循环模式下设计了一种硬件感知的并行算法。我们将这些选择性 SSM 集成到一个简化的端到端神经网络架构中,无需注意,甚至没有 MLP 块。
创新性非常高。改都不改发3区以上完全够用,效果也不错。代码可以继续添加优化方法,改其他former模型,分解机制,注意力机制等等。
功能如下:
1.多变量输入,单变量输出/可改多输出
2.多时间步预测,单时间步预测
3.评价指标:R方 RMSE MAE MAPE
对比图
4.数据从excel/csv文件中读取
5.可以将最后的结果保存下来供后续操作。
源码结构复杂,不易理解。源码不能出对比图且指标少,改编代码完美保留基准代码功能和机制,并且删除冗余部分,修改了代码的数据加载处理,训练,测试部分,简单的环境就可以运行,十分适合看不懂代码的小白。代码带数据,注释清晰,适合新手小白,接运行

程序设计

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import torch
import torch.nn as nn
from torch.optim import Adam
from torch.utils.data import Dataset, DataLoader
from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error
from sklearn.preprocessing import MinMaxScaler
from tqdm import tqdm
import torch
import numpy as np
from mamba2 import Mamba2, Mamba2Config
# 解决画图中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 输入的历史look_back步,和预测未来的T步
look_back = 10
T = 1
epochs = 50    #迭代次数
num_features= 6  #输入特证数
embed_dim = 16  #嵌入维度
dense_dim= 16   #隐藏层神经元个数
num_heads = 4   #头数
dropout_rate = 0.01  #失活率
num_blocks = 3  #编码器解码器数
learn_rate = 0.001  #学习率
batch_size = 16  #批大小


# 读取数据
dataset = pd.read_excel('tcndata2.xlsx', usecols=[4,5,6,7,8,9])
dataX = dataset.values
dataY = dataset['Y'].values
print(dataX)
print(dataY)
# 归一化数据
scaler1 = MinMaxScaler(feature_range=(0, 1))
scaler2 = MinMaxScaler(feature_range=(0, 1))
data_X = scaler1.fit_transform(dataX)
data_Y = scaler2.fit_transform(dataY.reshape(-1, 1))

#划分训练集和测试集,用70%作为训练集,20%作为验证集,10%作为测试集
train_size  = int(len(data_X)*0.7) 
val_size = int(len(data_X)*0.1)
test_size = len(data_X) - train_size - val_size

train_X,train_Y = data_X[0:train_size], data_Y[0:train_size]
val_X,val_Y = data_X[train_size:train_size+val_size], data_Y[train_size:train_size+val_size]
test_X,test_Y = data_X[train_size+val_size:], data_Y[train_size+val_size:]

参考资料

[1] http://t.csdn.cn/pCWSp
[2] https://download.csdn.net/download/kjm13182345320/87568090?spm=1001.2014.3001.5501
[3] https://blog.csdn.net/kjm13182345320/article/details/129433463?spm=1001.2014.3001.5501

为了在Windows安装ADB工具,你可以按照以下步骤进行操作: 1. 首先,下载ADB工具包并解压缩到你自定义的安装目录。你可以选择将其解压缩到任何你喜欢的位置。 2. 打开运行窗口,可以通过按下Win+R键来快速打开。在运行窗口中输入"sysdm.cpl"并按下回车键。 3. 在系统属性窗口中,选择"高级"选项卡,然后点击"环境变量"按钮。 4. 在环境变量窗口中,选择"系统变量"部分,并找到名为"Path"的变量。点击"编辑"按钮。 5. 在编辑环境变量窗口中,点击"新建"按钮,并将ADB工具的安装路径添加到新建的路径中。确保路径正确无误后,点击"确定"按钮。 6. 返回到桌面,打开命令提示符窗口。你可以通过按下Win+R键,然后输入"cmd"并按下回车键来快速打开命令提示符窗口。 7. 在命令提示符窗口中,输入"adb version"命令来验证ADB工具是否成功安装。如果显示版本信息,则表示安装成功。 这样,你就成功在Windows安装ADB工具。你可以使用ADB工具来执行各种操作,如枚举设备、进入/退出ADB终端、文件传输、运行命令、查看系统日志等。具体的操作方法可以参考ADB工具的官方文档或其他相关教程。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [windows环境安装adb驱动](https://blog.csdn.net/zx54633089/article/details/128533343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Windows安装使用ADB简单易懂教程](https://blog.csdn.net/m0_37777700/article/details/129836351)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器学习之心

谢谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值