主页地址为:https://tsfresh.com/
tsfresh
是一个定位于时间序列特征工程相关的工具包,包括对时间序列自动提取特征
、特征选择
、特征转换
等,最早于2018年由德国的几名学者提出和开发。也正因为是定位于特征工程
,所以tsfresh本身是不能用于实现时序预测或者时序分类等任务的,但可以基于其特征提取的结果完成后续的操作 ,例如进行多时序聚类
时首先应用tsfresh
完成对不同时序数据的特征是一个很好的选择。tsfresh
接收的时序数据类型为pandas
的dataframe
格式,时序数据的组织形式既可以长表
也可以是宽表
。在其提取的特征中, 主要是关于时序数据的各项统计指标,例如最大最小值、均值、中位数、峰值个数等等,另外也可以自定义一些参数来提取更为定制化的特征,直接调用extract_features
函数大概会得到几百个维度的特征提取结果,其中根据具体的时序数据取值可能会有较多的空值。tsfresh
提取的特征是关于时序数据的元特征,所以对于时序分类或聚类
可能会更加有用,但用于时序预测则意义不大。关于tsfresh的相关资料如下:
tslearn
是一个用于对时序数据(time series)的机器学习相关工具包,其实际定位也确实如此。该工具包是基于scikit-learn、numpy和scipy进行二次开发的工具包,所以其本质上可看做是将scikit-learn
中的主要功能面向时序数据进行了定制化的转换和开发 ,例如数据预处理、分类、回归(预测是一种特殊形式的回归任务)以及聚类等功能,总体而言是功能相近、风格一脉相承的。
tslearn
中主要支持的功能特性如下:
除了提供的功能与sklearn中的风格和使用方式十分接近外,tslearn有一个比较具有优势的特性在于,tslearn可以与其他时序工具包进行整合使用,除了scikit-learn外,还有前面刚刚提到的tsfresh、后续要介绍的sktime以及pyts等,某种程度上为了更加灵活快速的使用多个工具包提供了便利。
然而,总的来看,tslearn
其实并没有太大的吸引力,一方面其并未提供具有时序特色的独立功能,而主要是对sklearn
中相关模块面向时序数据的定制化改造和适配,更别提时序数据中一系列经典的统计学模型和近年来火热的循环神经网络
等;另一方面,该工具包的更新频率是比较迟滞的,从github
中可以看出其最近一次更新也在5个月前。
关于tslearn
的相关参考信息如下:
sktime
与tslearn
比较接近,也是一个scikit-learn
风格的时序分析工具包,主要功能大体也可分为时序预测
、时序分类
、时序回归
(与时序预测任务较为接近)、时序聚类
等,其中有些功能属于已经比较成熟,而有些模块则仍在实验开发中。sktime
工具包的功能特性如下:
虽然sktime
与tslearn
类似,同样延续了sklearn
的API风格(例如模型训练用fit
、预测用predict
,评分用score
等等),但在功能上sktime
却并没有太多sklearn
中的元素,例如对于时序预测任务,sktime中主要提供的是经典的统计学模型系列(ARIMA,ETS,以及比较火热的prophet等),同时也提供了模型Ensemble能力和AutoML功能(可便于模型自动调参和优化)。与此同时,sktime也集结了一些深度学习的模型,包括Transformer等,这也为sktime提供了更强的竞争力。
关于sktime的相关参考信息如下:
总体而言,三个时序工具包各有特色,提供的功能也互为补充: