时间序列2-基于时间序列的特征工程技巧

在之前的文章中,我们介绍了如何对时序数据进行统计分析,时间序列1-如何分析你的时间序列主要描述了分析时间序列的基本内容。然而,在基于时间序列的分析方法以及预测方法中,一般需要我们对原始时序做一定的处理,抽取若干特征以获得可解释的信息。那么,我们如何进行时间序列的特征工程呢?

目录

1.  时间序列预处理

1.1 标准化

1.2 归一化

1.3 定量特征二值化

2.时间序列基础特征

2.1 统计特征

2.2 维度特征

2.3 窗口特征

3. 时间序列转换特征

3.1 统计转换特征

3.2 高维空间转换特征

3.2.1 格拉姆角场(GAF)

3.2.2 马尔科夫随机场

3.3 降维转换特征

3.3.1 主成分分析(PCA)

3.3.2 张量分解

3.4 时频分析

3.5 基于神经网络的特征工程

​编辑

4. 时间序列分类特征

4.1 字典特征(BoP)

4.2 形态特征(Shapelet)

时间序列的特征工程大体上分为:基础特征、转换特征、分类特征这三大类,涉及统计分析、机器学习、深度学习等多个领域。这里要注意的是,特征工程技巧是一方面,更重要的是看实际问题背景,不同问题有不同的方法,甚至需要为其量身打造提取特征的方法,关键在于先自己尝试去分析这个问题,将想到的特征用算法实现并有效,那这也是一次成功的特征工程。


1.  时间序列预处理

一般来说,真实世界的时间序列常常取值范围多样,长短不一,形态各异。如果要做统一的分析,需要我们进行初步的处理,将时间序列整合到统一的范畴下,进行分析。这里基本的方法有:标准化、归一化、定量特征二值化

1.1 标准化

标准化是使时间序列中的数值符合平均值为 0,标准差为 1。具体来说,对于给定的时间序列89b9cd6128114fa7809e554ea49db80a.png,有如下公式:

7a2d26aa1aa44bfca165b507e7504b0a.png

标准化的目标是将原始数据分布转换为标准正态分布,它和整体样本分布有关,每个样本点都能对标准化产生影响。这里,如果只考虑将均值缩放到 0,不考虑标准差的话,为数据中心化处理

1.2 归一化

归一化是把数据变成区间 [0, 1] 或  [-1, 1] 其之间的小数,其主要是为了数据处理方便而提出来的。把数据映射到[0, 1]范围之内进行处理,可以更加便捷快速。具体公式如下:

04585b8e944f4759b7322c0323745b64.png

归一化是将样本的特征值转换到同一范围(量纲)下,把数据映射到 [0,1] 或者 [-1, 1] 区间内,它仅由变量的极值所决定。这里也可以将源数据减去均值,进行平均归一化

14cf628f044c4ccaa8af2c8b265c7e50.png

如果对输出结果范围有要求,并且数据较为稳定,不存在极端的最大最小值,用归一化。如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响。

1.3 定量特征二值化

如果不需要数据的连续信息,只需要对定量的特征进行“好与坏”的划分,我们可以使用定量特征二值化来剔除冗余信息。一般来说,定量特征二值化通过设置阈值来进行分类: 

a6c253d6b96b4a099da2c1110c695f41.png


2.时间序列基础特征

2.1 统计特征

对时间序列进行统计分析是最容易想到的特征提取方法,这里包括的特征有:

  • 简单特征:均值、标准差、极值、分位数、尖峰个数、缺失个数、偏差等等;

  • 高级特征:自相关性、周期性、趋势(斜率)、频率、随机噪音等等。

2.2 维度特征

维度特征是提取时间序列在时间维度上的信息,包括:

  • 连续型特征:持续时间(比如:单页面浏览时长)、时间间隔(比如:上次购买、距离现在购买的时间)

  • 离散型特征:小时级特征:哪个时间段(0-24);天级特征:一周中的星期几、工作日、周末、法定假日;星期级特征:一个月中的第几个星期、一年中哪个星期;月份级的特征:第几个月份

2.3 窗口特征

将时间序列在时间轴上划分窗口是一个常用且有效的方法,包括滑动窗口(根据指定的单位长度来框住时间序列,每次滑动一个单位),与滚动窗口(根据指定的单位长度来框住时间序列,每次滑动窗口长度的多个单位)。窗口分析对平滑噪声或粗糙的数据非常有用,比如移动平均法等,这种方式结合基础的统计方法,即按照时间的顺序对每一个时间段的数据进行统计,从而可以得到每个时间段内目标所体现的特征,进而从连续的时间片段中,通过对同一特征在不同时间维度下的分析,得到数据整体的变化趋势。


3. 时间序列转换特征

我们对时序数据进行分析的时候常常需要使用一些变换方法对数据进行转换,以发现许多高维且隐秘的特征。

3.1 统计转换特征

Box-Cox 变换可以使得线性回归模型满足线性性、独立性、方差齐次性和正态性的同时又不丢失信息,其变换的目标有两个:一个是变换后,可以一定程度上减小不可观测的误差和预测变量的相关性。主要操作是使得变换后的因变量与回归自变量具有线性相依关系,误差也服从正态分布,误差各分量是等方差且相互独立。第二个是用这个变换来使得因变量获得一些性质,比如在时间序列分析中的平稳性,或者使得因变量分布为正态分布。

