时间序列-BP神经网络及与auo arima的比较

本文探讨了使用BP神经网络进行时间序列预测,并将其与传统ARIMA模型进行了比较。通过实验,BP神经网络在rmse=0.3884的情况下,表现优于ARIMA。接下来,作者将调整BP神经网络的结构以进一步提升预测效果。
摘要由CSDN通过智能技术生成


auto arima代码部分

  • rolling_size = 2000,test_size = 1000
    在这里插入图片描述
    这已经算是经过尝试后的局部最优,rmse=0.3884

BP神经网络

BP神经网络理论及代码部分

数据格式

在这里插入图片描述

代码部分
#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author: liujie
@software: PyCharm
@file: BP1.py
@time: 2020/11/8 21:57
"""
import warnings
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow import keras
from sklearn.preprocessing import StandardScaler
from tensorflow.keras import layers,optimizers
from sklearn.metrics import mean_squared_error as MSE

# 读取数据
def read_data(datapath):
    # read data
    data1 = pd.read_csv(datapath,index_col=0)
    # 填充或者删去
    data1.fillna(method='pad',inplace=True)      # 填充
    # data.dropna(inplace = True)                 # 删去
    return data1

# 分割数据
def splitdata(data,Sequence_length,horizon):
    all_data = []
    for dta in range(len(data) - sequence_length -horizon + 1):
        all_data.append(data[dta : dta + sequence_length])

    all_data = np.array(all_data)
    ydata = data[(horizon + sequence_length -1) :]
    ydata = list(ydata)

    # 加入y变量
    all_data = pd.DataFrame(all_data)
    all_data['y'] 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值