当前位置: 首页 > 科技观察

八种时间序列分类方法总结

时间:2023-03-14 09:06:02 科技观察

时间序列分类是应用机器和深度学习模型的常见任务之一。这篇文章将涵盖8种类型的时间序列分类方法。这包括从简单的距离或基于间隔的方法到使用深度神经网络的方法。这篇文章旨在作为所有时间序列分类算法的参考文章。时间序列定义在介绍各种类型的时间序列(TS)分类方法之前,我们首先统一时间序列的概念,TS可以分为单变量TS或多变量TS。单变量TS是一组有序的(通常)实数值。多变量TS是一组单变量TS。每个时间戳都是一个向量或实数值数组。单变量或多变量TS的数据集通常包含一组有序的单变量或多变量TS。此外,数据集通常包含由单个编码向量表示的标签,其长度表示不同类别的标签。TS分类的目标是通过在给定数据集上训练任何分类模型来定义的,这样模型就可以在提供的数据集上学习概率分布。也就是说,模型应该学会在给定TS时正确分配类标签。基于距离的方法基于距离或最近邻的TS分类方法使用各种基于距离的度量来对给定数据进行分类。它是一种监督学习技术,其中新TS的预测取决于与其最相似的已知时间序列的标签信息。距离度量是描述两个或多个时间序列之间距离的函数,它是确定性的。典型的距离度量有:p范数(如曼哈顿距离、欧几里得距离等)动态时间规整(DTW)确定度量后,通常应用k最近邻(KNN)算法,它测量新的TS和训练数据集所有TS之间的距离。计算完所有距离后,选择k个最接近的。最后,新的TS被分配到k个最近邻居中的大多数所属的类别。虽然最流行的范数肯定是p范数,尤其是欧氏距离,但它们有两个主要缺点,使它们不太适合TS分类任务。由于仅针对相同长度的两个TS定义范数,因此在实践中并不总是可以获得相同长度的序列。Norm只是独立比较每个时间点的两个TS值,但大多数TS值是相互关联的。另一方面,DTW可以解决p范数的两个限制。经典DTW最小化时间戳可能不同的两个时间序列点之间的距离。这意味着轻微移动或扭曲的TS仍然被认为是相似的。下图可视化了基于p范数的度量与DTW工作原理之间的差异。DTW与KNN结合,作为TS分类各种基准评估的benchmark基准算法。KNN也可以作为决策树来实现。例如,邻域森林算法对决策树森林建模,使用距离度量来划分TS数据。基于区间和频率的方法基于区间的方法通常将TS分割成多个不同的区间。然后使用每个子序列来训练单独的机器学习(ML)分类器。生成了一组分类器,每个分类器作用于它自己的区间。计算单独分类的子序列中最常见的类别将返回整个时间序列的最终标签。TimeSeriesForest基于区间的模型最著名的代表是TimeSeriesForest。TSF是建立在初始TS的随机子序列上的决策树集合。每棵树负责将一个类分配给一个区间。这是通过计算汇总特征(通常是平均值、标准差和斜率)来为每个区间创建特征向量来完成的。然后根据计算的特征训练决策树,并通过所有树的多数投票获得预测。投票过程是必要的,因为每棵树只评估初始TS的某个子序列。除了TSF,还有其他基于区间的模型。TSF的变体使用额外的特征,例如子序列的中值、四分位数间距、最小值和最大值。与经典的TSF算法相比,还有一种比较复杂的算法,称为随机区间谱集成(RISE)算法。RISERISE算法在两个方面不同于经典的TS森林。每棵树使用一个TS间隔。它是通过使用从TS中提取的光谱特征来训练的(而不是使用汇总统计数据作为均值、斜率等)。在RISE技术中,每个决策树都建立在不同的集合上。部分自相关特征。该算法的工作原理如下:选择TS的第一个随机区间,并在这些区间上计算上述特征。然后通过组合提取的特征创建一个新的训练集。在此基础上,训练决策树分类器。最后,使用不同的配置重复这些步骤以创建集成模型,该模型是单个决策树分类器的随机森林。基于字典的方法基于字典的算法是另一类TS分类器,它基于字典的结构。它们涵盖了大量不同的分类器,有时可以与上述分类器结合使用。以下是涵盖的基于字典的方法列表:模式袋(BOP)符号傅立叶近似(SFA)通过滑动窗口“WORDS”提取。然后通过确定“WORDS”的分布来完成最终分类,这通常是通过对“WORDS”进行计数和排序来完成的。这种方法背后的理论是时间序列是相似的,这意味着如果它们包含相似的“WORDS”,它们就属于同一类。基于字典的分类器的主要过程通常是相同的。在TS上运行特定长度的滑动窗口将每个子序列转换为“WORDS”(具有特定长度和一组固定的字母)以创建这些直方图下面是最流行的基于字典的分类器的列表:Bag-of-模式算??法Bag-of-Patterns(BOP)算法的工作原理类似于用于文本数据分类的Bag-of-Patterns算法。该算法计算单词出现的次数。从数字(此处为原始TS)创建单词的最常见技术称为符号聚合近似(SAX)。首先将TS分成不同的chunk,然后对每个chunk进行归一化,即均值为0,标准差为1。通常一个词的长度比子序列中实数值的个数要长。因此,对每个块进一步应用合并。然后计算每个bin的平均实际值,并将其映射到一个字母。例如,对于所有低于-1的平均值,分配字母“a”,所有大于-1且小于1的值“b”,所有大于1的值“c”。下图可视化了这个过程。这里每个段包含30个值,这些值被分为6个组,每个组分配三个可能的字母以形成一个五个字母的单词。最后,将每个单词的出现次数相加并用于分类,方法是将它们插入最近邻算法。SymbolicFourierApproximation与上述BOP算法的思想相反。在BOP算法中,将原始TS离散为字母,再离散为单词,类似的方法可以应用于TS的傅立叶系数。最著名的算法是符号傅里叶逼近(SFA),它可以分为两部分。计算TS的离散傅立叶变换,同时保留计算系数的子集。Supervised:单变量特征选择用于根据F-统计量或χ2-统计量等统计量独立离散化,将TS的TS子序列转换为单个词,从而选择排名较高的系数。监督:计算分箱边缘,使实例熵的杂质标准最小化。Unsupervised:BinningedgeswerecomputedbasedontheextremaoftheFouriercoefficients(binsuniform)oronthesequantiles(thesamenumberofcoefficientsineachbin)基于上述预处理,每个可以使用不同的算法来进一步处理信息以获得TS的预测。BOSSBag-of-SFA-Symbols(BOSS)算法的工作原理如下:通过滑动窗口机制提取TS的子序列对每个片段应用SFA变换,返回一组有序的单词计算每个单词的频率,这将直方图产生TS词的分类是通过应用KNN等算法结合自定义BOSS度量(欧氏距离的微小变化)来进行的。BOSS算法的变体包含许多变体:BOSSEnsembleBOSSEnsemble算法通常用于构建多个单独的BOSS模型,每个模型在参数方面都不同:字长、字母大小和窗口大小。这些配置捕获各种长度的图案。通过网格搜索参数并仅保留最佳分类器来获得大量模型。向量空间中的BOSS向量空间中的BOSS(BOSSVS)算法是单个BOSS方法的变体,它使用向量空间模型,计算每个类的直方图,并计算词频逆文档频率(TF-IDF)矩阵。然后通过找到每个类的TF-IDF向量与TS本身的直方图之间余弦相似度最高的类来获得分类。可收缩BOSS可收缩BOSS(cBOSS)算法在计算上比经典BOSS方法快得多。加速是通过网格搜索而不是整个参数空间而是从中随机选择的样本来实现的。cBOSS为每个基本分类器使用数据的子样本。cBOSS通过只考虑固定数量的最佳基分类器而不是所有超过某个性能阈值的分类器来提高内存效率。随机BOSSBOSS算法的下一个变体是随机BOSS(RBOSS)。该方法在滑动窗口长度的选择中加入了一个随机过程,并巧妙地聚合了各个BOSS分类器的预测。这类似于cBOSS变体,在减少计算时间的同时仍保持基线性能。WEASETS分类器提取(WEASEL)算法通过在SFA变换中使用不同长度的滑动窗口来提高标准BOSS方法的性能。与其他BOSS变体类似,它使用各种长度的窗口大小将TS转换为特征向量,然后由KNN分类器对其进行评估。WEASEL使用特定的特征推导方法,通过仅对每个滑动窗口的非重叠子序列进行χ2检验来过滤出最相关的特征。将WEASEL与多元无监督符号(WEASEL+MUSE)相结合,通过将上下文信息编码到每个特征中,从TS中提取和过滤多元特征。基于Shapelet的方法。基于shapelet的方法使用初始时间序列的子序列(即shapelet)的思想。选择shapelet是为了将它们用作类代表,这意味着shapelet包含类的主要特征,可以用来区分不同的类。在最佳情况下,他们可以检测同一类内TS之间的局部相似性。下图给出了一个shapelet的例子。它只是整个TS的一个子序列。使用基于shapelet的算法涉及确定使用哪些shapelet的问题。可以通过手工制作一组shapelet来选择,但这可能非常困难。也可以使用各种算法自动选择shapelet。AlgorithmbasedonShapeletextractionShapeletTransform是Lines等人提出的一种基于Shapelet提取的算法。是目前最常用的算法之一。给定n个实值观测值的TS,shapelet由长度为l的TS的子集定义。shapelet和整个TS之间的最小距离可以使用shapelet本身和从TS开始的长度为l的所有shapelet之间的欧几里德距离-或任何其他距离度量。然后算法选择k个长度在一定范围内的最佳shapelet。这一步可以看作是一种单变量特征提取,其中每个特征由shapelet和给定数据集中所有TS之间的距离定义。然后根据一些统计数据对shapelet进行排名。这些通常是f统计量或χ2统计量,它们根据区分类别的能力对shapelet进行排序。完成上述步骤后,可以应用任何类型的ML算法对新数据集进行分类。例如基于knn的分类器、支持向量机或随机森林等。寻找理想shapelet的另一个问题是可怕的时间复杂度,它随训练样本的数量呈指数增长。基于Shapelet学习的算法基于Shapelet学习的算法试图解决基于Shapelet提取的算法的局限性。这个想法是学习一组能够区分类的shapelet,而不是直接从给定的数据集中提取它们。这样做有两个主要优点:它获得了不包含在训练集中但对班级有很强辨别力的小形状。不需要在整个数据集上运行算法,可以显着减少训练时间,但这种方法也有一些缺点,因为使用了可微分的最小化函数和选择的分类器。我们必须依赖可微函数而不是欧几里得距离,以便可以通过梯度下降或反向传播算法来学习shapelet。最常见的依赖于LogSumExp函数,它通过取其参数的指数总和的对数来平滑地逼近最大值。由于LogSumExp函数不是严格凸函数,因此优化算法可能无法正确收敛,这意味着它可能导致局部极小值不好。并且由于优化过程本身是算法的主要组成部分,因此需要添加多个超参数进行调优。但该方法在实践中非常有用,可以对数据产生一些新的见解。基于内核的方法基于shapelet的算法的一个细微变化是基于内核的算法。学习并使用随机卷积核(最常见的计算机视觉算法),它从给定的TS中提取特征。随机核变换(ROCKET)算法专为此目的而设计。.它使用大量的内核,这些内核的长度、权重、偏置、膨胀和填充各不相同,并且是从固定分布中随机创建的。选择内核后,您还需要一个分类器,它可以选择最相关的特征来区分类。原始论文使用岭回归(线性回归的L2正则化变体)来执行预测。使用它有两个好处,首先是它的计算效率,即使对于多类分类问题也是如此,其次,使用交叉验证可以轻松微调独特的正则化超参数。使用基于内核或ROCKET算法的核心优势之一是它们的使用计算成本相当低。基于特征的方法基于特征的方法通常可以涵盖大多数算法,这些算法对给定的时间序列使用某种特征提取,然后是执行预测的分类算法。关于特征,从简单的统计特征到更复杂的基于傅立叶的特征。在hctsa(https://github.com/benfulcher/hctsa)中可以找到大量此类功能,但尝试和比较每个功能可能是一项不可能完成的任务,尤其是对于较大的数据集。因此提出了典型的时间序列特征(catch22)算法。Catch22算法该方法旨在推断一小组TS特征,这不仅需要强大的分类性能,还需要进一步减少冗余。catch22从hctsa库中一共选取了22个特征(该库提供了4000多个特征)。该方法的开发者通过在93个不同的数据集上训练不同的模型获得22个特征并在其上评估表现最好的TS特征,获得了一个仍然保持优异性能的小子集。它上面的分类器可以自由选择,这使得它成为另一个需要调整的超参数。MatrixProfileClassifier另一种基于特征的方法是MatrixProfile(MP)分类器,它是一种基于MP的可解释TS分类器,可提供可解释的结果,同时保持基线性能。设计人员从基于shapelet的分类器中提取了一个名为MatrixProfile的模型。该模型表示TS的子序列与其最近邻居之间的所有距离。通过这种方式,MP能够有效地提取TS的特征,例如motif和discord,motif是TS中彼此非常相似的子序列,而discords描述的是彼此不同的序列。作为理论分类模型,可以使用任何模型。该方法的开发者选择了决策树分类器。除了上面提到的这两种方法,sktime还提供了一些更基于特征的TS分类器。ModelEnsembleModelEnsemble本身并不是一个独立的算法,而是一种组合各种TS分类器以创建更好的组合预测的技术。模型集成通过组合多个单独的模型来减少方差,类似于使用大量决策树的随机森林。使用各种类型的不同学习算法会导致更广泛和更多样化的学习特征集,这反过来会导致更好的类别区分。最受欢迎的模型集成是HierarchicalVoteCollectiveofTransformation-basedEnsembles(HIVE-COTE)。它存在许多不同种类的相似版本,但它们的共同点是通过对每个分类器使用加权平均值来组合来自不同分类器的信息,即预测。Sktime使用两种不同的HIVE-COTE算法,第一种结合了每个估计器的概率,包括shapelet变换分类器(STC)、TS森林、RISE和cBOSS。第二种由STC、多样化典型区间森林分类器(DrCIF,TS森林的变体)、Arsenal(ROCKET模型的集合)和TDE(BOSS算法的变体)的组合定义。最终预测由CAWPE算法获得,该算法为每个分类器分配权重,这些分类器是根据训练数据集上分类器的相对估计质量获得的。下图是用于可视化HIVE-COTE算法的工作结构的常用图表:基于深度学习的方法关于基于深度学习的算法,可以单独写一篇很长的文章来解释每个架构的所有细节。但本文仅提供一些常用的TS分类基准模型和技术。虽然基于深度学习的算法在计算机视觉和NLP等领域很受欢迎并被广泛研究,但它们在TS分类领域并不常见。法瓦兹等。在他们关于TS分类的深度学习的论文中对当前最先进的方法进行了详尽的研究:具有六种架构的60多种神经网络(NN)模型的总结:多层感知器全卷积神经网络(CNN)回声状态Networks(basedonRecurrentNNs)EncoderMulti-ScaleDeepCNNTimeCNN以上大部分模型最初都是为不同的用例开发的。所以需要根据不同的用例进行测试。同样在2020年发布的还有InceptionTime网络。InceptionTime是五个深度学习模型的集合,每个模型都是用Szegedy等人首先提出的InceptionTime创建的。这些初始模块同时将多个不同长度的过滤器应用于TS,同时从TS的较短和较长子序列中提取相关特征和信息。下图显示了InceptionTime模块。它由多个以前馈方式堆叠并与残差连接的初始模块组成。最后,全局平均池化和全连接神经网络生成预测结果。下图显示了一个正在运行的初始模块。总结本文总结的大量算法、模型和技术,不仅可以帮助理解时间序列分类方法的广阔领域,希望对您有所帮助