Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >(数据科学学习手札40)tensorflow实现LSTM时间序列预测

(数据科学学习手札40)tensorflow实现LSTM时间序列预测

原创
作者头像
Feffery
发布于 2018-06-05 12:54:25
发布于 2018-06-05 12:54:25
1.9K00
代码可运行
举报
运行总次数:0
代码可运行

一、简介

  上一篇中我们较为详细地铺垫了关于RNN及其变种LSTM的一些基本知识,也提到了LSTM在时间序列预测上优越的性能,本篇就将对如何利用tensorflow,在实际时间序列预测任务中搭建模型来完成任务,若你对RNN及LSTM不甚了解,请移步上一篇数据科学学习手札39;

二、数据说明及预处理

2.1 数据说明

  我们本文使用到的第一个数据来自R中自带的数据集AirPassengers,这个数据集记录了Box & Jenkins航空公司1949-1960年共144个观测值(对应每个月的国际航线乘客数),是一个经典的时间序列数据集,你可以从R中导出或去uci的网站下载;

2.2 数据预处理

  我们都知道,RNN最终经由tanh激活后输出的值位于[-1,1]内,若为分类任务则可以经由softmax进行处理,但我们这里要做的是对连续数值的预测,因此需要的输出即为tanh的输出,因此需要将原始数据进行尺度放缩,而尺度放缩的方法主要有两种,一种是极差规格化,即将原数据通过下面的公式无损地映射到[0,1]之间:

  另一种是标准化,将原数据通过下面的公式转换为均值为0,标准差为1的服从正态分布的随机变量:

我们这里选择标准化(选极差规格化也可以,读者们可以自己尝试,我懒得写了。。。);

三、模型建立及训练

数据预处理部分:

这一部分,我们完成原始数据的导入和预处理,为了配合之后的采样过程,这里选择列表作为预处理后原始数据的储存对象:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
import tensorflow as tf
from tensorflow.contrib import rnn
import matplotlib.pyplot as plt
from tensorflow.contrib.learn.python.learn.estimators.estimator import SKCompat
from matplotlib import style
import pandas as pd

'''读入原始数据并转为list'''
path = 'C:\\Users\\windows\\Desktop\\'

data = pd.read_csv(path+'AirPassenger.csv')

data = data.iloc[:,0].tolist()

'''自定义数据尺度缩放函数'''
def data_processing(raw_data,scale=True):
    if scale == True:
        return (raw_data-np.mean(raw_data))/np.std(raw_data)#标准化
    else:
        return (raw_data-np.min(raw_data))/(np.max(raw_data)-np.min(raw_data))#极差规格化

数据观察部分:

  这一部分,我们需要初步观察到原数据的一些基本特性,以便确定之后的一些参数,如LSTM单元内一个时间步内的递归次数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'''观察数据'''

'''设置绘图风格'''
style.use('ggplot')

plt.plot(data)

可以看出,我们的数据集具有很明显的周期性与上升趋势,下面就基于此,对LSTM的一些基本参数进行设置;

LSTM基本参数设置:

  这里我们需要设置的参数有隐层层数,因为数据集比较简单,我们设置为1;隐层神经元个数,这里我随意设置为40个;时间步中递归次数,这里根据上面观察的结论,设置为12;训练轮数,这里也是随意设置的不宜过少,2000;训练批尺寸,这里随意设置为20,表示每一轮从训练集中抽出20组序列样本进行训练:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'''设置隐层神经元个数'''
HIDDEN_SIZE = 40
'''设置隐层层数'''
NUM_LAYERS = 1
'''设置一个时间步中折叠的递归步数'''
TIMESTEPS = 12
'''设置训练轮数'''
TRAINING_STEPS = 2000
'''设置训练批尺寸'''
BATCH_SIZE = 20

生成训练集数据:

  这里为了将原始的单变量时序数据处理成LSTM可以接受的数据类型(有X输入,有真实标签Y),我们通过自编函数,将原数据(144个)从第一个开始,依次采样长度为12的连续序列作为一个时间步内部的输入序列X,并采样其之后一期的数据作为一个Y,具体过程如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'''样本数据生成函数'''
def generate_data(seq):
    X = []#初始化输入序列X
    Y= []#初始化输出序列Y
    '''生成连贯的时间序列类型样本集,每一个X内的一行对应指定步长的输入序列,Y内的每一行对应比X滞后一期的目标数值'''
    for i in range(len(seq) - TIMESTEPS - 1):
        X.append([seq[i:i + TIMESTEPS]])#从输入序列第一期出发,等步长连续不间断采样
        Y.append([seq[i + TIMESTEPS]])#对应每个X序列的滞后一期序列值
    return np.array(X, dtype=np.float32), np.array(Y, dtype=np.float32)

构造LSTM模型主体

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'''定义LSTM cell组件,该组件将在训练过程中被不断更新参数'''
def LstmCell():
    lstm_cell = rnn.BasicLSTMCell(HIDDEN_SIZE, state_is_tuple=True)#
    return lstm_cell

'''定义LSTM模型'''
def lstm_model(X, y):
    '''以前面定义的LSTM cell为基础定义多层堆叠的LSTM,我们这里只有1层'''
    cell = rnn.MultiRNNCell([LstmCell() for _ in range(NUM_LAYERS)])

    '''将已经堆叠起的LSTM单元转化成动态的可在训练过程中更新的LSTM单元'''
    output, _ = tf.nn.dynamic_rnn(cell, X, dtype=tf.float32)

    '''根据预定义的每层神经元个数来生成隐层每个单元'''
    output = tf.reshape(output, [-1, HIDDEN_SIZE])

    '''通过无激活函数的全连接层计算线性回归,并将数据压缩成一维数组结构'''
    predictions = tf.contrib.layers.fully_connected(output, 1, None)

    '''统一预测值与真实值的形状'''
    labels = tf.reshape(y, [-1])
    predictions = tf.reshape(predictions, [-1])

    '''定义损失函数,这里为正常的均方误差'''
    loss = tf.losses.mean_squared_error(predictions, labels)

    '''定义优化器各参数'''
    train_op = tf.contrib.layers.optimize_loss(loss,
                                               tf.contrib.framework.get_global_step(),
                                               optimizer='Adagrad',
                                               learning_rate=0.6)
    '''返回预测值、损失函数及优化器'''
    return predictions, loss, train_op

'''载入tf中仿sklearn训练方式的模块'''
learn = tf.contrib.learn

'''初始化我们的LSTM模型,并保存到工作目录下以方便进行增量学习'''
regressor = SKCompat(learn.Estimator(model_fn=lstm_model, model_dir='Models/model_2'))

训练部分:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'''对原数据进行尺度缩放'''
data = data_processing(data)

'''将所有样本来作为训练样本'''
train_X, train_y = generate_data(data)

'''将所有样本作为测试样本'''
test_X, test_y = generate_data(data)

'''以仿sklearn的形式训练模型,这里指定了训练批尺寸和训练轮数'''
regressor.fit(train_X, train_y, batch_size=BATCH_SIZE, steps=TRAINING_STEPS)

评价部分:

  这里我们将原数据(尺度缩放之后的)feed进我们已经训练好的模型中,得到对应的预测值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'''利用已训练好的LSTM模型,来生成对应测试集的所有预测值'''
predicted = np.array([pred for pred in regressor.predict(test_X)])

'''绘制反标准化之前的真实值与预测值对比图'''
plt.plot(predicted, label='预测值')
plt.plot(test_y, label='真实值')
plt.title('反标准化之前')
plt.legend()
plt.show()

可以看到,预测值与真实值非常的吻合,但这并不是我们需要的形式,我们需要的是反标准化后的真实数值,下面进行相关操作;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'''自定义反标准化函数'''
def scale_inv(raw_data,scale=True):
    '''读入原始数据并转为list'''
    path = 'C:\\Users\\windows\\Desktop\\'

    data = pd.read_csv(path + 'AirPassenger.csv')

    data = data.iloc[:, 0].tolist()

    if scale == True:
        return raw_data*np.std(data)+np.mean(data)
    else:
        return raw_data*(np.max(data)-np.min(data))+np.min(data)


