时序预测_时序预测算法 - CSDN
精华内容
参与话题
  • (Python)时序预测的七种方法

    千次阅读 2018-03-29 13:58:52
    摘要:大多数人都听说过关于Cryptocurrency...时序模型是预测的一种方法。介绍大多数人都听说过关于Cryptocurrency,许多人也许会投资他们的加密货币。但是,投资这种不稳定的货币安全吗?怎样才能确保现投资这些硬...

    摘要: 大多数人都听说过关于Cryptocurrency,许多人也许会投资他们的加密货币。但是,投资这种不稳定的货币安全吗?怎样才能确保现投资这些硬币未来一定能带来稳定的收益呢?我们不能确定,但肯定能根据以前的价格产生一个近似值。时序模型是预测的一种方法。

    介绍

    大多数人都听说过关于Cryptocurrency,许多人也许会投资他们的加密货币。但是,投资这种不稳定的货币安全吗?怎样才能确保现投资这些硬币未来一定能带来稳定的收益呢?我们不能确定,但肯定能根据以前的价格产生一个近似值。时序模型是预测的一种方法。


    除了加密货币,还有许多重要的应用时序预测的领域,例如:销售预测,呼叫中心的通话量,太阳的活动,海潮,股市行为等等。

    目录

    • 理解问题描述和数据集
    • 安装库
    • 方法 1 –以简单的方式开始
    • 方法2 – 简单平均数
    • 方法3 – 移动平均数
    • 方法 4 –指数平滑法
    • 方法5 – Holt线性趋势法
    • 方法6 – Holt冬季季节法
    • 方法7 –综合自回归移动平均法(ARIMA)

    理解问题描述和数据集

    提供了涉及预测JetRail通勤人数的时序问题,一个新的高速铁路服务。我们提供了2年的数据,并利用这些数据预测未来7个月的通勤人数。

    在本文中,只使用训练数据集。


    从以上的报表上看到,我们有2年的按小时计的通勤数据(2012-2014),需要预估未来的通勤数量。

    在本文中,我构造子集和汇总数据集以便讲解不同的方法。

    • 构造数据集的子集 (2012/08 – 2013/12)
    • 为建模构造训练和测试文件。前14个月的数据被用作训练数据(2012/08 - 2013/10),后两个月的被用作测试数据(2013/11 - 2013/12)。
    • 每天汇总数据集。


    把数据(用于训练的和测试的)可视化,以了解在一段时间内是如何变化的。



    安装库(statsmodels

    用来进行时序预测的库是statsmodels。在应用很少的给定方法之前,需要安装一下。statsmodels可能已经安装在你的Python开发环境了,但它不支持的预测方法。我们将从存储库克隆一下并进行源码安装。按照如下步骤 :

    1.使用PIP冻结检查statsmodels是否已经安装在你的环境中;

    2.如果已经存在,使用“conda remove statsmodels” 删除;

    3. “git clone git://github.com/statsmodels/statsmodels.git”克隆statsmodels的存储库,在克隆前用“git init”初始化Git

    4.“cd statsmodels”进入到statsmodels目录;

    5.“python setup.py build”建安装文件;

    6.“python setup.py install”进行安装;

    7.退出bash/terminal

    8.重启bash/terminal,打开python并执行“from statsmodels.tsa.api import ExponentialSmoothing”进行验证;

    方法1: Naive方法开始

    考虑下面的曲线图:


    从图中我们可以看出,从一开始,硬币的价格是稳定的。大多时候我们都有一个在整个时间段都比较稳定的数据集。如果想预测第二天的价格,可以简单地用前一天的价格数据,估计第二天的价格。这种假定下一个期望点等于最后一个观测点的预测技术称为 Naive方法。


    现在我们采用Naive 方法来预测测试数据的价格。



    现在我们将计算均方根误差(RMSE)以检查测试数据集上模型的精度。


    可以从RMSE值和上面的图推断,Naive方法不适合变化频繁的数据集,它最适合稳定的数据集。

    方法简单均值法

    考虑下面的图。


    可以从图中推断,硬币的价格是以微小的幅度随机上升和下降的,平均值不变。很多时候,我们得到了一个数据集,虽然它在整个时间段内有一个较小的变化,但是每个时间段的平均值保持不变。在这种情况下,我们可以预测第二天的价格与之前每天的平均值相近。

    这种预测期望值等于所有观测点平均值的预测技术称为简单均值法。


    我们取前面已知的所有值,计算平均值,并将其作为下一个值。当然,它并不精确,而是稍微接近。作为一种预测方法,实际情况是这个技术最有效。



    现在将计算均方根误差检查模型的准确性


    可以看出这种模式没有提高我们的分数。因此,我们能从得分推断,这种方法在每个时间段的平均值保持不变的时候效果最好。虽然Naive法的得分优于均值法,但这并不意味着Naive法在所有数据集上都优于均值法。

    方法移动均值法

    考虑下面曲线图,


    从图中可以推断,硬币的价格在一段时间以前大幅度地提高了,但现在是稳定的。很多时候,我们得到了一个数据集,其中一段时间以前对象的价格/销售量急剧增加/急剧下降。使用初期的价格会对下一个时间段的预测产生很大影响。所以相对于简单均值法的改进,只计算最后几个时间段的平均价格。显然,只有最近的值才是重要的。这种利用时间窗计算平均值的预测技术称为移动均值法。

    利用一个简单的移动均值模型,根据一个不变的有限数p的平均值来预测时间序列中的下一个或多个值。因此,对所有的 i > p。


    移动均值法实际上是非常有效的,尤其是当你给序列选择正确的p值时。



    我们只选择了过去2个月的数据。现在将计算均方根误差来检查模型的准确性。


    可以看到,Naive方法对于数据集要优于均值法和移动均值法。现在来看一下简单指数平滑法,看看它是如何执行的。

    移动均值法的改进方法——加权移动均值法。在上述移动均值法中,我们同样权衡过去的N个观测值。但我们可能遇到的情况是,过去的每一次观察都以不同的方式影响预测。这种以不同的方式权衡过去观测值的技术称为加权移动均值技术。

    加权移动均值是一个移动平均值,在滑动窗口的值中赋予不同的权重。


    选择窗口的大小,需要一个权重列表。例如,如果选择[ 0.40,0.25,0.20,0.15 ]作为权重,将分别给出40%,25%,20%和15%。

    方法简单指数平滑法

    在理解了上述方法之后,可以注意到,简单均值法和加权移动均值法是完全相反的。我们需要在这两个方法之间采取某种方法,这两个方法在用不同的方式权衡数据点的同时要考虑所有数据。这种技术称为简单指数平滑法。预测是用加权平均来计算的,之前观测值的权重是指数递减的,最小的权重与最早的观测值相关:


     0≤ α ≤1是参数。

    先一步预测时间T + 1是一个序列中的所有观测值的加权平均值Y1,…,YT。权重下降的速率由参数α决定。

    如果观察足够长的时间,你会看到,期望ŷx是α⋅YT和(1−α)⋅ŶT-1的和。

    也可以写成 :


    所以基本上我们已经有了一个1−α和α的加权移动平均值:。

    可以看到,1−α乘以之前预期的表达递归的值ŷx−1。这就是为什么这种方法被称为Exponential。在时间t + 1的预测等于最近观察值yt 和最近预测值 ŷ t|t−1之间的加权平均值。



    现在将计算均方根误差检查模型的准确性。


    可以看到,用alpha值为0.6的简单指数模型形成一个更好的模型,到现在为止,生成一个更好的模型。

    方法 5 霍尔特线性趋势法

    我们现在已经学会了几种预测方法,但可以看到,这些模型在变化较大数据上不是太好。


    趋势是在一段时间内观察到的价格的一般模式。如Naive方法会假定最后两点之间的趋势将保持不变,或者可以在所有点之间的平均斜率得到一个平均趋势,使用移动趋势均值或指数平滑法。

    但我们需要一种方法,能准确无误地绘制趋势图。考虑数据集趋势的这种方法称为霍尔特线性趋势法。每个时间序列的数据集可以被分解为不同趋势的组成部分,季节性和剩余。任何跟随趋势的数据集都可以使用Holt线性趋势法进行预测。


    从图表可以看出,该数据集呈增长趋势。因此,可以用Holt的线性趋势来预测未来的价格。

    霍尔特扩展简单指数平滑方法,允许有趋势的数据预测。它只适用于两个等级(多个序列的平均值)和趋势的指数平滑方法。用数学符号表示,现在需要三个等式:一个用于等级,一个用于趋势,一个结合等级与得到预测值Ŷ的趋势


    我们在上述算法中预测的值称为等级。在上面的三个等式中,可以注意到我们增加了等级和趋势来生成预测等式。

    作为简单指数平滑法,这里的等级等式表明它是一个观察数的加权平均值和样本内前步预测。趋势等式表明,这是一个基于ℓ(t)−ℓ(t−1)和和b(t−1)的时间t的预测趋势的加权平均值。

    我们将添加这些等式来生成预测等式。也可以通过乘以趋势和等级而不是增加,来生成乘法预测等式。当趋势呈线性上升或下降时,则采用加法等式,而当趋势呈指数下降时,则采用乘法等式。实践表明乘法是一种更稳定的预测,但加性方法更容易理解。




    现在将计算均方根误差检查模型的准确性


    方法6 Holt-Winters方法

    考虑一个位于山上的旅馆。在夏季期间有很高的访问量,而今年余下时间的游客相对较少。因此,业主的利润在夏季比其他季节都要好得多。而且每年都一样,是季节性的。数据集在一段固定的时间间隔内显示出相似性。


    源码

    由于季节性因素,使用霍尔特冬季方法将是其它模型中最好的选择。霍尔特-温特斯季节性方法包括预测等式和三个平滑等式-一个似乎等级ℓt,一个是趋势bt,一个是季节组成部分 st,平滑参数α,β和γ。


    源码

    其中S是季节性周期的长度,0≤α≤1, 0≤β≤1和0≤γ≤1。



    现在将计算均方根误差检查模型的准确性


    从图中可以看出,正确的趋势和季节性的映射提供了一个更好的解决方案。

    方法7 ARIMA

    另一个在数据科学家中非常流行的时间序列模型是ARIMA。它代表自回归积分移动平均(Autoregressive Integrated Moving average)。指数平滑模型是基于对趋势和季节性数据的描述,ARIMA模型的目的是描述数据之间的相关性。ARIMA的改进考虑到数据集的季节性,就像Holt-Winters方法一样。



    现在将计算均方根误差检查模型的准确性。


    可以看到,使用季节性ARIMA生成一个类似Holt’s Winter的解决方案。我们选择的参数为ACF和PACF图。

    可以在RMSE分数的基础上比较这些模型。


     以上为译文。

    文章原标题《7 methods to perform Time Series forecasting (with Python codes)

    译者:Mags,审校:袁虎。

    原文链接

    阅读更多干货好文,请关注扫描以下二维码:


    展开全文
  • 使用Tensorflow进行时序预测(TFTS)

    千次阅读 2017-11-28 21:18:28
    时序预测是一个经典的话题,应用面也很广; 结合LSTM来做也是一个效果比较好的方式. 这次准备使用TF来进行时序预测,计划写两篇: 1. 使用Tensorflow Time Series模块 2. 使用底层点的LSTM Cell这就是第一篇啦,...

    时序预测是一个经典的话题,应用面也很广; 结合LSTM来做也是一个效果比较好的方式.
    这次准备使用TF来进行时序预测,计划写两篇:
    1. 使用Tensorflow Time Series模块
    2. 使用底层点的LSTM Cell

    这就是第一篇啦,Time Series Prediction via TFTS.
    来源于此: TFTS介绍,略有加工整理,侵删!


    TFTS

    Tensorflow Time Series(TFTS)模块是TF1.3版本中引入的,官方是这么介绍的:

    TensorFlow Time Series (TFTS) is a collection of ready-to-use classic models (state space, autoregressive), and flexible infrastructure for building high-performance time series models with custom architectures.

    地址: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/timeseries,
    里面给出了相关的examples.

    主要提供三种预测模型:
    AR、Anomaly Mixture AR、LSTM

    Examples

    读入数据

    你的数据可以是两种:
    1. numpy array
    2. from a CSV file

    对于第一种: TFTS中可以使用NumpyReader

    x = np.array(range(1000))
    noise = np.random.uniform(-0.2, 0.2, 1000)
    y = np.sin(np.pi * x / 100) + x / 200. + noise
    
    data = {
        tf.contrib.timeseries.TrainEvalFeatures.TIMES: x,
        tf.contrib.timeseries.TrainEvalFeatures.VALUES: y,
    }
    
    reader = NumpyReader(data)

    data是一个dict,’TIMES’和’VALUES’就是字符串的’times’和’values’,所以理论上你写成:
    data = {'times':x, 'values':y},也是可以的.

    对于第二种: TFTS中提供了CSVReader

    csv_file_name = './data/period_trend.csv'
    reader = tf.contrib.timeseries.CSVReader(csv_file_name)

    获得batch数据

    对于以上两种Reader(CSVReader和NumpyReader),TFTS提供了对应的read_full()方法,返回的是时间序列的Tensor,read_full()产生读取队列,所以需要启动queue_runner然后才能run出值.

    with tf.Session() as sess:
        data = reader.read_full()
        coord = tf.train.Coordinator()
        threads = tf.train.start_queue_runners(sess=sess, coord=coord)
        print(sess.run(data))
        coord.request_stop()

    获取batch数据也很简单: TFTS提供RandomWindowInputFn

    train_input_fn = tf.contrib.timeseries.RandomWindowInputFn(reader, batch_size=4, window_size=16)

    tf.contrib.timeseries.RandomWindowInputFn会在reader的所有数据中,随机选取窗口长度为window_size的序列,并包装成batch_size大小的batch数据。换句话说,一个batch内共有batch_size个序列,每个序列的长度为window_size.

    AR Model

    AR(Auto Regression)是统计学上的方法,可以参考wiki: https://en.wikipedia.org/wiki/Autoregressive_model,主要的思想是假设当前值与前面出现的值是线性关系.
    autoregressive model specifies that the output variable depends linearly on its own previous values and on a stochastic term (an imperfectly predictable term).

    对于AR模型:TFTS提供了ARRegrerssior

    ar = tf.contrib.timeseries.ARRegressor(
            periodicities=200, input_window_size=30, output_window_size=10,
            num_features=1,
            loss=tf.contrib.timeseries.ARModel.NORMAL_LIKELIHOOD_LOSS)
    

    在这里,我们总的window_size为40,input_window_size为30,output_window_size为10,也就是说,一个batch内每个序列的长度为40,其中前30个数被当作模型的输入值,后面10个数为这些输入对应的目标输出值。最后一个参数loss指定采取哪一种损失,一共有两种损失可以选择,分别是NORMAL_LIKELIHOOD_LOSS和SQUARED_LOSS. num_features参数表示在一个时间点上观察到的数的维度。我们这里每一步都是一个单独的值,所以num_features=1。
    还有一个比较重要的参数是model_dir,它表示模型训练好后保存的地址,如果不指定的话,就会随机分配一个临时地址.

    训练、验证(对训练集进行)、测试:

    ar.train(input_fn=train_input_fn, steps=1000)
    
    evaluation_input_fn = tf.contrib.timeseries.WholeDatasetInputFn(reader)
    # keys of evaluation: ['covariance', 'loss', 'mean', 'observed', 'start_tuple', 'times', 'global_step']
    evaluation = ar.evaluate(input_fn=evaluation_input_fn, steps=1)
    
    (predictions,) = tuple(ar.predict(
            input_fn=tf.contrib.timeseries.predict_continuation_input_fn(
                evaluation, steps=250)))  #预测之后的250步

    结果大概是这样:

    array_result

    红色是预测的那一段.

    LSTM

    必须使用TF最新的开发版的代码,就是要保证’rom tensorflow.contrib.timeseries.python.timeseries.estimators import TimeSeriesRegressor’可以导入成功.

    estimator = ts_estimators.TimeSeriesRegressor(
          model=_LSTMModel(num_features=1, num_units=128),
          optimizer=tf.train.AdamOptimizer(0.001))

    _LSTMModel是一个class,可以直接copy官方给的代码.

    接下来的训练、验证、测试和上面的AR模型是一样的.

    结果大概是这样的:
    LSTM_result


    自己只把关键点写出来了,有需要的可以去看原文,原文比较详细.
    代码地址: https://github.com/hzy46/TensorFlow-Time-Series-Examples

    展开全文
  • 简单模型在“小样本 + 简单模式”的数据...与常见的回归预测模型不同,输入变量之间的“序列依赖性”为时间序列问题增加了复杂度; 所以把它等价于线性非线性回归还是不行,主要是他需要从时间序列找到关系。。。 ...

    简单模型在“小样本 + 简单模式”的数据集上更容易获得稳健的结果;
    与常见的回归预测模型不同,输入变量之间的“序列依赖性”为时间序列问题增加了复杂度;
    所以把它等价于线性非线性回归还是不行,主要是他需要从时间序列找到关系。。。

    展开全文
  • 传统的时序模型预测

    千次阅读 2019-08-11 23:28:50
    周五听了一讲报告,报告中老师讲述了传统的时序模型预测问题,因为认真的记录了笔记,所以利用今天时间整理出来,供以后学习作参考。 传统的时序模型预测问题一共有8类模型: 1)平滑法 平滑法常用于趋势分析和预...

     

    1)平滑法

    2)趋势拟合法

    3)组合模型

    4)AR模型

    5)MA模型              

    6)ARMA模型

    7)ARIMA模型

    8)ARCH模型和GARCH模型


    周五听了一讲报告,报告中老师讲述了传统的时序模型预测问题,因为认真的记录了笔记,所以利用今天时间整理出来,供以后学习作参考。

    传统的时序模型预测问题一共有8类模型:

    1)平滑法

    平滑法常用于趋势分析和预测,利用修匀技术,削弱短期随机波动对序列的影响,视序列平画画。有两种平滑方法:移动平滑法和指数平滑法。

    移动平滑法公式:

                                                   x_{t}=(x_{t-1}+x_{t-2}+x_{t-3}+..x_{t-p})/ p

    利用前t时刻的前p个时刻的平均值,来预测t时刻的值。

    指数平滑法:指数平滑法是在移动平均法基础上发展起来的一种时间序列分析预测法

    指数平滑法公式:

                                                        F_{t}=\alpha x_{t-1}+(1-\alpha )F_{t-1}

    F_{t}指的是这一时刻的预测值,x_{t-1}是上一时刻的真实值,F_{t-1}是上一个时刻的预测值,\alpha为一个权重系数。一般情况下F_{t-1}的初值取x_{1}或者前k个值的平均值。

    指数平滑法分为:一阶平滑法、二阶平滑法和三阶平滑法。

    上面公式属于一阶平滑法,其具体计算如下:

    取F的初值为x1,x_{2}=0.3*203.8+0.7*203.8,​​​​​​x_{3}=0.3*203.8+0.7*214.1以此类推。

    其他平滑法可以参考:https://www.doc88.com/p-50886822041.html

    2)趋势拟合法

    趋势拟合法把时间作为自变量,相应的序列观察值作为因变量,建立回归模型序列的特征,可分为线性拟合和曲线拟合。

    简单的线性拟合公式就是我们常见的y=ax+b的形式,也有一些指数拟合的方法(曲线拟合)y=a*b^{t}

    3)组合模型

    时间序列的变化主要受到长期趋势(T)、季节变动(S)、循环变动(C,也叫周期变动)和不规则变动(\varepsilon)这4个因素的影响。根据序列的特点,可以构建加法模型和乘法模型。

    加法模型:x_{t}=T_{t}+S_{t}+C_{t}+\varepsilon _{t}

    乘法模型:x_{t}=T_{t}*S_{t}*C_{t}*\varepsilon _{t}

    也可以把加法模型和乘法模型混合使用。

    4)AR模型

    以 前p期的序列值x_{t-1},x_{t-2},..,x_{t-p}为自变量,随机变量x_{t}的取值为因变量,建立的多元线性回归模型。

    模型表示如下:

                                                    x_{t}=\varphi_{0}+\varphi_{1}x_{t-1}+...+\varphi_{p}x_{t-p}+\varepsilon_{t}

    认为r时刻主要受前p个时刻的影响,其中\varphi_{0},...,\varphi_{p}为权重参数,\varepsilon_{t}是一个误差项是抢钱的随机干扰,是均值为0的白噪声序列。

    如何决定p是一个关键问题,一般情况下通过自相关系数(ACF)和偏自相关系数(PACF)决定。

    AR模型性质如下:

    均值、方差 常数(保证序列平稳性)
    自相关系数 拖尾
    偏自相关系数 p阶截尾

    ACF、PACF、拖尾和截尾稍后补充。

    5)MA模型

    t时刻的取值x_{t}与前各个时间的序列值无关,但是与前q期的随机扰动\delta_{t-1},\delta_{t-2},...,\delta_{t-q},有关,以此来建立线性回归模型。

                                  x_{t}=u+\varepsilon_{t}-\theta _{1}\varepsilon_{t-1}-\theta _{2}\varepsilon_{t-2},...,-\theta _{q}\varepsilon_{t-q}

    \varepsilon_{t}是当期的随机干扰,为零均值的白噪声序列,u是序列{X_{t}}的均值。

    MA模型性质如下:

    均值、方差 常数(保证序列平稳性)
    自相关系数 q阶截尾
    偏自相关系数 拖尾

    一般情况下,q也是通过ACF和PACF确定。

    6)ARMA模型

    t时刻的取值x_{t}不仅与前p期的序列有关,还与前q阶的随机扰动有关。

                                   x_{t}=\varphi_{0}+\varphi_{1}x_{t-1}+...+\varphi_{p}x_{t-p}+\varepsilon_{t}-\theta _{1}\varepsilon_{t-1}-\theta _{2}\varepsilon_{t-2},...,-\theta _{q}\varepsilon_{t-q}

    \varepsilon_{t}是当期的随机干扰,为零均值的白噪声序列,特别的当p=0时,是MA(q)模型;当q=0时,是AR(p)模型。

    ARMA模型性质如下:

    均值、方差 常数(保证序列平稳性)
    自相关系数 拖尾
    偏自相关系数 拖尾

    一般情况下,q也是通过ACF和PACF确定。

    7)ARIMA模型

    许多非平稳序列差分后会显示出平稳序列的性质,称这个非平稳序列为差分平稳序列。对差分序列就可以使用ARIMA模型进行拟合,ARIMA模型一共有三个参数(p,d,q),p,q根据上表确定,d为差分阶数。

    差分法一般有一阶差分,二阶差分等,所谓差分就是用后一个数去减前面一个数得到的值,如一个序列为

    x_{1},x_{2},x_{3},x_{4},x_{5}

    一阶差分为:x_{2}-x_{1},x_{3}-x_{2},x_{4}-x_{3},x_{5}-x_{4}

    二阶段差分为:x_{3}-x_{1},x_{4}-x_{2},x_{5}-x_{3}

    8)ARCH模型和GARCH模型

    ARCH模型能够准确地模拟时间序列变量的波动性变化,适用于序列具有异方差行并且异方差函数短期自相关。

    GARCH模型称为广义ARCH模型,是ARCH模型的拓展,相对于ARCH模型,GARCH模型及其衍生模型更能反映实际序列中的长期记忆、信息的非对称性等性质。

    补自相关性和偏自相关性知识:

    两个变量X与Y的协方差为:cov(X,Y)=E[(X-u)(Y-u)]

    相关系数为:\rho(X,Y)=\frac{cov(X,Y))}{\sigma_{X}\sigma_{Y}}

    一个变量x_{t}的协方差为:cov(X_{t},X_{t-k})=E[(X_{t}-u_{X_{t}})(X_{t-k}-u_X_{t-k})]

    自相关系数为:\rho(X_{t},X_{t-k})=\frac{cov(X_{t},X_{t-k})}{\sigma_{X_{t}}\sigma_{X_{t-k}}}

    平稳AR(p)模型的自相关系数呈指数的速度衰减。始终有非零取值,不会在k大于某个常数之后就恒等于0,这个性质就是平稳AR(p)模型的自相关系数p具有拖尾性。

    对于一个平稳(p)模型,求出延迟k期自相关系数p时,实际上得到的并不是X_{t}X_{t-p}之间单纯的相关关系,因为X_{t}同时还会受到中间p-1个随机变量的影响。所以自相关系数p里实际上掺杂了其他变量对X_{t}X_{t-p}的相关影响,为了单纯的测出X_{t-p}X_{t}的影响,引进偏自相关性系数的概念。

    展开全文
  • 时序预测

    千次阅读 2019-07-25 15:06:20
    单实例单指标过去3个月是10万,单region有1万实例,单region单指标是10亿数据,6节点集群, 时间序列可以分为平稳序列,即存在某种周期,季节性及趋势的方差和均值不随时间变化的序列(平稳就是围绕着一个常数上下...
  • 时序预测之一_概述

    千次阅读 2018-03-15 11:42:47
    1. 说明 前一段参加了天池的“盐城汽车上牌量预测“比赛。第一次面对大规模的时序问题,从比赛的过程,到赛后...2. 问题描述 上牌量预测是一个典型的时序问题,且数据简单清晰,以复赛A榜数据为例,它提供了前3年...
  • 再谈数据挖掘——时序预测初探

    千次阅读 2016-12-01 14:23:48
     1.... ... 先来看两个例子,下面两幅图展示了百度在趋势预测方面的应用案例,一个是世界杯期间的... 这两幅图代表了大数据环境下趋势预测的典型场景,即事件预测和时序预测,本文重点关注第二幅图中的场景,即与
  • prophet易用性,你利用Prophet可以直接通过修改季节参数来拟合季节性,修改趋势参数来拟合趋势信息,指定假期来拟合假期信息等等。 本质上讲,Prophet是由四个组件组成的自加性回归模型: 分段线性或逻辑增长函数...
  • 文章发布于公号【数智...无论我们是想预测金融市场的趋势还是用电量,时间都是我们模型中必须考虑的一个重要因素。例如,预测一天中什么时候会出现用电高峰是很有趣的,可以以此为依据调整电价或发电量。 输入...
  • 基于LSTM的时序数据预测

    千次阅读 2019-09-02 21:27:58
    1. project的文件基本结构 2. project配置文件config.py path_to_dataset = '../my_data/international-airline-passengers.csv' split_rate = 0.9 infer_seq_length = 10 # 用于推断的历史序列长度 ...
  • 基于WEKA实现时间序列的预测

    千次阅读 2016-04-07 23:02:16
    时序预测是一项应用非常广的技术,如股票预测,天气预测等。 然而时序预测也是一项比较难的地方,主要是短期预测可能还比较准,而对一段时间的预测则会比较难。 在学习时序预测过程中,先看了WEKA的功能。...
  • 比较喜欢的一个外文博客,mark一下 https://machinelearningmastery.com/blog/
  • 基于时间序列的用户行为预测

    千次阅读 2015-08-24 10:31:20
    最近老师给了一篇顶会的论文《Modeling and Predicting Behavioral Dynamics on the Web》,让我实现论文里提到的用户行为预测的方法。通过该论文掌握基本的时间序列预测模型、参数估计方法以及论文中新提出的动态...
  • 这篇博客衔接上一篇博客: Holt-Winters模型原理分析及代码实现(python),我们在三次指数平滑的基础上,来进一步讨论下对时序数据的预测。 LSTM原理分析(参考博文:Understanding LSTM Networks) Long Short ...
  • Sean Ankenbruck,Zencos贪心科技编译时间序列预测是一个易于使用,成本较低的方案,它可以提供强大的解决问题能力。这篇文章将介绍建立一个质量模型的三个基本步骤。这篇文章将围绕如何构建一个时间序列模型,并将...
  • 转至:https://blog.csdn.net/wangyanbeilin/article/details/81350683
  • 用于时序数列预测的 Elman神经网络

    万次阅读 2017-09-02 22:42:13
    时序数列预测算法 ARIMA 以及 ELman Neural Network , tensorflow TFTS
  • 最近工作有这样一个需求:给定十几个时序序列,判断出这个序列的趋势(上升、下降或平稳)。最开始肯定是想到,直接线性拟合斜率大小来判断呗,但是业务部门的同事说他们不止看整体斜率还看局部特征什么的总之很感性...
  • ARIMA 全称为自回归积分滑动平均模型(Autoregressive Integrated Moving Average Model,简记ARIMA)。核心函数是ARIMA(p,d,q)称为差分自回归移动平均模型,AR是自回归, p为自回归项; MA为移动平均,q为移动平均...
  • 时序预测之三_傅立叶和小波变换

    千次阅读 2018-03-28 19:47:18
    1. 说明 用傅立叶变换预测时序数据,原理是把时域数据转换到频域,再转换回来.python的numpy和scipy里面都有现成的转换工具fft()和ifft(),但使用时会遇到一个问题:比如25天的数据转到频域再转回时域,还是25天,...
1 2 3 4 5 ... 20
收藏数 16,198
精华内容 6,479
关键字:

时序预测