python实现lstm-svr组合预测

首先用lstm实现预测,预测误差在输入svr预测,最后将二者预测结果组合实现lstm-svr组合预测。

一、工具安装

写文章-CSDN创作中心

二、python实现代码

(1)首先引入需要的包

(2)lstm预测

torch.manual_seed(1)        # 为CPU设置随机种子
#原始数据
#f = open(r'E:\pytorch文件\LSTM\1.xlsx')
#df1 = f.read_excel()
# def show(img_path):
#     f = open("D:/pathdata") #这里需要用到绝对路径,下面会详细解释
#     return f.read()+img_path
df1 = pd.read_excel(r'C:\Users\20882\Desktop\a.xlsx')
#一、数据准备
datas = df1.values

#归一化处理,这一步必不可少,不然后面训练数据误差会很大,模型没法用
max_value = np.max(datas)
min_value = np.min(datas)
scalar = max_value - min_value
datas = list(map(lambda x: (x-min_value) / scalar, datas))

#反归一化
def denormalize(data, maxData,minData):  
    #mindata, maxdata = data.min(), data.max()  
    return data * (maxData - minData) &
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
以下是一个简单的SVR时间序列预测代码示例,使用Python中的Scikit-learn库: ```python import numpy as np import pandas as pd from sklearn.svm import SVR from sklearn.metrics import mean_squared_error # 加载数据 data = pd.read_csv('data.csv') # 准备训练数据和测试数据 train_size = int(len(data) * 0.8) train_data, test_data = data[0:train_size], data[train_size:len(data)] # 准备训练数据和标签 X_train, Y_train = [], [] for i in range(10, len(train_data)): X_train.append(train_data.iloc[i-10:i, 0]) Y_train.append(train_data.iloc[i, 0]) X_train, Y_train = np.array(X_train), np.array(Y_train) # 准备测试数据和标签 X_test, Y_test = [], [] for i in range(10, len(test_data)): X_test.append(test_data.iloc[i-10:i, 0]) Y_test.append(test_data.iloc[i, 0]) X_test, Y_test = np.array(X_test), np.array(Y_test) # 创建SVR模型并训练 svr = SVR(kernel='linear', C=1e3) svr.fit(X_train, Y_train) # 预测测试数据 Y_pred = svr.predict(X_test) # 输出均方误差 mse = mean_squared_error(Y_test, Y_pred) print('Mean Squared Error:', mse) ``` 在这个示例中,我们从一个名为"data.csv"的CSV文件中加载时间序列数据,将前80%的数据作为训练数据,其余作为测试数据。然后,我们为每个时间步准备了一个输入特征向量,该向量包含前10个时间步的数据,以及对应的输出标签(下一个时间步的数据)。我们使用Scikit-learn库中的SVR模型进行训练,并使用测试数据进行预测。最后,我们计算预测值与真实值之间的均方误差。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

如如水,

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值