'''绘制反标准化之前的真实值与预测值对比图'''
plt.figure()
plt.plot(scale_inv(predicted), label='预测值')
plt.plot(scale_inv(test_y), label='真实值')
plt.title('反标准化之后')
plt.legend()
plt.show()

实际使用中,若想利用已训练好的LSTM模型来预测未出现的下一期,则直接输入最后12步(这里是12步)即可得到未来的一步预测值,若想要获得更远更多期的预测值,则可以逐步将预测值积累起来,相当于用预测值当作真实发生的值进行预测,这样的坏处是越往后可能越不准,以上这个过程的完整代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
import tensorflow as tf
from tensorflow.contrib import rnn
import matplotlib.pyplot as plt
from tensorflow.contrib.learn.python.learn.estimators.estimator import SKCompat
from matplotlib import style
import pandas as pd

'''读入原始数据并转为list'''
path = 'C:\\Users\\windows\\Desktop\\'

data = pd.read_csv(path+'AirPassenger.csv')

data = data.iloc[:,0].tolist()

'''自定义数据尺度缩放函数'''
def data_processing(raw_data,scale=True):
    if scale == True:
        return (raw_data-np.mean(raw_data))/np.std(raw_data)#标准化
    else:
        return (raw_data-np.min(raw_data))/(np.max(raw_data)-np.min(raw_data))#极差规格化

'''观察数据'''

'''设置绘图风格'''
style.use('ggplot')

plt.plot(data)

'''设置隐层神经元个数'''
HIDDEN_SIZE = 40
'''设置隐层层数'''
NUM_LAYERS = 1
'''设置一个时间步中折叠的递归步数'''
TIMESTEPS = 12
'''设置训练轮数'''
TRAINING_STEPS = 10000
'''设置训练批尺寸'''
BATCH_SIZE = 20




'''样本数据生成函数'''
def generate_data(seq):
    X = []#初始化输入序列X
    Y= []#初始化输出序列Y
    '''生成连贯的时间序列类型样本集,每一个X内的一行对应指定步长的输入序列,Y内的每一行对应比X滞后一期的目标数值'''
    for i in range(len(seq) - TIMESTEPS - 1):
        X.append([seq[i:i + TIMESTEPS]])#从输入序列第一期出发,等步长连续不间断采样
        Y.append([seq[i + TIMESTEPS]])#对应每个X序列的滞后一期序列值
    return np.array(X, dtype=np.float32), np.array(Y, dtype=np.float32)


'''定义LSTM cell组件,该组件将在训练过程中被不断更新参数'''
def LstmCell():
    lstm_cell = rnn.BasicLSTMCell(HIDDEN_SIZE, state_is_tuple=True)#
    return lstm_cell

'''定义LSTM模型'''
def lstm_model(X, y):
    '''以前面定义的LSTM cell为基础定义多层堆叠的LSTM,我们这里只有1层'''
    cell = rnn.MultiRNNCell([LstmCell() for _ in range(NUM_LAYERS)])

    '''将已经堆叠起的LSTM单元转化成动态的可在训练过程中更新的LSTM单元'''
    output, _ = tf.nn.dynamic_rnn(cell, X, dtype=tf.float32)

    '''根据预定义的每层神经元个数来生成隐层每个单元'''
    output = tf.reshape(output, [-1, HIDDEN_SIZE])

    '''通过无激活函数的全连接层计算线性回归,并将数据压缩成一维数组结构'''
    predictions = tf.contrib.layers.fully_connected(output, 1, None)

    '''统一预测值与真实值的形状'''
    labels = tf.reshape(y, [-1])
    predictions = tf.reshape(predictions, [-1])

    '''定义损失函数,这里为正常的均方误差'''
    loss = tf.losses.mean_squared_error(predictions, labels)

    '''定义优化器各参数'''
    train_op = tf.contrib.layers.optimize_loss(loss,
                                               tf.contrib.framework.get_global_step(),
                                               optimizer='Adagrad',
                                               learning_rate=0.6)
    '''返回预测值、损失函数及优化器'''
    return predictions, loss, train_op

'''载入tf中仿sklearn训练方式的模块'''
learn = tf.contrib.learn

