精华内容
下载资源
问答
  • 在给时间一点时间
    千次阅读
    2021-07-03 13:04:40

        为了避免win10频繁的锁屏,故把Win10的锁屏时间设置的大一点,比如2个小时,同时也把屏保时间设置为2个小时。

    1、设置锁屏时间

        右击桌面的空白处 —> 个性化 ----> 锁屏界面 —>屏幕超时设置。

    图(1) 在【个性化】设置里,点击"屏幕超时设置"

    图(2) 设置锁屏时间2小时,每隔4小时才随眠

    2、设置屏保时间

        右击桌面的空白处 —> 个性化 ----> 锁屏界面 —>屏幕保护程序设置。

    图(3) 设置屏保时间间隔为2小时

    更多相关内容
  • 时间序列】时间序列数据的缺失填补方法总结

    万次阅读 多人点赞 2021-05-21 00:16:01
    这里与时间序列的预测有一点相似,不同的是,时间序列预测中我们看不到所要预测点后面的数据,而时序补缺中,我们可以分析缺失点前后的数据,从而更精准的对缺失数据进行填充。 数据填充基本分为统计方式填充与机器...

    在前几次分享中我们知道,很多时序算法都依赖完整的时序数据进行建模,许多业务也需要数据保持完整性,以更好地进行可视化与分析。然而在真实场景中,由于采集能力或网络传输的原因,时序数据常常会有缺失、断点的情况。如何处理这些有缺失的时间序列呢?

    图 | 两种不同类型的时序数据缺失

    有关时间序列的补缺工作大体上分为:删除填充这两类。删除所考虑的不是进行填补,而是将缺失值作为特征之一输入到时序模型,例如异常检测,行为分析等;而填充是找到时序变化的规律,将值补充进去,分为统计方式填充机器学习填充两种方式。

    本文就上面时序补缺的两大类方向整理相关工作,供大家阅读。

    01

    缺失数据删除

    最直接的缺失数据处理的方式,就是直接忽略这些缺失值,简称为直接删除法,该方法常用在离散型的时间序列处理中,比如用户购物行为序列,事件序列等,这类序列数据没有固定的采集间隔,一般会把数据点之间的间隔时间作为特征进行分析。

    图 | 融入时间间隔信息的LSTM: TLSTM[1] (KDD 2017)

    比如上图所展示了TLSTM模型,来自KDD 2017年的工作,其将数据之间的间隔作为特征进行输入。TLSTM中专门设计了一种新的门结构对这种间隔信息进行加权聚合。

    当然,该类方法可能会舍弃数据中的一些重要信息,在监控/IoT/风控等这种稳定性要求高的业务中,不能适用,因为每个数据点所代表的信息都很重要。

    02

    缺失数据填补

    将缺失的数据删除一般只适用于少部分对数据完整度要求不高的场景,大部分场景(例如监控、安全等)需要我们尽可能将缺失的数据填充。数据填充需要我们找到时间序列一定的变化规律,从而将值补充进去。这里与时间序列的预测有一点相似,不同的是,时间序列预测中我们看不到所要预测点后面的数据,而时序补缺中,我们可以分析缺失点前后的数据,从而更精准的对缺失数据进行填充。

    数据填充基本分为统计方式填充机器学习填充两种方式。

    统计方式填充

    a

    基于统计学的填充方法是时间序列补缺中常用的方法,其计算复杂度低,易操作,在许多精度要求不高的业务场景中比较适用。

    就近填充

    就近填充包括:前推法LOCF,用缺失之前的最后一次观测值填补;与后推法NOCB, 使用缺失值后面的观测值进行填补。这个方法是时序当中最基本的方法。

    特征值填充

    特征值填充包括:均值、中值、常用值等。这类方法计算快,进行简单的统计即可实现数据的填补。其一般直接忽略数据的时序信息假定时序数据里面基本没有很强趋势性。

    线性插值

    这个方法历史悠久。其假定时序之间变动有很强的趋势,通过拟合数据的趋势变化,进而进行填补。早期天文学缺失数据都用这个方法。线性插补的方法包括一元线性回归,多元线性回归,岭回归等,有关方法可以参考之前的文章:《TS技术课堂 | 时间序列回归》

    季节性+线性插值

    经济数据或者季节波动数据,常常不符合简单的线性变化强假设。对这样的数据进行补缺,一般的线性插值法效果比较差。这里需要模型同时捕捉时序数据的季节性和总体趋势性,进而对数据的演变模式更好的拟合,实现缺失值数据的补充。

    除了这些统计方法, 一般来说每个领域里面缺失值的填补还要借鉴专业知识来判断。比如以国家军费缺失数据为例,如果你知道因为战乱带来的缺失。那么战时数据比和平年代数据就更合适,很简单就近填补。

    机器学习填充

    b

    随着计算能力的大幅提升,现今许多的场景下的时间序列补缺都采用了机器学习的方式,常见的方法包括基于最近邻方法(KNN),循环神经网络(RNN),随机森林和矩阵分解的缺失值填充算法。

    有监督数据填充

    这类的方法的本质是以缺失点附近的数据作为特征,预测缺失点的数据,通过海量的历史数据中挖掘相似的变化模型,从而进行更精准的数据填充。包括:

    • KNN:找到缺失点附近数据最相似的若干个历史数据点,对缺失值进行填补

    • RNN:通过循环神经网络拟合时序数据的变化趋势,对缺失数据进行填补。这里一般多使用双向RNN

    • 随机森林:这里以缺失点附近的数据作为特征,缺失数据作为要预测的值,在海量数据中训练一个高拟合随机树,对缺失点进行预测。

    • 时序生成:近些年随着生成对抗网络(GAN)的兴起,许多方法开始尝试做时间序列的生成,通过生成模型捕捉时间序列的分布特征,对时序数据进行再生成,进而填补数据。

    多值插补

    多值插补是近些年兴起的时序数据补缺方法,其主要应用于包括时空数据在内的多维时间序列问题。其补全数据不仅只关注自身的时序演变,同时关注相邻时序,特别是有影响关系的时序指标之间的影响。例如在交通中,某一路段的交通量与其上游、下游路段的交通量直接相关。这类方法依赖于缺失数据不同属性间关系,寻找最类似样本,对于突发情况下的数据丢失,异常数据点(离群点)的补全有更好的适应性。

    • 矩阵分解:不同的时间序列之间往往相互关联,通过矩阵分解等方法学习时序矩阵的整体特征,对时间特性矩阵进行低秩逼近,从而修补缺失数据。该类方法计算复杂度低 , 可以处理较大规模的数据。

    图 | 时序正则化矩阵分解: TRMF[2](NeurIPS 2016)

    • 组合分析:不同学科的数据补缺可能都有默认或者建议的方法,比如社会学或者人口学对于无应答的问卷数据,就是假定用类似用户数据进行填补。很多的场景下的数据填补需要给出填补数据的合理性。面对这样的情况,矩阵分解这类方法难以给出直观的解释。因此,近年来一些方法考虑分析多源时序数据实体之间的外在属性,构建可解释的关联关系,组合多源时序及其关系进行数据的填补。

    图 | 基于社群关系的电力系统时间序列补缺[3](WWW 2019)

    上图所示的WWW 2019的工作,其基于用户的邻里关系,关联不同用户的用电数据,对缺失的数据进行填补。

    03

    开源工具

    开源社区有许多优秀的项目可以帮助我们对缺失数据进行补全。这里简单为大家列举若干热门的项目:

    • https://sklearn.org/modules/generated/sklearn.preprocessing.Imputer.html

    Sklearn实现了多种基于统计方法的缺失数据补全算法

    • https://github.com/amices/mice

    该仓库实现了基于链式方程法的多维时序补缺算法

    • https://github.com/stekhoven/missForest

    该仓库实现了基于随机森林的一种非参数混合类型补缺算法

    • https://github.com/cran/softImpute

    该仓库实现了通过迭代软阈值SVD的完成矩阵进行补缺的算法

    • https://github.com/zjunet/STI

    该仓库实现了基于社群关系进行多源时间序列补缺的算法

    • https://github.com/xinychen/transdim

    该仓库实现了当前主流的基于矩阵分解的时间序列缺失值填充算法和预测算法

    • ...

    04

    总结

    时间序列数据的补缺有很多不同的方法。在进行补缺之前,第一步需要我们对缺失的性质做出判断:如果是Missing at Random还是Missing Not at Random,一般前者删除,后者填充。但是填充不一定能带来更好结果,要先自己根据缺失比例和原因进行判断。

    再者,如果你对数据生成机制很熟悉的情况下,可能一些简单方法就可以实现很好的数据补缺。对于本身纯粹依赖算法,不能给出解释机制的时间序列补缺是不能完全信服的,因为缺失本身表明这些样本信息不足。这里常常需要增加专业知识的判断,因为专业知识判断就相当于额外增补信息。

    参考

    [1] Inci M. Baytas, Cao Xiao, Xi Zhang, Fei Wang, Anil K. Jain, and Jiayu Zhou. Patient Subtyping via Time-Aware LSTM Networks. KDD 2017.

    [2] Yu, H. F., Rao, N., & Dhillon, I. S.Temporal regularized matrix factorization for high-dimensional time series prediction. NeurIPS 2016.

    [3] Zongtao, L; Yang, Y; Wei, H; Zhongyi, T; Ning, L and Fei, W. How Do Your Neighbors Disclose Your Information: Social-Aware Time Series Imputation. WWW 2019

    END

    公众号:AI蜗牛车

    保持谦逊、保持自律、保持进步

    个人微信

    备注:昵称+学校/公司+方向

    如果没有备注不拉群!

    拉你进AI蜗牛车交流群

    展开全文
  • 时间序列分析之相关性

    万次阅读 多人点赞 2019-02-20 17:27:27
    两种时间序列的相关性 方差 (Variance) 设随机变量X的均值 E(X) = m,则描述 X 的取值和它的均值 m 之间的偏差程度大小的数字特征就是方差。 但是不能直接用 E(X - m) 来表示方差,因为 E...

    目录

    方差 (Variance)

    相关系数 (Correlation)

    自相关/序列相关 (Autocorrelation or Serial Correlation)

    两种时间序列的相关性


    方差 (Variance)

    设随机变量X的均值 E(X) = m,则描述 X 的取值和它的均值 m 之间的偏差程度大小的数字特征就是方差。

    但是不能直接用 E(X - m) 来表示方差,因为 E(X - m) = E(X) - m = 0,X 的正负偏离彼此抵消了。所以先将 X - m 平方后再取其均值,也就是偏差的平方

    :\begin{center}Var(X) = E[X - E(X)]^{2}\end{center}

    协方差 (Covariance)

    根据方差的定义,Var(X) = E[(X - E(X)) × (X - E(X))],将其中的一个 X 和 E(X) 用另一个 变量Y表示,Var(X) = E[(X - E(X)) × (X - E(X))],也就是

    :\begin{center} Cov(X, Y) = E[(X - E(X))(Y - E(Y))]\end{center}

    为了方便表示, \small E(X) = m_{1} , E(Y) = m_{2}, Var(X) = \sigma_{1}^{2},Var(Y) = \sigma_{2}^{2}

    关于协方差有几个重要的定理:

    1. 如果 X, Y相互独立,则 Cov(X, Y) = 0

    2. \small [Cov(X, Y)]^{2}\leqslant \sigma_{1}^{2} \sigma_{2}^{2},当且仅当 X,Y 之间有严格线性关系的时候等号成立。

     

    相关系数 (Correlation)

    相关系数也就是经常提到的皮尔逊(Pearson)相关系数,常用 Corr 或者 r 来表示相关系数。相关系数可以看作是标准尺度下的协方差

    :\begin{center} Corr(X, Y) = Cov(X, Y) / \sigma_{1}\sigma_{2} \end{center}

    相关系数有有个定理:

    1. 如果X, Y相互独立,则 Corr(X, Y) = 0

    2. -1\leq Corr(X, Y) \leq 1,当且仅当 X,Y 之间有严格线性关系时候,等号成立。

     

    自相关/序列相关 (Autocorrelation or Serial Correlation)

    模型随机项之间存在相关性称为自相关或者序列相关。

    对于模型

    \large X_{t} = \beta_{1}X_{t-1} + \beta_{2}X_{t-2} +... + u_{t}

    随机项存在序列相关是:Corr(u_{i},u_{j}) \neq 0,最简单的一阶序列相关也就是 Corr(u_{i},u_{i+1}) \neq 0

    下面用 python 中的statsmodel 模块来分析一下时间序列的自相关性:

    生成一段高斯白噪声,然后画出它的ACF (AutoCorrelation Function)和PACF(Partial AutoCorrelation Function)。

    补充一点关于 ACF 和 PACF的作用:根据ACF和PACF可以直观看出序列的自相关性,并且还可以作为一种判断序列是否平稳的手段,从而选择合适的模型来拟合数据。

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    from matplotlib import gridspec
    from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
    
    def ts_plot():
        fig = plt.figure()
        gs = gridspec.GridSpec(2,2)
    
        data = np.random.normal(size=1000)
    
        ax_ts = fig.add_subplot(gs[0, 0:2])
        ax_acf = fig.add_subplot(gs[1, 0])
        ax_pacf = fig.add_subplot(gs[1, 1])
    
        ax_ts.plot(range(len(data)), data)
        plot_acf(data, ax=ax_acf, lags=30)
        plot_pacf(data, ax=ax_pacf, lags=30)
    
        plt.show()

    可以看出白噪声过程的ACF和PACF中并没有什么明显的相关性。

    下面模拟一段 AR(1) 的过程。

    def ts_plot():
        fig = plt.figure()
        gs = gridspec.GridSpec(2,2)
        u = np.random.normal(size=1000)
        data = u
        a = 0.6
        for t in range(1000):
            data[t] = a * data[t-1] + u[t]
        ax_ts = fig.add_subplot(gs[0, 0:2])
        ax_acf = fig.add_subplot(gs[1, 0])
        ax_pacf = fig.add_subplot(gs[1, 1])
    
        ax_ts.plot(range(len(data)), data)
        plot_acf(data, ax=ax_acf, lags=30)
        plot_pacf(data, ax=ax_pacf, lags=30)
    
        ax_ts.set_title('AR(1)')
        plt.show()

    ACF拖尾,PACF一阶截尾 ,所以很明显是一个AR(1)过程。

     

    两种时间序列的相关性

    时间序列的自相关性可以理解为时间序列自己与自己(不同滞后项)之间的相关性,有时需要研究不同时间序列之间的相关性,例如配对交易时选择具有相似走势的股票对。

    选出相同板块的几只股票,相同板块受到的政策市场等影响类似,所以它们的价格走势的相关性也应该比较高。通过 tushare 爬取这几只股票的收盘价数据:

    def calSim():
        symbols = ['600831', '603000', '603888', '300431', '002238', '600037']
        used_cols = ['code', 'close']
        df = ts.get_hists(symbols, start='2018-12-01', end='2018-12-30')
        df = df[used_cols]
        df_Close = pd.DataFrame()
        
        pos = [321,322,323,324,325,326,327,328]
        i = 0
        fig = plt.figure()
        for symbol in symbols:
            ax = fig.add_subplot(pos[i])
            ax.plot(range(len(df_Close[symbol])), df_Close[symbol])
            ax.set_title(symbol)
            i += 1
        plt.tight_layout()    # change the distance of subplots
        plt.show()

     从图中可以看出60300和603888以及603000和60037这两组之间的相似性比较高,而600831与其它股票的差别较大。下面通过画出它们之间的相关图来量化一下这种相关性。

       for symbol in symbols:
            value = df.loc[df['code'] == symbol, 'close'].values
            df_Close[symbol] = value
        print(df_Close)
        fig = plt.figure()
        ax = fig.add_subplot(111)
        sns.heatmap(df_Close.corr(), ax=ax, annot=True)
        plt.show()

     结果跟我们观察的一样,看出60300和603888以及603000和60037这两组之间的相关性高,而600831与其他的之间的相关性较低。其中两两之间的相关性矩阵就是通过 df.corr() 得到的,df.corr() 函数默认计算相关系数就是通过皮尔逊相关系数计算得到的。

     

    展开全文
  • 时间序列预测方法最全总结!

    万次阅读 多人点赞 2021-03-12 00:15:38
    时间序列预测就是利用过去一段时间的数据来预测未来一段时间内的信息,包括连续型预测(数值预测,范围估计)与离散型预测(事件预测)等,具有非常高的商业价值。需要明确一点的是,与回归分析预测模型...

    时间序列预测就是利用过去一段时间的数据来预测未来一段时间内的信息,包括连续型预测(数值预测,范围估计)与离散型预测(事件预测)等,具有非常高的商业价值。

    需要明确一点的是,与回归分析预测模型不同,时间序列模型依赖于数值在时间上的先后顺序,同样大小的值改变顺序后输入模型产生的结果是不同的。如之前的文章所介绍,时间序列可以分为平稳序列,即存在某种周期,季节性及趋势的方差和均值不随时间而变化的序列,和非平稳序列。如何对各种场景的时序数据做准确地预测,是一个非常值得研究的问题。

    本文为大家总结时间序列预测的有关方法,浅析这些技术并探索如何可以提高这些方法的预测效果。

    01

    基本规则法

    要预测一个时间序列,我们首先需要发现其变化的规律。最基本的方法,就是通过人工经验,挖掘时序数据的演化特征,找到时序变化的周期,从而预估时间序列的未来走势。具体的观察一个时间序列,当序列存在周期性时,提取时间序列的周期性特征进行预测。

    图 | 抽取时序的周期进行拟合

    02

    传统参数法

    之前我们介绍了时间序列的统计分析方法,该方法可以将时间序列的演化变为数学参数,天然的,我们可以通过拟合好的模型,进行时间序列的预测。

    传统的参数预测方法可以分为两种,一种拟合标准时间序列的餐顺方法,包括移动平均,指数平均等;另一种是考虑多因素组合的参数方法,即AR,MA,ARMA等模型。这类方法比较适用于小规模,单变量的预测,比如某门店的销量预测等。总的来说,基于此类方法的建模步骤是:

    首先需要对观测值序列进行平稳性检测,如果不平稳,则对其进行差分运算直到差分后的数据平稳;
    在数据平稳后则对其进行白噪声检验,白噪声是指零均值常方差的随机平稳序列;
    如果是平稳非白噪声序列就计算ACF(自相关系数)、PACF(偏自相关系数),进行ARMA等模型识别,
    对已识别好的模型,确定模型参数,最后应用预测并进行误差分析。
    

    这类方法一般是统计或者金融出身的人用的比较多,对统计学或者随机过程知识的要求比较高。而在数据挖掘的场景中比较难适用,因为需要大量的参数化建模。比如有一个连锁门店的销售数据,要预测每个门店的未来销量,用这类方法的话就需要对每个门店都建立模型, 这样就很难操作了。

    03

    时间序列分解

    时间序列分解法是数年来一直非常有用的方法,一个时间序列往往是一下几类变化形式的叠加或耦合:

    长期趋势(Secular trend, T):长期趋势指现象在较长时期内持续发展变化的一种趋向或状态。
    季节变动(Seasonal Variation, S):季节波动是由于季节的变化引起的现象发展水平的规则变动
    循环波动(Cyclical Variation, C):循环波动指以若干年为期限,不具严格规则的周期性连续变动
    不规则波动(Irregular Variation, I): 不规则波动指由于众多偶然因素对时间序列造成的影响
    

    图 | 原始时间序列

    时间序列分解模型

    /加法模型

    加法模型的形式如下:

    加法模型中的四种成分之间是相互独立的,某种成分的变动并不影响其他成分的变动。各个成分都用绝对量表示,并且具有相同的量纲。

    /乘法模型

    乘法模型的形式如下:

    乘法模型中四种成分之间保持着相互依存的关系,一般而言,长期趋势用绝对量表示,具有和时间序列本身相同的量纲,其他成分则用相对量表示。

    /加乘混合模型

    以上两种方式的混合

    时间序列的长期趋势分析

    图 | 拟合的时序趋势

    /移动平均法

    在原时间序列内依次求连续若干期的平均数作为其某一期的趋势值,如此逐项递移求得一系列的移动平均数,形成一个平均数时间序列。

    /时间回归法

    使用回归分析中的最小二乘法,以时间t或t的函数为自变量拟合趋势方程。常用的趋势方程如下:

    一阶线性方程
    二次(多次)方程曲线
    指数曲线
    

    时间序列季节变动分析

    时间序列短期会受季节等短期因素影响,从而存在一些周期性


    图 | 拟合的季节变动

    /乘法模型-季节指数

    乘法模型中的季节成分通过季节指数来反映。常用的方法称为移动平均趋势剔除法。步骤如下:

    1. 计算一动平均值

    2. 从序列中剔除移动平均值

    时间序列循环变动分析

    时序长期来看会存在一个循环往复,通常通过剩余法来计算循环变动成分C:

    如果有季节成分,计算季节指数,得到季节调整后的数据TCI
    根据趋势方程从季节调整后的数据中消除长期趋势,得到序列CI
    对消去季节成分和趋势值的序列CI进行移动平均以消除不规则波动,得到循环变动成分C
    

    图 | 拟合的长期循环变动

    时间序列不规则变动分析

    除了以上三种变动信息,剩下的为不规律的时序变动信息。如有需要,可以进一步分解出不规则变动成分:

    对于一个时间序列,剔除长期趋势,季节性,循环变动因素之后,剩下的就是不规则变动因素

    图 | 拟合的不规则变动

                 Prophet

    这里特别提一个Facebook 所服务化的时间序列预测工具,Prophet,具体可以参考官网说明。该方法类似于STL时序分解的思路,增加考虑节假日等信息对时序变化的影响。

    04

    机器学习

    近年来时间序列预测方法,多采用机器学习方式。机器学习的方法,主要是构建样本数据集,采用“时间特征”到“样本值”的方式,通过有监督学习,学习特征与标签之前的关联关系,从而实现时间序列预测。常用的场景有:

    /单步预测

    在时间序列预测中的标准做法是使用滞后的观测值,作为输入变量来预测当前的时间的观测值。这被称为单步单变量预测。

    /多步预测

    另一种预测问题类型是使用过去的观测序列 来预测未来的观测序列。这就是多步预测或序列预测。

    /多变量预测

    另一个重要的时间序列称为多元时间序列,即每个时间有多个观测值:

    这意味着我们通过不同的测量手段得到了多种观测值,并且希望预测其中的一个或几个值。例如,我们可能有两组时间序列观测值,我们希望分析这组多元时间序列来预测 

    基于以上场景,许多监督学习的方法可以应用在时间序列的预测中,比如svm/xgboost/逻辑回归/回归树/...

    05

    深度学习

    深度学习方法近年来逐渐替代机器学习方法,成为人工智能与数据分析的主流,对于时间序列的分析,有许多方法可以进行处理,包括:循环神经网络-LSTM模型/卷积神经网络/基于注意力机制的模型(seq2seq)/...

    /循环神经网络

    循环神经网络(RNN)框架及其变种(LSTM/GRU/...)是为处理序列型而生的模型,天生的循环自回归的结构是对时间序列的很好的表示。所采用的方式也是监督学习,不过不需要人为的构建时序特征,可以通过深度学习网络拟合时序曲线,捕捉时间先后顺序关系,长期依赖,进行特征学习与预测。

    /卷积神经网络

    传统的卷积神经网络(CNN)一般认为不太适合时序问题的建模,这主要由于其卷积核大小的限制,不能很好的抓取长时的依赖信息。但是最近也有很多的工作显示,特定的卷积神经网络结构也可以达到很好的效果,通常将时间序列转化为图像,再应用基于卷积神经网络的模型做分析。

    Gramian Angular Field (格拉姆角场GAF)

    将笛卡尔坐标系下的一维时间序列,转化为极坐标系表示,再使用三角函数生成GAF矩阵。计算过程:

    数值缩放:将笛卡尔坐标系下的时间序列缩放到[0,1]或[-1,1]区间
    极坐标转换:使用坐标变换公式,将笛卡尔坐标系序列转化为极坐标系时间序列
    角度和/差的三角函数变换:若使用两角和的cos函数则得到GASF,若使用两角差的cos函数则得到GADF
    

    Short Time Fourier Transform (短时傅里叶变换STFT)

    在语音信号处理场景使用很广泛,其目标主要将时间序列转为时频图像,进而采用卷积网络进行特征分析。


    /时间卷积网络

    时间卷积网络(TCN)是一种特殊的卷积神经网络,针对一维空间做卷积,迭代多层捕捉长期关系。具体的,对于上一层t时刻的值,只依赖于下一层t时刻及其之前的值。和传统的卷积神经网络的不同之处在于,TCN不能看到未来的数据,它是单向的结构,不是双向的。也就是说只有有了前面的因才有后面的果,是一种严格的时间约束模型,因此又被称为因果卷积。

    /基于注意力机制的模型

    在RNN中分析时间序列需要我们一步步的顺序处理从 t-n 到 t 的所有信息,而当它们相距较远(n非常大)时RNN的效果常常较差,且由于其顺序性处理效率也较低。基于注意力机制(Attention)的模型,采用跳步的方式计算每个数值之间的两两关联,然后组合这些关联分数得到一个加权的表示。该表示通过前馈神经网络的学习,可以更好的考虑到时序的上下文的信息。

    以上步骤如下动图所示:

    /结合CNN+RNN+Attention,作用各不相同互相配合

    主要设计思想:

    • CNN捕捉短期局部依赖关系

    • RNN捕捉长期宏观依赖关系

    • Attention为重要时间段或变量加权

    06

    一些需要注意的难点

    • 理解时间序列预测问题是要用历史数据预测未来数据

    • 时间序列问题的训练集、测试集划分

    • 特征工程方法及过程

    • 如何转化为监督学习数据集

    • LSTM计算过程理解,包括输入输出维度、参数数量等

    • seq2seq过程的理解,decoder实现

    • attention注意力机制的原理及实现,包括encoder-decoder attention, self attention, multi-head attention等

    • 时间卷积网络的含义,dilated-convolution 和 causal-convolution

    • prophet预测原理,各参数对模型拟合效果、泛化效果的影响

    • 时间序列基本规则法中周期因子得计算过程

    • 传统方法如周期因子、线性回归、ARMA等的预测结果表现为,预测趋势大致正确,但对波动预测不理想,体现在波动的幅度差异、相位偏移。

    • 时间序列分解方法。理解加法模型和乘法模型,判断分解模型的选取及分解技巧。

    /工具

    • tslearn:开源的时间序列机器学习python工具包

    • tsfresh:开源的时间序列特征提取python工具包

    • pyts:开源的时间序列分类Python工具包。提供预处理工具及若干种时间序列分类算法

    “整理不易,三连

    展开全文
  • 时间复杂度 将复杂度讲的清清楚楚!
  • 活动图求最少时间和松弛时间

    万次阅读 多人点赞 2019-05-05 09:08:04
    一、介绍 ...构造PERT图,需要明确四个概念:事件、活动、松弛时间和关键路线。 1、事件(Events)表示主要活动结束的那一点; 2、活动(Activities)表示从一个事件到另一个事件之间的过程; 3...
  • 方法一:SimpleDateFormat dff = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); dff.setTimeZone(TimeZone.getTimeZone("GMT+08"));...这个方法不随手机时间的变动而变动。
  • 时间复杂度和空间复杂度的概念及各种算法的时间复杂度 及举例 算法的复杂度可分为俩种 一种时间复杂度 另一种是空间复杂度。 俩者的概念:时间复杂度是指执行这个算法所需要的计算工作量;而空间复杂度是指执行这个...
  • localStorage设置过期时间

    万次阅读 多人点赞 2019-01-30 15:02:36
    众所周知,前端三大缓存,cookie,sessionStorage,localStorage,cookie空间太小,一旦大了,会消耗流量,知识和存一些登录会话信息,而sessionStorage的过期时间就是关闭浏览器,是个临时会话窗口,但是,最近这个...
  • 示波器的显示时长
  • Linux系统时间同步方法小结

    万次阅读 多人点赞 2019-01-20 12:19:17
    系统时间会自动保存在BIOS时钟里面,启动计算机的时候,系统会自动在BIOS里面取硬件时间,以保证时间的不间断。但在Linux下,默认情况下,系统时间和硬件时间并不会自动同步。在Linux运行过程中,系...
  • 之前我们说明了怎么样的时间序列是序列平稳的,但是世界并不是那么美好,很多时间序列都不是平稳序列,所以这里就要求我们做一些处理了。 首先我们来看一下非平稳时间序列长什么样。在AR模型中,只要自回归系数都...
  • 时间字符串比较大小

    万次阅读 2020-04-15 21:29:52
    } 这两种时间格式都可以使用这个方法进行比较大小 但是有一点需要记住:两个参与比较的字符串的形式及长度必须相同才能够正确比较 //这种形式比较就会出错 String date1 = "2019-4-24"; String date2 = "2019-06-...
  • 解决Windows与Ubuntu双系统时间同步问题

    万次阅读 多人点赞 2016-07-11 21:05:30
    1 问题发现本子上装的是Window 10(win7升级)和Ubuntu GNOME 14.04的双系统, 一直以来都发现双系统切换后系统的时间显示有问题每次都发现进入ubuntu系统的时间显示不正确, 只有重新使用网络对时之后系统的时间才...
  • 关于java获取当前时间时间的毫秒值

    万次阅读 多人点赞 2018-12-29 13:23:26
    获取当前时间的方法   //第一种方法 long totalMilliSeconds = System.currentTimeMillis();   //第二种方法 (常用) Date date = new Date();  date.getTime(); 获取时间的毫秒值 //第一种方法 //...
  • js 计算两个时间时间

    万次阅读 多人点赞 2017-10-16 11:46:11
    写在前面:如题,就像题目说的需要计算出时间差,虽然不太难,但这个需求经常会在项目中遇到的,我在这边做一下整理,希望能够尽量全的整理出来。有需要的朋友可以做一下参考,喜欢的可以点波赞,或者关注一下,希望...
  • 数据结构与算法(一):时间复杂度和空间复杂度

    万次阅读 多人点赞 2019-03-23 15:05:22
    初学数据结构和算法的时候,大家都会接触到时间复杂度和空间复杂度这两个概念,但是在学校期间估计很多同学都没有去理解其意义,认为其如同鸡肋,只是应付考试,甚至工作时间不长的同学也可能会有类似感觉:代码都写...
  • 时间序列-MA模型

    万次阅读 2019-02-19 19:16:27
    移动平均模型MA(r)    备注:序列当前时刻的时序值是过去q阶白噪声的线性组合  建模的目的  找出过去几期的白噪声影响了当前值  找出过去q期冲击效应对当前值的影响  模型特征 ... 模...
  • 算法的时间复杂度和空间复杂度计算

    万次阅读 多人点赞 2018-09-27 20:22:44
    1、算法时间复杂度 1.1算法时间复杂度的定义:  在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作...
  • 课程链接:添加链接描述 1.分类 1.白噪声序列(纯随机序列,无研究意义) ...2.ACF PACF拖尾(下降的趋势),截尾(某一点后变为0)检验 –》白噪声检验(检验是否为纯随机序列)–》是,停止检验 –》不是–》计算.A
  • // keys 即加锁key ,args 即 密钥 jedis.eval(str, Collections.singletonList(keys), Collections.singletonList(args)) 这一点很重要,以避免删除由另一个客户端创建的锁。例如,客户端可以获取锁定,在某些操作...
  • 通过一点创造性,这种组合将让我们最终做出“关键帧类”的动画。 二、TimelineView 的组件 TimelineView 是一个容器视图,它根据相关的调度器确定的频率重新评估它的内容,TimelineView 接收一个调度器作为参数。...
  • 磁盘访问时间计算

    万次阅读 多人点赞 2016-10-21 14:15:45
    通常磁盘数据访问时间计算分为三个部分(实际上是四个,但是启动时间不加说明时忽略不计): 寻道时间,也称寻找时间:磁头...盘面上密密麻麻的同心圆,找到需要的那个想来就很费时间加上访问的数据不必在相邻或
  • 算法的时间复杂度和空间复杂度-总结

    万次阅读 多人点赞 2016-06-04 11:04:53
    算法的时间复杂度和空间复杂度-总结  通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明...
  • js 数据按时间排序

    万次阅读 多人点赞 2019-06-12 10:04:22
    要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。 如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数...
  • 近日由于设置ESXI计划任务,无意间发现了esxi服务器客服端时间和系统显示时间不一致的情况,导致了( 为了一致,通过SSH用命令修改了ESXI系统时间)虚拟机时间也不一致,最终导致虚拟服务器系统时间出错。...
  • 简单理解时间同步和时钟同步

    万次阅读 多人点赞 2019-10-16 14:00:11
    上图是频率同步(时钟同步),可能看得不是很明白,通俗一点讲就是,信号是由0和1组成,把时间轴放大来看,就是一个个小方块,就像下图一样,时钟同步是指在相同的时间内,“方块”的数量是一样的,在下图里面,就说...
  • 关于描述:在项目中遇到了特征的提取,因为数据的变化和时间有直接的关系,就考虑这个时间能提取出那些特征? 我的数据示例:200101010100。年月日时分秒的这个里面提取数据,我很明显可以看出来需要尝试提取:日...
  • 使用:picker-pitions绑定属性 在页面js中写返回的时间限制,当前选择器时间time.getTime()如果大于其开始(结束)时间,则其前面或者后面时间无法选择 ** 效果如下 ** ...
  • 文章目录1 springboot项目session超时时间设置2 springsecurity下如何通知用户session超时2.1 在配置文件BrowserSecurityConfig里加上session超时跳向的url2.2 在配置文件BrowserSecurityConfig里为指定session超时...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,835,462
精华内容 734,184
热门标签
关键字:

在给时间一点时间