在选择了需要提取的特征,确定了时序数据特征提取数据集的长度并对先验知识建模之后,就需要利用工具搭建特征提取系统。科研机构围绕不同问题域搭建的开源时序数据特征提取工具已经不少,我们可以利用这些工具快速实现希望达成的算法效果。下面介绍几种常用的时序特征提取工具(如python tsfresh,Time Series Feature Extraction Library (TSFEL),cesium、fats和hctsa),以供我们在做时序数据分析过程中技术选型参考。这些工具包提供的特征提取算法能力和支持的特征范围差别较大,适用场景也有所不同,比如FATS是哈佛大学起初为天文学光曲线时序数据特征提取专门设计的,hctsa 主要用来做生物学自动化时序表型量测(Phenotype measurements)大规模特征提取,加州大学伯克利分校开发的Cesium则更适合用来做通用场景的特征提取工具。
Python tsrefresh (Time Series FeatuRe Extraction on basis of Scalable Hypothesis tests)
Python tsrefresh是比较常用的时序特征生成库,已经实现了相对比较全面的时序特征提取,目前tsrefresh提供了63种方法来识别时序数据特点,能够识别提取794种时序特征,通过实现python机器学习算法包pandas 和scikit-learn的API接口,tsrefresh能够无缝对接时序数据机器学习探索式分析或生产系统分析过程中,帮助降低通用算法开发定制工作量。
目前tsrefresh主要覆盖一下几大类:
-
描述性统计特征:用统计学方法提取的时序数据特征,例如:Augmented Dickey–Fuller test value,AR(k) coefficient,autocorrelation for a lag(k)。
-
物理原理启发式特征:物理启发的非线性和复杂性特征指标,例如:c3()函数,用来衡量时序数据非线性特性的方法,利用滞后运算符L通过公式计算量化值;cid_ce()函数,衡量时序复杂性的特征指标,通过计算从0到的平方根获得量化值;friedrich_coefficients()函数,用来衡量复杂非线性运动的模型拟合系数,作为特征提取度量。
-
历史数据压缩计数:此类特征包涵在指定时间窗口序列中出现多次的数据值求和;在时序数据中连续出现大于/小于平均值的最长序列长度;时序中最先出现最大值或最小值。
Time Series Feature Extraction Library (TSFEL)
TSFEL是基于Numpy和Scipy包基于 Python3扩展开发的时序数据特征提取软件包,能够兼容常用的机器学习软件包Pandas和scikit-learn。功能上,TSFEL支持涵盖时域和频域统计的60种的特征提取,支持扩展订制开发。除软件包之外,TSFEL提供了基于Google Sheets API开发的电子表单界面,方便用户通过界面配置特征提取参数配置。在设计上,TSFEL借鉴了同类时序特征分析工具cesium、hctsa、tsfresh和fats的设计理念,并在应用场景上进一步扩展了在计算能力有限的边缘设备,甚至终端设备(如手机、可穿戴设备、在场部署安防设备等)上提取时序数据特征(如人行为识别Human Activity Recognition (HAR),异常情况识别等)的能力。
相比同类型工具,TSFEL提供的主要能力特点包括:
-
面向终端客户提供更加直观的界面选择特征和定制化特征提取过程的能力
-
计算复杂度评估,支持在提取特征之前评估计算成本,以适应算力有限的终端设备和边缘计算节点运行环境。
-
每一种特征提取算法都提供至少一种单元测试工具来验证有效性,支持通过域合成的已知概率分布的时序数据对比来验证提取出来的如周期性、常量、额外噪音等参数的有效性。
-
提供扩展框架,支持自定特征提取算法实现。
Cesium开源Python时序数据特征提取框架
Cesium是加州大学伯克利分校劳伦斯伯克利国家实验室的Brett Naul等人用Python语言开发的端到端时序数据分析框架,以补充现有机器学习算法只处理特征提取后的数据集的不足。Cesium除了包涵工具算法包之外,还提供web前端管控界面用以支持图形化方式的时序原始数据标记和围绕特定机器学习算法的特征匹配。在Cesium的web前端操作的每一个步骤都可以导出同步到Jupyter notebook以方便结合时序分析其他步骤算法使用,图2为利用Cesium自动提取时序特征图形效果。
Cesium依赖xarray, dask, Celery, Flask, 和scikit-learn等Python包开发,旨在简化时序数据分析过程中特征提取通用算法的开发实现,让数据分析人员更聚焦围绕具体问题的时序数据分析算法设计。相比同类型工具,Cesium不但提供了算法包和服务,也有图形化界面,更适合机器学习背景知识不多的业务数据分析人员来用,除了代码集成调用,内置的web工具可以方便初学者快速入手。Cesium算法框架以python包的形式提供代码集成,主要包含以下功能:
-
支持处理通过常规采样和非常规采样方式得到的时序数据集;
-
能够侦测记录量测错误,精度达到特定时刻的特定数据点;
-
支持多通道数据,输入数据的每一个维度的数据都能够单独计算特征。
FATS: FEATURE ANALYSIS FOR TIME SERIES
FATS是哈佛大学工程与应用科学学院的Isadora Nu等人在2015年提出的针对天文学光曲线时序数据特征提取工具。天文学望远镜采集的时序数据通常为分布在时间序列范围内的特定天体明暗变化数据,有周期性,通常被称为亮度曲线(light-curve)。通过从亮度曲线提取变量特征,我们可以将天体划分为类星体特征(quasars)、长周期变量特征(long period variables)等。
FATS工具库聚焦天文学特定场景时序数据分析,可以从实际业务需求出发设计更加具体、目标明确的特征提取算法,但对于其他场景时序分析,可以借鉴同类型数据的特征提取算法设计,但直接拿来用则缺少通用性和普适性。
hctsa 自动化时序表型量测(Phenotype measurements)大规模特征提取计算框架
生物学中有机体可被观测到的结构、功能等表面形态方面的特征,如行为等通常被称为表型(Phenotype)数据,这些数据通常也以时序数据流的形式采集存储分析。实际使用过程中,这些数据通常要经过统计和关联分析,比如,将有机体动态移动特征和遗传特征关联,将大脑活动量测数据与某种疾病诊断特征匹配,这就需要对大量高维表型时序数据做特征提取,关联分析。hctsa就是针对这种场景设计开发的海量特征提取工具软件包,它能够实现超过7700种时序特征的提取,并支持自动匹配分析和数据可视化算法。通过hctsa提供的图形化工具,时序数据特征提取结果可以以特征矩阵的方式展现,行数据代表输入的时间序列,列数据代表提取出的特征值。