'''初始化我们的LSTM模型,并保存到工作目录下以方便进行增量学习'''
regressor = SKCompat(learn.Estimator(model_fn=lstm_model, model_dir='Models/model_2'))

'''对原数据进行尺度缩放'''
data = data_processing(data)

'''将所有样本来作为训练样本'''
train_X, train_y = generate_data(data)

'''将所有样本作为测试样本'''
test_X, test_y = generate_data(data)

'''以仿sklearn的形式训练模型,这里指定了训练批尺寸和训练轮数'''
regressor.fit(train_X, train_y, batch_size=BATCH_SIZE, steps=TRAINING_STEPS)

'''利用已训练好的LSTM模型,来生成对应测试集的所有预测值'''
predicted = np.array([pred for pred in regressor.predict(test_X)])

'''绘制反标准化之前的真实值与预测值对比图'''
plt.figure()
plt.plot(predicted, label='预测值')
plt.plot(test_y, label='真实值')
plt.title('反标准化之前')
plt.legend()
plt.show()


'''自定义反标准化函数'''
def scale_inv(raw_data,scale=True):
    '''读入原始数据并转为list'''
    path = 'C:\\Users\\windows\\Desktop\\'

    data = pd.read_csv(path + 'AirPassenger.csv')

    data = data.iloc[:, 0].tolist()

    if scale == True:
        return raw_data*np.std(data)+np.mean(data)
    else:
        return raw_data*(np.max(data)-np.min(data))+np.min(data)


'''绘制反标准化之前的真实值与预测值对比图'''
plt.figure()
plt.plot(scale_inv(predicted), label='预测值')
plt.plot(scale_inv(test_y), label='真实值')
plt.title('反标准化之后')
plt.legend()
plt.show()

  以上就是本篇文章的全部内容,如有笔误或混淆不清之处,望指出。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码
