2024.1.15
最近基于时序数据训练分类算法,对其进行了一番了解,主要围绕以下几点:
- 时序数据算法有哪些细分类?
- 时序数据分类算法经典模型?
- 当下时序分类算法模型强baseline?
- 有没有现成的工具?
1.时序数据算法有哪些细分类?
时序数据(Time Series)简称TS
其包括两类算法:
- 时间序列预测(Time Series Forecast,TSF)
根据过去的时间序列预测未来一段时间的序列。eg:股价预测 - 时间序列分类(Time Series Classify,TSC)
根据一段时间序列预测其类别。eg:根据心电图预测是否有某类疾病;根据手环的传感器信号预测佩戴者当前的运动类型。
本文讨论TSC。
多说一点:时间序列根据其特征维度数量的不同,可以分为一元时间序列(TS只和一个特征相关)和多元时间序列(TS和多个特征相关)。
2.时序数据分类算法经典模型
通过我一通调研,直观总结出一下几类经典模型,具体模型细节不展开。
- KNN+DTW
这是比较早的一个解决方案,很长一段时间,DTW都是作为一个强baseline用来比较深度学习算法的性能 - CNN类
一维卷积神经网络在TSC中表现非常好,其中,2018年的TCN已经可以完全取代CNN,而后,出现了各种TCN变体。
最新的SOTA算法也基本上有卷积神经网络。 - RNN类
RNN类(如LSTM,GRU)通常不适合TSC。 - Transformer类
这是新的研究趋势,而且效果不错
这里没有介绍具体的模型,因为很多都已经过时了,不需要过多了解,直接推荐下面的强baseline,花时间了解它们即可。
3.当下时序分类算法模型强baseline
经过我一番调研,最终荣获此殊荣的有以下几位:
InceptionTime
- InceptionTime: Finding AlexNet for Time Series Classification Data Min. Know. Disc. 2020
HIVE-COTE家族
- HIVE-COTE:Time Series Classification with HIVE-COTE: The Hierarchical Vote Collective of Transformation-based Ensembles
- HIVE-COTE 2.0: a new meta ensemble for time series classification.
Rocket家族
- ROCKET: exceptionally fast and accurate time series classification using random convolutional kernels
- MiniRocket: A Very Fast (Almost) Deterministic Transform for Time Series Classification Angus
- MultiRocket: Effective summary statistics for convolutional outputs in time series classification
SOTA大PK
结论:
上面各个模型之间的性能比较,均来自这篇综述:
Bake off redux: a review and experimental evaluation of recent time series classification algorithms
简而言之:
从性能上看,HIVE-COTE 2.0是当下最强的模型,其次是Hydra-MultiRocket,两者都是藐视众生一版的存在。后者虽然性能比比前者的差一点点,但是它训练非常快哦,甩前者好几条街(见下图,MultiRocket项目提供),所以其实更推荐后者,而且更重要的一点:HIVE-COTE 2.0并没有开源,是的,想用也用不到。🤣
4.有没有现成的工具?
Rocket家族都是有开源的,可以直接用。
除此外,我还发现了一个宝藏😲,非常之哇塞——tsai:
https://github.com/timeseriesAI/tsai
里面包含了很多模型,可用于TSF和TSC
这是这个库的介绍文档:
https://timeseriesai.github.io/tsai/
里面主推三类算法:InceptionTime、Rocket、TST
想必掌握了这三个,TS就游刃有余了
参考资料
1.知乎:时间序列分类-Rocket到MiniRocket再到MultiRocket
2.知乎:时间序列数据如何分类并进行特征提取?
3Bake off redux: a review and experimental evaluation of recent time series classification algorithms【非常值得一看】