精华内容
下载资源
问答
  • 时序数据特征提取

    千次阅读 多人点赞 2020-07-13 21:58:54
    时序数据特征提取时间序列的表示方法分段线性表示分段线性表示符号化聚合近似时间序列的相似性度量方法Minkowski距离动态时间弯曲符号化距离基于模型的距离度量方法时间序列的特征提取方法基于统计特征的...


    特征提取在提高分类的准确性中起着非常关键的作用. 对时序特征提取的方法进行归纳分类, 将有利于对特征提取整体性, 全面性的认识. 回顾现有的时间序列中特征提取的方法, 将其总结为四大类, 它们分别是基于基本统计方法的特征提取、基于模型的特征提取、基于变换的特征提取、基于分形维数的特征提取。

    时间序列的表示方法

    时间序列的特征表示需要保证以下几点要求:
    1.保留原数据的整体和局部的重要特征。
    2.有效对原始数据降维。
    3.转换后的数据能够进行相似性度量。
    4.能有效的处理噪声数据。
    目前主要的时间序列表示方法包括PAA(分段聚合近似),PLR(分段线性表示),SAX(符号化聚合近似),基于模型的表示方法,以及基于变换的表示方法等。

    分段线性表示

    PAA的方式是通过将时间序列平均划分为多个分段,然后每个分段用其对应的均值来表示。假设原时间序列的长度为L,划分后的子序列数量为M,那么每个分段的序列长度S=L/M。S称为PAA的压缩比。显然S越小,则原始数据被划分的更为精细,就表示保留下来的信息更多,也说明了降维的程度更小;反之则会导致聚合后的序列丢失的信息更多,但是降维的效果也就更明显。

    PAA需要人为的调试压缩比。由于PAA仅保留了分段的均值特征,导致数据其他重要特征,如上下界,方差,拐点等被丢失,从而使得两个趋势完全不同的分段序列被转换成相同的序列。典型就是正弦波,余弦波和全0序列在一个周期内就会被表示成相同的序列。

    分段线性表示

    PLR是时间序列的研宄中被大量应用的一种时间序列表示方法,它根据线性模型对时间序列进行划分,常用的划分方法可以以下分为三类:1.滑动窗口2.自顶而下3.自底而上。滑动窗口的分段思想是通过将窗口中序列用直线拟合,然后计算拟合的误差。当误差大于人工设定的阈值时,就扩大窗口的范围,增加窗口内的数据量。当误差增加到超过阈值时就关闭窗口,将该窗口内的序列作为一个分段,然后开启一个新的窗口重复上述步骤。自顶而下的思想类似递归的方法,首先选择一个最佳分割点将原序列分为两段,然后对两段分别进行线性拟合并计算拟合误差。当误差超过阈值时,就对该子序列递归使用前述方法,直到每个子序列的拟合误差都在阈值之内。而自底而上的方法则是先将序列中每2个数据点单独作为一个分段,继而将每个分段与相邻的分段进行合并,然后对每个合并后的分段计算拟合误差后选择最优的保留,当任意相邻的两个分段的拟合误差都大于阈值时算法停止。

    符号化聚合近似

    SAX的思想是通过把时间序列中的数据点或数据段转换成人为约束下符号,然后通过符号序列来表示原序列。而这种由符号组成的序列可以看做是一个字符串,这就使得关于字符串的很多成熟高效的算法可以用于后续的相似性度量和特征提取中。特别地,针对实际生活难以量化的时间序列,符号化的表示方法就能发挥很好的作用。

    时间序列的相似性度量方法

    Minkowski距离

    在这里插入图片描述
    欧式距离只是用于等长序列之间的距离度量。但在实际应用中,很多时间序列是不等长的,这就需要将欧式距离结合其他时间序列的表示方法和对数据的预处理后进行相似性的度量。例如,将时间序列通过降维变换后转换为等长的序列,然后用欧式距离进行度量;也可以采用滑动窗口,用较短的序列在较长的序列上滑动,然后选取欧式距离最小的值作为两条时间序列间的相似性距离。此外,欧式距离对于数据中的噪声和异常点十分敏感,所以在使用欧式距离时,对数据的去噪,归一化以及标准化等操作是必要的。

    动态时间弯曲

    动态时间弯曲是通过延伸或缩短时间轴,使得时间序列中的数据点能够更优地进行映射匹配的相似性度量算法。本质上来说DTW是通过动态规划的思想求最优路径的问题。相比于欧氏距离,DTW最大的优势在于它可以度量不等长的序列之间的相似性距离。

    DTW有以下几点优势:
    1.不等长的时间序列的相似性度量,DTW均可适用。而欧式距离只适用于等长的时间
    序列。
    2.DTW对于噪声或者突变数据点不敏感,而欧式距离反之。
    3.DTW可以度量时间轴上又偏移的时间序列,而欧式距离只适用于度量无偏移的数据。

    符号化距离

    对于不同表示形式的时间序列,其相似性度量的方法也随之不同。采用符号形式将时间序列转化为字符序列的的特征表示方法,度量其相似性时,也由度量其原有数据的之间距离转变为度量符号之间的距离。目前比较普遍的,也是比较有代表性的符号化距离度量方法是基于欧式距离的。首先是要将时间序列按照正态分布标准化处理,然后采用SAX方法将时间序列转变为符号串序列,转换后的符号序列之间的距离是根据等概率划分的正态分布表计算的。

    基于模型的距离度量方法

    与传统的距离度量方法不同的是,基于模型的距离度量方法是考虑了时间序列的自身特性,然后构建模型,通过模型来计算原时间序列转变为目标时间序列的似然值,并以此来衡量时间序列之间的相似性。

    时间序列的特征提取方法

    在这里插入图片描述

    基于统计特征的分类特征提取

    基于基本统计量的特征提取方法是最直接的特征提取方法。它是通过提取时间序列数据在统计学上的特征构成特征向量来指导后续的分类。对于时间序列的统计特征来说常常分为两类:时间域和频率域。时域上的特征又可以分为有量纲的特征和无量纲特征,有量纲特征如均值,方差,均方根,峰值等,无量纲特征有脉冲因子,峰值因数,波形因子等;而频率上的特征包括均方频率,均方根频率,频率方差,频率标准差等。

    基于构建模型的分类特征提取

    基于构建模型的特征提取方法,是通过对时间序列数据构建特定的模型,将对时间序列的特征提取转化为对模型中因子的提取。基于构建模型的特征提取方法首先需要分析数据的特点,然后根据不同数据的特点有针对的构建相应的模型。对于相对稳定的序列,如可以通过ARMA模型(自回归的搰动平均模型)去提取特征,而对于不稳定的序列,则需要先对数据进行差分处理,将其转化成稳定的序列。

    基于变换的分类特征提取

    基于变换方式的特征提取,是通过把时间序列数据在不同域中进行映射变换,使得特征在某一个维度能够凸显出来。常见的域变换就是时域和频域上的变换,典型的包括傅里叶变换和小波变换。这种变化针对不同的应用场景,又有了不同的应用形式,如DFT(离散傅里叶变换),FFT(快速傅里叶变换),STFT(短时傅里叶变换),DWT(离散小波变换)等。还有一些基于线性变换的方法,包括PCA(主成分分析),K-L变换等。

    基于分形理论的分类特征提取

    分形的对象的特点包括不规则的,有自相似的结构,符合递归生成的原则。分形现象广泛的存在于自然界中,例如海岸线,山脉的轮廓,河流的流向,岩石、闪电的形状等等。随着分形理论的发展,近年来开始应用于时间序列的特征提取。分形理论进行特征提取时, 并不是所有信号都适合. 要看信号在某个尺度下是否具有可分形特征, 即不同状态下的分形维数是不同的, 这样才具有可分性。

    展开全文
  • 时序数据特征提取方法

    千次阅读 2021-03-06 10:10:23
    在对如传感器数据等时间序列数据进行机器学习时,特征提取是非常重要的一环,本文主要介绍时序数据特征提取的几种方法。 1 时域与频域 时域和频域是信号的基本性质,这样可以用多种方式来分析信号,每种方式提供了...

    在对如传感器数据等时间序列数据进行机器学习时,特征提取是非常重要的一环,本文主要介绍时序数据特征提取的几种方法。

    1 时域与频域

    时域和频域是信号的基本性质,这样可以用多种方式来分析信号,每种方式提供了不同的角度。解决问题的最快方式不一定是最明显的方式,用来分析信号的不同角度称为域。时域频域可清楚反应信号与互连线之间的相互影响。

    时域(Time domain)是描述数学函数或物理信号对时间的关系。例如一个信号的时域波形可以表达信号随着时间的变化。是真实世界,是惟一实际存在的域。因为我们的经历都是在时域中发展和验证的,已经习惯于事件按时间的先后顺序地发生。而评估数字产品的性能时,通常在时域中进行分析,因为产品的性能最终就是在时域中测量的。

    频域(frequency domain)是描述信号在频率方面特性时用到的一种坐标系。在电子学,控制系统工程和统计学中,频域图显示了在一个频率范围内每个给定频带内的信号量。频域,尤其在射频和通信系统中运用较多,在高速数字应用中也会遇到频域。频域最重要的性质是:它不是真实的,而是一个数学构造。时域是惟一客观存在的域,而频域是一个遵循特定规则的数学范畴,频域也被一些学者称为上帝视角。正弦波是频域中唯一存在的波形,这是频域中最重要的规则,即正弦波是对频域的描述,因为频域中的任何波形都可用正弦波合成。这是正弦波的一个非常重要的性质。然而,它并不是正弦波的独有特性,还有许多其他的波形也有这样的性质。

    时域分析与频域分析是对模拟信号的两个观察面。时域分析是以时间轴为坐标表示动态信号的关系;频域分析是把信号变为以频率轴为坐标表示出来。一般来说,时域的表示较为形象与直观,频域分析则更为简练,剖析问题更为深刻和方便。信号分析的趋势是从时域向频域发展。然而,它们是互相联系,缺一不可,相辅相成的。

    动态信号从时间域变换到频率域主要通过傅立叶级数和傅立叶变换实现。周期信号靠傅立叶级数,非周期信号靠傅立叶变换。时域越宽,频域越短。

    2. 特征提取方法

    2.1 基于基本统计方法

    基于基本统计方法,我们可以提取均值、方差、极值、波段、功率谱等特征。时域方面,可提取均值、方差、极值、过零点、边界点、波段长短峰值等特征;频域方面,可提取功率谱,功率密度比,中值频率,平均功率频率等特征。

    肌电信号(EMG):过零点数,积分肌电值,方差;EMG功率谱的平均功率频率和中值频率;
    心电图(ECG): RR间隔均值、熵值、变化值、功率谱密度;
    脑电信号(EEG):峰值、熵值、非线性能量、QRS波的峰值、波长等、QT间隔、ST间隔等统计特征;

    2.2 基于模型

    基于模型的特征提取, 是指用模型刻画时间序列数据,提取的模型系数作为特征矢量。

    常用模型: ARMA、AR、MAR、ARCH、SVAR

    平稳时间序列:ARMA
    ECG, EMG:AR
    金融时序数据:ARCH, SVAR

    选择合适的模型进行特征提取, 产生的模型系数作为特征矢量. 针对这类特征矢量, 往往采用简单的判别函数即可达到理想的分类效果. 最常用的当属二次判别函数(QDF). 有时也用到最大似然的判断规则进行分类.

    2.3 基于变换

    2.3.1 基于时频变换

    时频变换是将信号从时域变换到频域的一种手段. 时间序列数据在特征提取中常采用傅立叶变换倒谱系数等时频变换方法.

    傅立叶变换:时域信号转化为频域信号。将时序数据进行傅立叶变换, 然后选择它的系数作为特征矢量, 若选择前面的系数, 则代表了信号的低频特性, 选择较大的系数, 则代表了信号的能量特性。
    倒谱系数:倒谱分析又称为二次频谱分析, 它分为实倒频谱和复倒频谱. 其中实倒谱又为功率倒频谱, 它是先将时序信号进行离散傅立叶变换, 然后取自然对数,再实行离散傅立叶反变换. 复倒谱是将时序信号通过Z 变换以后取对数,再求反 Z 变换而得到的.

    2.3.2 基于线性变换

    线性变换中有很多特征提取方法颇为经典, 特别是PCA小波变换.
    PCA:主成分分析
    小波变换

    2.4 基于分形理论

    分形是指具有: 无限精细、非常不规则、无穷自相似结构和非整数的点集.在大自然中, 海岸线、雪花, 云雾这些不规则形体都属于分形, 即部分与整体有自相似性.

    分形理论用于特征提取时, 主要是针对非线性信号, 是用它的定量分析指标分维数作来特征矢量.

    3 python tsfresh

    tsfresh是python中专门用于提取时序数据中的特征的包,可以提取多种特征。所提取的特征大多有具体的计算公式和参考文献。对应代码、计算公式以及参考文献请访问官方文档:
    https://tsfresh.readthedocs.io/en/latest/api/tsfresh.feature_extraction.html#tsfresh.feature_extraction.feature_calculators

    Reference:

    [1] 时域频域 百度百科
    [2] 林 珠, 邢 延. 数据挖掘中适用于分类的时序数据特征提取方法

    展开全文
  • 主要讲解数据挖掘 中用于分类的时序数据特征提取方法,很好的学习资料
  • 时序数据数据预处理、特征提取代码。分段特征、统计特征、熵特征
  • 数据挖掘中适用于分类的时序数据特征提取方法.pdf
  • # 对温度做分段常数逼近处理,下采样 def constant_appro_low(df_data_by_date_tem): df_data_by_date_tem = df_data_by_date_tem.reset_index(drop=True) df_appro = pd.DataFrame() date_index = pd.date_range...
    # 对温度做分段常数逼近处理,下采样
    def constant_appro_low(df_data_by_date_tem):
        df_data_by_date_tem = df_data_by_date_tem.reset_index(drop=True)
        df_appro = pd.DataFrame()
        date_index = pd.date_range(end = '01/01/2019', periods=len(df_data_by_date_tem), freq='D')
        temperature = 'Temperature'
        date_ymd = 'date_ymd'
        df_appro[temperature] = df_data_by_date_tem[temperature]
        df_appro.index = date_index
        # 下采样,取均值
        df_appro_low = pd.DataFrame()
        # 一个小时聚合一次常值, 这里通过 6 个数值进行取一次均值,例如:[0, 5] ,[6, 11] , ... 取均值
        df_appro_low[temperature] = df_appro[temperature].resample(rule='6D').mean()  
        #date_list = df_data_by_date_tem.loc[:len(df_appro_low)-1][date_ymd]
        #df_appro_low[date_ymd] = list(date_list)
        # 差分,做一阶差分
        df_appro_diff = pd.DataFrame()
        df_appro_diff[temperature] = df_appro_low.loc[:][temperature].diff(1) # 1 阶差分
        df_appro_diff[date_ymd] = list(df_data_by_date_tem.loc[:len(df_appro_diff)-1][date_ymd])
        df_appro_diff = df_appro_diff.dropna()
        df_appro_diff = df_appro_diff.reset_index(drop=True)
        df_appro_diff[temperature] = df_appro_diff[temperature].apply(lambda x: round(x, 2))
        return df_appro_diff
    

    以上内容可以参考:

    上采样、下采样:https://mbd.baidu.com/newspage/data/landingsuper?context={"nid"%3A"news_9661997349921147196"}&n_type=1&p_from=3
    差分处理:https://mbd.baidu.com/newspage/data/landingsuper?context={"nid"%3A"news_9532838616696390580"}&n_type=1&p_from=3

    展开全文
  • 时序数据数据预处理、特征提取代码。分段特征、统计特征、熵特征。时间序列.rar
  • 时间序列数据特征提取TsFresh

    时间序列数据特征提取 TsFresh

    简介

    Tsfresh(TimeSeries Fresh)是一个Python第三方工具包。 它自动计算大量的时间序列数据的特征。此外,该包包含评估这些特征对于回归或分类任务的解释能力和重要性的方法。无论是基于时序数据的分类还是预测,作为特征提取的工具,tsfresh将会是一个不错的选择。

    安装

    使用pip安装即可。

    pip install tsfresh
    

    简单使用

    数据集

    该包提供了一个机器人故障的数据集,可以加载用于尝试使用。(这个数据集不大)点击链接下载后放置到该包配置的data文件夹下(user文件夹中,实在找不到数据集可以私戳我)。

    编辑环境

    我这里使用Jupyter Notebook,其实什么环境都是可以的。

    教程步骤

    导入数据集

    import tsfresh
    from tsfresh.examples.robot_execution_failures import download_robot_execution_failures, load_robot_execution_failures
    download_robot_execution_failures()
    timeseries, y = load_robot_execution_failures()
    

    数据探索

    • 训练数据
      对于特征集,id是不同的机器人标识,F_x到T_z是时序数据标识,也就是说,对于F_x这个特征,id为1的机器人有15个数据记录,按照time列的大小排序,其余F_y等也是如此。(注意:有时候时序数据不会这么友好,而是在一条记录中给出的
    • 测试数据
      对于标签集,利用id标识某个机器人是否故障。
      特征工程
      通过如下代码提取时间特征。
    from tsfresh import extract_features
    extraced_features = extract_features(timeseries, column_id='id', column_sort='time')
    extraced_features.head()
    

    提取过程会实时显示进度,应该是使用tqdm模块。

    提取结果如下图所示。

    可以看到提取特征之后id相同的特征序列合一了,但是每一个id的数据列数非常大,这些就是提取得到的特征。如id=1的数据关于F_x有15个数据,现在对着15个数据做统计学处理得到15个数据的平均值、方差等,每个值都是一列,其他F_y等也是如此,所以维度会很大。

    简单过滤
    不是所有统计值都有意义的,观察特征提取的数据集可以发现有很多无意义的控制,可以删除。(根据y集将相关性低的去除),代码如下。

    from tsfresh import select_features
    from tsfresh.utilities.dataframe_functions import impute
    impute(extraced_features)
    filtered_features = select_features(extraced_features, y)
    filtered_features.head()
    

    上述代码的结果为从4764列减少到了631列,这个降维还是比较有效的。

    直接提取加过滤
    可以使用如下代码。

    from tsfresh import extract_relevant_features
    directed_features = extract_relevant_features(timeseries, y, column_id='id', column_sort='time')
    directed_features.head()
    

    结果和上面是一致的,现在你可以使用特征提取的数据集去训练模型了。

    补充说明

    只是按照官方文档说明了tsfresh最浅显的功能,事实上,这个包特征提取能力要强大太多了。更详细的内容可以查看官方教程(英文版,可以使用Chrome自带的翻译)。

    展开全文
  • 当我们在对时序数据进行特征提取时,常常用到的方法包括滑动平均,指数平滑等等,tsfresh可以为我们提供几十至几百个统计特征,包括时序信号的能量等等,只需要一次操作即可。以下内容来自tsfresh的文档,先通过一个...
  • 时间序列数据特征提取

    千次阅读 2020-04-03 15:56:17
    另外一种方法就是来从时间序列中提取特征从而将这些特征用在有监督的模型上。在这篇文章中,我们来看下如何使用tsfresh包自动的提取时间序列数据。 这份数据的来源是 。这个网站中提供对很多数据集有高精度的模型,...
  • 时序数据分析方法综述,很好的资料! 时序数据分析方法综述,很好的资料!
  • 记录自己学习的一点点东西,当做是一个笔记吧。只恨自己没有及早开始写这个东西
  • matlab 实现数据时域特征提取

    万次阅读 多人点赞 2018-07-02 19:35:39
    %数据时域特征提取 clc; close ; clear all; %数据导入 data=xlsread('E:\排球\原始数据 z方向.xlsx',1)'; %初始参数设置 [m,n]=size(data); D=[]; DA=[]; %求解特征 for i=1:1:m d=data(i,:) d=d(~isnan(d));%...
  • 学习记录--- LSTM 时序特征提取

    千次阅读 2019-08-09 16:14:52
    最近做项目,看了一点关于LSTM的知识,目的是想用LSTM提取时间序列的时序特征 和师姐讨论,加上个人理解,认为state.h (使用tensorflow深度学习框架)为一条序列的时序特征。(时序特征维数由隐层神经元个数num_...
  • 针对Elman神经网络模型,...提出了基于时序数据特征学习框架,可评估多个特征参数对结果的联合影响。在此基础上,提出了一个互联网金融风险预测模型,实验结果表明,所提出的模型在金融时序预测中具有更好的准确度。
  • 【Matlab】访问提取时序数据

    千次阅读 2020-12-16 15:15:39
    使用 ToWorkspace 工具从 Simulink 直接转移过来的数据为时序数据,可以直接使用 plot(X) 绘图,如下图所示。但无法直接与列向量数据放在一起画图,因此需要先进行数据的提取。 访问 timeseries 数据样本全页折叠 ...
  • 时间序列数据特征提取TsFresh–入门简介

    千次阅读 热门讨论 2021-03-16 15:10:52
    最近膜拜大佬写的GitHub学习到了一个时间序列数据特征提取的库-TsFresh,感觉好像挺牛逼的,去B站大学找了一下想找点资料学一学,尴尬的是… 发挥一下主观能动性,网上找了一下还好有官方文档! 英文的 ...
  • tsfresh此存储库包含TSFRESH python...将更少的时间花在特征工程上数据科学家经常将大部分时间花费在清理数据或构建特征上。 虽然我们不能更改第一件事,但是第二件事可以自动化。 TSFRESH释放了您用于建立壮举的时间
  • 鉴于此, 提出一种新的时间序列数据降维和特征表示方法, 利用正交多项式回归模型对时间序列实现特征提取, 结合特征序列长度对时间序列的拟合分析结果, 运用奇异值分解方法对特征序列进一步降维处理, 进而得到保存大...
  • 一维卷积神经网络特征提取下微震能级时序预测.pdf
  • tsfresh用于从时间序列中提取特征。本篇主要介绍时间序列时间特征的拓展和过滤。编程环境jupyter notebook 源码和数据地址 链接:https://pan.baidu.com/s/1VjHgdcIx9WY3VigHMkBCKw 提取码:gqs1 TsFresh安装 pip ...
  • 摘要:本文展示了如何基于nolearn使用一些卷积层和池化层来建立一个简单的ConvNet体系结构,以及如何使用ConvNet去训练一个特征提取器,然后在使用如SVM、Logistic回归等不同的模型之前使用它来进行特征提取。...
  • 时序数据异常检测

    千次阅读 2019-07-12 17:22:21
    文章目录AIOPS网上相关资料一、时序数据概念及分析1.1 数据前期处理的重要性1.2.1时序数据周期研究(重点方向)1.3 时序数据的随机过程1.4 白...方法1.8.3 研究进展2019年6月20日1.9 时序数据特征提取方法1.10 多...
  • 在读取完数据,进行了数据分析之后,我们就要对样本进行特征提取来建模了。所谓的特征就是希望可以通过特征来得到、分辨出这一个样本是由什么组成的。 import pandas as pd import numpy as np import tsfresh as ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,581
精华内容 7,432
关键字:

时序数据特征提取

友情链接: ManualLogo!MonitorMulti.rar