3.2 高维空间转换特征

高维空间转换特征直白点说就是把一维的时序转化到高维。这个高维可能是二维(例如图片),或者更高维(例如相空间重构)。这种转换可以使得时序的信息被放大,从而暴露更多的隐藏信息。同时,这种方法增加了数据分析的计算量,一般不适用于大规模的时序分析

3.2.1 格拉姆角场(GAF)

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

计算过程:

  • 数值缩放:将笛卡尔坐标系下的时间序列缩放到[0,1]或[-1,1]区间

  • 极坐标转换:使用坐标变换公式,将笛卡尔坐标系序列转化为极坐标系时间序列

  • 角度和/差的三角函数变换:若使用两角和的 cos 函数则得到 GASF,若使用两角差的 cos 函数则得到 GADF208c3c4bea6a4f0994881b5e180d0a83.png

3.2.2 马尔科夫随机场

        马尔科夫随机场是随机场的特例,它假设随机场中某一个位置的赋值仅仅与和它相邻的位置的赋值有关,与其不相邻的位置的赋值无关。构建马尔科夫随机场,可以更清晰的展现时序分布的转化过程,捕捉更精确的分布变化信息。

3.3 降维转换特征

与高维空间转换特征相反,提取时间序列的降维特征常出现在多维时间序列分析方面,其主要是更快捕捉复杂时间序列中的主要特征,提高分析效率与速度,包括主成分分析(PCA),tSNE,张量分解等等,可以帮助我们从相关因素的角度来理解时间序列。

3.3.1 主成分分析(PCA)

主成分分析是一种分析、简化数据集的技术。其通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但这也不是一定的,要视具体应用而定。

3.3.2 张量分解

张量分解从本质上来说是矩阵分解的高阶泛化,常出现在推荐系统中。在实际应用中,特征张量往往是一个稀疏矩阵,即很多位置上的元素是空缺的,或者说根本不存在。举个例子,如果有 10000 个用户,同时存在 10000 部电影,我们以此构造一个用户评分行为序列的张量,这里不经想问:难道每个用户都要把每部电影都看一遍才知道用户的偏好吗?其实不是,我们只需要知道每个用户仅有的一些评分就可以利用矩阵分解来估计用户的偏好,并最终推荐用户可能喜欢的电影。

3.4 时频分析

时频分析是一类标准方法,常用在通信领域信号分析中,包括傅里叶变换,短时傅里叶变换,小波变换等,逐步拟合更泛化的时间序列。

174ccfc1bc5b4117972af0e8ae2733c4.png

傅里叶变换是一种线性的积分变换,常在将信号在时域(或空域)和频域之间变换时使用。其主要处理平稳的时间序列。当时序数据非平稳时,一般的傅里叶变换便不再适用,这里便有了短时傅里叶变换方法,其主要通过窗口分析,把整个时域过程分解成无数个等长的小过程,每个小过程近似平稳,再傅里叶变换,就知道在哪个时间点上出现了什么频率。

然而,我们无法保证所有等长的窗口都是平稳的,手动调整窗口的宽窄成本大,耗费人力。小波分解尝试解决这个问题,其直接把傅里叶变换的基换了——将无限长的三角函数基换成了有限长的会衰减的小波基。这样不仅能够获取频率,还可以定位到时间。

3.5 基于神经网络的特征工程

还有一种转换特征便是通过神经网络的方式自抽取特征表达。这种方式通常特征的解释性差,但效果好。一般来说,训练好的网络中间层输出可以被当做特征,例如自编码器模型 “Encoder-Decoder”,如果输入输出是时间序列的话,  Encoder 的输出可以当做一个输入被“压缩”的向量,那么当网络效果得还不错的时候,可以简单看做这个向量具备了这个时序的特征。

e4b34cfd0c434638b5824cf4d13f3625.png


4. 时间序列分类特征

分类特征一般结合具体的任务,比如时序预测,时序分类等,常常有标签(Label)信息来引导,其分析的特征也为具体的任务所服务,是一类常用的特征分析方法,一般通过机器学习中的有监督方式进行抽取。

4.1 字典特征(BoP)

字典方法旨在将时间序列通过变换,找到划分的阈值,进而将每个时序实值划分开,对应到某个字母表中。其通过滑动窗提取不同“单词”的出现频率,作为分类依据。这种方法的优势在于速度很快,而且抗噪效果好,缺点在于会损失很多有效的时序信息,只能进行粗粒度的时序分类分析。

47a951c779b742629223ffdc22cc7609.png

4.2 形态特征(Shapelet)

形态方法旨在捕捉时间序列分类任务中作为分类依据的有代表性的子序列形状。2012 年提出的 Shapelet 方法就是搜索这些候选的子序列形状以找到分类的依据,因为在真实世界中的时间序列往往存在有特征明显的形状,例如心电图数据一次正常心跳简化一下就是前后两个小的峰中间加一个高峰,那么如果其中缺了一块形状的话,可能就是作为鉴别异常心跳的依据。

ec389c14f99b4b39a4b9fddac49521cc.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值