时间序列预测在金融领域中扮演着举足轻重的角色,特别是在股票市场中。对于广大投资者和交易员而言,能够准确预测股票价格的变动趋势,不仅意味着能够在交易中做出更为明智的决策,还能够在风险管理中占据有利地位(点击文末“阅读原文”获取完整代码数据)。
拓端
2025/05/22
1330
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码
TensorFlow实战——RNN(LSTM)——预测sin函数
http://blog.csdn.net/u011239443/article/details/73650806
小爷毛毛_卓寿杰
2019/02/13
1.1K0
TensorFlow实战——RNN(LSTM)——预测sin函数
用 LSTM 做时间序列预测的一个小例子
问题:航班乘客预测 数据:1949 到 1960 一共 12 年,每年 12 个月的数据,一共 144 个数据,单位是 1000 下载地址 目标:预测国际航班未来 1 个月的乘客数 import numpy import matplotlib.pyplot as plt from pandas import read_csv import math from keras.models import Sequential from keras.layers import Dense from keras
杨熹
2018/04/03
8.8K0
用 LSTM 做时间序列预测的一个小例子
基于LSTM的股票预测模型_python实现_超详细
近年来,股票预测还处于一个很热门的阶段,因为股票市场的波动十分巨大,随时可能因为一些新的政策或者其他原因,进行大幅度的波动,导致自然人股民很难对股票进行投资盈利。因此本文想利用现有的模型与算法,对股票价格进行预测,从而使自然人股民可以自己对股票进行预测。 理论上,股票价格是可以预测的,但是影响股票价格的因素有很多,而且目前为止,它们对股票的影响还不能清晰定义。这是因为股票预测是高度非线性的,这就要预测模型要能够处理非线性问题,并且,股票具有时间序列的特性,因此适合用循环神经网络,对股票进行预测。 虽然循环神经网络(RNN),允许信息的持久化,然而,一般的RNN模型对具备长记忆性的时间序列数据刻画能力较弱,在时间序列过长的时候,因为存在梯度消散和梯度爆炸现象RNN训练变得非常困难。Hochreiter 和 Schmidhuber 提出的长短期记忆( Long Short-Term Memory,LSTM)模型在RNN结构的基础上进行了改造,从而解决了RNN模型无法刻画时间序列长记忆性的问题。 综上所述,深度学习中的LSTM模型能够很好地刻画时间序列的长记忆性。
全栈程序员站长
2022/09/30
4.3K0
基于LSTM的股票预测模型_python实现_超详细
LSTM时间序列预测及网络层搭建[通俗易懂]
最近看到一篇博客,是时间预测问题,数据和代码的原地址在这里, https://www.jianshu.com/p/5d6d5aac4dbd
全栈程序员站长
2022/07/23
1.1K0
LSTM时间序列预测及网络层搭建[通俗易懂]
LSTM时间序列预测
你可能经常会遇到这样的问题,给你一个数据集,要你预测下一个时刻的值是多少?如下图所示,这种数据往往并没有规律可言,也不可能用一个简单的n阶模型去拟合。老实说,以前我遇到这种问题都是直接上灰色模型,但是用的多了就感觉会有点问题。其它还有一些模型比方说ARAM、ARIRM我没有试过。这篇文章主要讲解用LSTM如何进行时间序列预测
mathor
2020/02/28
3.7K0
LSTM时间序列预测
基于tensorflow的LSTM 时间序列预测模型
递归神经网络(RNN)相对于MLP和CNN的主要优点是,它能够处理序列数据,在传统神经网络或卷积神经网络中,样本(sample)输入与输出是没有“顺序”概念的,可以理解为,如果把输入序列和输出序列重新排布,对整体模型的理论性能不会有影响。RNN则不同,它保证了输入和输出至少有一端是有序列特征的。
全栈程序员站长
2022/07/25
2K0
基于tensorflow的LSTM 时间序列预测模型
时间序列基于监督学习的LSTM模型为什么可以预测股票走势(附完整代码)
疫情期间,在家学习Python,调通了基于监督学习的LSTM神经网络预测模型代码,在一般代码的基础上,做了单步和多步通用版的改进。调通的代码附后,供各位大咖指正。
用户7017302
2020/03/01
3.9K0
开发 | 如何优雅地用TensorFlow预测时间序列:TFTS库详细教程
AI 科技评论按:本文作者何之源,原文载于知乎专栏AI Insight,AI 科技评论获其授权发布。 前言 如何用TensorFlow结合LSTM来做时间序列预测其实是一个很老的话题,然而却一直没有得到比较好的解决。如果在Github上搜索“tensorflow time series”,会发现star数最高的tgjeon/TensorFlow-Tutorials-for-Time-Series已经和TF 1.0版本不兼容了,并且其他的项目使用的方法也各有不同,比较混乱。 在刚刚发布的TensorFlow
AI科技评论
2018/03/13
9250
开发 | 如何优雅地用TensorFlow预测时间序列:TFTS库详细教程
基于LSTM的比特币价格预测模型(系列1)
设计并训练由输入/训练数据(比特币价格时间序列/60min)驱动的LSTM,预测一小时内的比特币价格,从而在整个测试数据样本中实现真实价格和预测价格之间的最小均方根误差(RMSE)。
量化投资与机器学习微信公众号
2020/04/13
4.1K0
深入LSTM神经网络的时间序列预测
RNN(循环神经网络)是一种节点定向连接成环的人工神经网络。不同于前馈神经网络,RNN 可以利用内部的记忆来处理任意时序的输入序列,即不仅学习当前时刻的信息,也会依赖之前的序列信息,所以在做语音识别、语言翻译等等有很大的优势。RNN 现在变种很多,常用的如 LSTM、Seq2SeqLSTM,还有其他变种如含有 Attention 机制的 Transformer 模型等等。这些变种原理结构看似很复杂,但其实只要有一定的数学和计算机功底,在学习的时候认认真真搞懂一个,后面的都迎刃而解。
算法进阶
2023/08/28
8360
深入LSTM神经网络的时间序列预测
使用Keras进行时间序列预测回归问题的LSTM实现
数据 数据来自互联网,这些数据用于预测航空公司的人数,我们使用LSTM网络来解决这个问题 关于此处模型构建,只对keras部分代码做重点的介绍
学到老
2019/01/25
6.8K0
使用Keras进行时间序列预测回归问题的LSTM实现
如何优雅地用TensorFlow预测时间序列:TFTS库详细教程
前言 如何用TensorFlow结合LSTM来做时间序列预测其实是一个很老的话题,然而却一直没有得到比较好的解决。如果在Github上搜索“tensorflow time series”,会发现star数最高的tgjeon/TensorFlow-Tutorials-for-Time-Series已经和TF 1.0版本不兼容了,并且其他的项目使用的方法也各有不同,比较混乱。 在刚刚发布的TensorFlow 1.3版本中,引入了一个TensorFlow Time Series模块,以下简称为TFTS)。TFT
用户1332428
2018/03/08
1.2K0
如何优雅地用TensorFlow预测时间序列:TFTS库详细教程
如何优雅地用TensorFlow预测时间序列:TFTS库详细教程
作者 | 何之源 前言 如何用TensorFlow结合LSTM来做时间序列预测其实是一个很老的话题,然而却一直没有得到比较好的解决。如果在Github上搜索“tensorflow time series”,会发现star数最高的tgjeon/TensorFlow-Tutorials-for-Time-Series已经和TF 1.0版本不兼容了,并且其他的项目使用的方法也各有不同,比较混乱。 在此前发布的TensorFlow 1.3版本中,引入了一个TensorFlow Time Series模块(源码地
AI科技大本营
2018/04/28
8650
如何优雅地用TensorFlow预测时间序列:TFTS库详细教程
精品教学案例 | 基于TensorFlow实现LSTM对股票收盘价走势的预测
本案例适合作为大数据专业TensorFlow深度学习实战课程的配套教学案例。通过本案例,能够达到以下教学效果:
数据酷客
2020/05/19
4.7K1
精品教学案例 | 基于TensorFlow实现LSTM对股票收盘价走势的预测
时间序列预测(二)基于LSTM的销售额预测
O:小H,Prophet只根据时间趋势去预测,会不会不太准啊 小H:你这了解的还挺全面,确实,销售额虽然很大程度依赖于时间趋势,但也会和其他因素有关。如果忽略这些因素可能造成预测结果不够准确 小O:那有没有什么办法把这些因素也加进去呢? 小H:那尝试下LSTM吧~
HsuHeinrich
2023/05/25
1.4K0
时间序列预测(二)基于LSTM的销售额预测
用 LSTM 做时间序列预测的一个小例子
问题:航班乘客预测 数据:1949 到 1960 一共 12 年,每年 12 个月的数据,一共 144 个数据,单位是 1000 下载地址(https://datamarket.com/data/set/22u3/international-airline-passengers-monthly-totals-in-thousands-jan-49-dec-60#!ds=22u3&display=line) 目标:预测国际航班未来 1 个月的乘客数 import numpy import matplo
用户1332428
2018/03/09
1.7K0
用 LSTM 做时间序列预测的一个小例子
lstm多变量时间序列预测(时间序列如何预测)
Now, we are familiar with statistical modelling on time series, but machine learning is all the rage right now, so it is essential to be familiar with some machine learning models as well. We shall start with the most popular model in time series domain − Long Short-term Memory model.
全栈程序员站长
2022/08/01
2.4K0
lstm多变量时间序列预测(时间序列如何预测)
Python人工智能 | 十四.循环神经网络LSTM回归案例之sin曲线预测
前一篇文章详细讲解了如何评价神经网络,绘制训练过程中的loss曲线,并结合图像分类案例讲解精确率、召回率和F值的计算过程。本篇文章将分享循环神经网络LSTM RNN如何实现回归预测,通过sin曲线拟合实现如下图所示效果。本文代码量比较长,但大家还是可以学习下的。基础性文章,希望对您有所帮助!
Eastmount
2022/03/30
1.2K0
Python人工智能 | 十四.循环神经网络LSTM回归案例之sin曲线预测
时间序列预测(三)基于Prophet+XGBoost的销售额预测
前面我们介绍了如何使用Prophet和LSTM,不知道你们发现了没有,前者似乎太简单了,后者呢好像又很复杂。那有没有什么很好的方法能很好的中和下呢?
HsuHeinrich
2023/05/25
1.4K0
时间序列预测(三)基于Prophet+XGBoost的销售额预测
推荐阅读
相关推荐
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验