学术论坛第五期:时序序列分类算法概述

图片

学术论坛·第五期

推荐阅读时长:8min

前言

学术论坛第五期我们有幸邀请到中国矿业大学(北京)博士、云智慧智能研究院算法工程师徐同学,从时序序列分类的概念、研究意义、基本框架及算法总结四个方面带来对时间序列分类算法的总结概述,下面就让我们一起来学习吧~

学术论坛内容

一、什么是时间序列分类

二、为什么要研究时间序列分类

三、时间序列分类问题基本框架

四、时间序列分类算法总结与典型算法介绍

一、什么是时间序列分类

1.分类任务

分类任务是一个机器学习领域的任务,目的是让算法通过学习为未知样本分配标签。典型案例是将一封邮件分类为垃圾邮件和非垃圾邮件。

分类任务又可细分为以下四类:

  • 二分类问题:将样本分为两类,如图1所示;

  • 多分类问题:将样本分为多类,如图2所示;

  • 多标签分类:同一样本被赋予多个标签;

  • 不平衡分类:正负样本数量比例悬殊。

图片

图1 二分类问题

图片

图2 多分类问题

2.时间序列分类

时间序列分类是一项在多个领域均得到应用的通用任务,目的是利用标记好的训练数据,确定一个时间序列属于预先定义的哪一个类别。时间序列分类不同于常规分类,因为时序数据是具有顺序属性的序列。如图3所示的心电图信号样本,它表示一个心跳活动。根据信号特征的不同可以加以区分,左边表示正常心跳,而右边表示心肌梗死。

图片

图3 正常心跳(左)与心肌梗死(右)

时间序列分类任务需要对样本进行学习,进而进行分类,因此这个任务有监督学习的作用。该任务可细分为两类:单指标时间序列分类和多指标时间序列分类。本文的算法阐述聚焦在单指标时间序列分类问题。

二、为什么要研究时间序列分类

时间序列分类可以在以下场景发挥作用

  1. 预测算法与数据的匹配,辅助算法选型,提升预测准确性;

  2. 异常检测算法与数据匹配,辅助选型,提升检测准确性,减少计算量;

  3. 预测算法的预处理,例如检测数据周期性并剔除,以进行正常历史数据的学习;

  4. 异常检测算法的预处理,例如银行跑批任务需将周期数据剔除,再进行异常检测;

  5. 时间序列数据分析,不同类型数据占比、不同类型数据重要程度。

三、时间序列分类问题基本框架

1.基本框架

时间序列分类问题可以粗略划分为两个主要步骤:特征提取和分类器分类,如图4所示。

图片

图4 时间序列分类基本框架

特征提取指从原始时间序列数据中提取能够较好表示原序列的特征。

分类器将提取的特征作为输入,输出原序列的类别标签。

2.KNN分类器

KNN(k-nearest neighbors)分类器是一类基础分类器,其中最常用的是1-NN分类器。KNN分类器分为训练和分类两个阶段。在训练阶段,只需把训练样本以及样本标签存储起来;在分类阶段,首先设定近邻样本数量常数K,然后计算与待分类样本最接近的K个训练样本,最后采用多数表决的方式判定类别,即出现最多类别作为待分类样本类别。

例如第一章节心电图的例子,有若干心电图信号序列,根据每个序列是否正常,分别赋予0和1的标签。然后,用1-NN算法进行训练,即存储所有样本序列;当新样本到来,需要计算新样本与所有训练样本的距离,比如欧式距离,找出距离最近的样本对应的类别,即为新样本的类别。

3.算法评价与UCR数据集

算法效果的好坏需要一个客观的评价机制,这就离不开开源数据集。开源数据集为算法的公平比较以及沟通交流提供了平台,为算法研究领域的快速发展打下了基础。在时间序列分类领域,UCR(全称)开源数据集扮演了这样一个角色

图片

图5 UCR数据集

如图5所示,UCR是一个时间序列分类领域的数据仓库,包含多种不同类型的数据集,按照不同的应用领域和具体业务类型划分,例如上文的心电图数据集。

图片

图6 算法评价

在评价一个算法时,需要在所有数据集上测试算法效果,最终按照评价机制给出综合评分,如图6所示。图6展示了14种算法的评价结果,对应评分越靠近1代表算法综合评分越高,被黑色横线覆盖的算法代表效果无显著差异

四、时间序列分类算法总结与典型算法介绍

1.时间序列分类算法归类

主讲人通过阅读大量时间序列分类文献,将时间序列分类算法总结为两个大类,11个小类,如图7所示。这里将时间序列分类算法分为传统方法和深度学习方法两大类,传统方法包括全局特征类、局部特征类、模型类和集成类,深度学习方法又分为生成式模型和判别式模型。

图片

图7 时间序列分类算法归类

2.典型算法介绍

# 全局特征

全局特征分类算法将完整时间序列作为特征,计算时间序列间的相似性来进行分类,通常采用距离度量函数与1-NN相结合的方式。该类方法的研究方向为用于度量完整时间序列相似性的距离度量函数。

  • 典型全局特征算法-dtw

如果我们允许序列的点与另一序列的多个连续的点相对应(相当于把这个点所代表的音调发音时间延长),然后再计算对应点之间的距离之和,这就是dtw算法。dtw算法允许序列某个时刻的点与另一序列多个连续时刻的点相对应,称为时间规整(Time Warping),如图8所示。

图片

图8 dtw距离计算示意

  • 典型全局特征算法-差分距离法

差分距离法计算原始时间序列的一阶微分,然后度量两个时间序列的微分序列的距离,即微分距离。差分法将微分距离作为原始序列距离的补充,是最终距离计算函数的重要组成部分。

差分距离法将位于时间域的原时间序列和位于差分域的一阶差分序列相结合,提升分类效果。研究方向主要是如何将原序列和差分序列合理结合,差分距离法的演进过程如图9所示。

图片

图9 差分距离算法发展过程

# 局部特征

局部特征类分类算法,将时间序列中的一部分子序列作为特征用于时间序列分类。该类算法的关键在于寻找能够区分类别的局部特征。由于子序列更短,因此构建的分类器速度更快,但需要一定的时间来寻找局部特征。

  • 典型局部特征算法-间隔(interval)

局部特征类中的间隔法将时间序列划分为几个间隔区间(interval),从每个区间中提取特征。该类方法适用于长序列中带有相位依赖并具有区分度的子序列,以及噪声。基于间隔的时间序列分类算法发展历程如图10所示。

图片

图10 基于间隔的分类算法发展过程

  • 典型局部特征算法-shapelet

shapelet分类算法通过在序列中查找最具辨别性的子序列用于分类,其中shapelet指一个与位置无关的最佳匹配子序列。该类算法适用于可以通过序列中的一种模式定义一个类,但是与模式的位置无关的分类问题。例如前面的心电图异常案例,异常可能发生在任何位置,通过序列的异常点序列段可以进行分类。

shapelet算法的特点是可解释性强,如图11所示,通过Class27、Class28、Class32三条序列的匹配结果,可以清楚地了解匹配结果的原因。

图片

图11 shapelet分类算法示意图

  • 典型局部特征算法-字典类

shapelet分类算法由于需要花费大量时间搜索子序列,因此更适用于短序列。对于长序列中一种模式反复出现的时间序列,更适用于一种叫做dict字典类的分类算法。该类算法以序列中子序列的重复频率作为特征进行分类。首先对序列进行降维和符号化表示,形成单词序列,然后根据单词序列中的单词分布情况进行分类。字典类分类算法的演进过程如图12所示。

图片

图12 字典类算法演进过程

本文简要介绍了全局特征与局部特征的典型算法

在学术论坛中,徐同学就各个典型算法

进行了详细的介绍与举例说明

感兴趣的同学快戳下方链接观看~

END

图片

点击下方“阅读原文”查看论坛视频

↓↓↓

https://www.bilibili.com/video/BV1uR4y1E7Gi?share_source=copy_webicon-default.png?t=LA92https://www.bilibili.com/video/BV1uR4y1E7Gi?share_source=copy_web

  • 2
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 写关于时序分类算法可以使用递归神经网络(Recurrent Neural Network,RNN),卷积神经网络(Convolutional Neural Network,CNN),以及长短期记忆网络(Long Short-Term Memory,LSTM)等技术。 ### 回答2: 时序数据的分类算法是对时间序列数据进行分类的方法。在进行时序数据分类之前,需要先对数据进行预处理,包括数据清洗、数据归一化等。 首先,选择合适的特征提取方法。对于时序数据,在时间维度上进行特征提取是常见的做法。常用的特征提取方法有统计特征、频域特征和时域特征等。统计特征包括均值、方差、最大值、最小值等;频域特征可以利用傅里叶变换得到,包括频率、功率谱等;时域特征包括自相关函数、互相关函数等。 然后,选择合适的分类算法。常用的分类算法有决策树、朴素贝叶斯、支持向量机、深度学习等。对于时序数据,可以考虑使用基于模型的分类方法,如隐马尔可夫模型、动态时间规整模型等。 接下来,选择合适的评估指标。对于时序数据的分类,可以使用准确率、召回率、F1值等指标进行评估。另外,也可以使用混淆矩阵、ROC曲线等进行评估。 最后,进行模型训练和预测。将预处理后的时序数据输入到分类模型中进行训练,调整模型参数,选择最佳模型。然后使用测试集进行预测,并进行评估。 需要注意的是,时序数据的分类还需要考虑到时间的连续性和相关性,以及样本不平衡等问题。因此,在进行时序数据分类算法时,需要综合考虑数据的特点和实际问题,选择合适的方法和策略。 ### 回答3: 时序分类算法是通过对时间序列数据进行建模和分类,以识别和预测特定的模式和趋势。下面是一个关于如何编写时序分类算法的基本步骤: 1. 数据准备:收集和准备时间序列数据,确保数据的完整性和一致性。包括数据的清洗、去除异常值、处理缺失值等预处理工作。 2. 特征提取:通过对时间序列数据进行特征提取,将其转化为可供机器学习算法处理的特征向量。常用的特征提取方法包括统计指标、频域分析、小波分析等。 3. 数据划分:将数据划分为训练集和测试集,一般按照时间顺序划分,确保训练集和测试集的数据不重叠。 4. 模型选择:选择适合时序分类问题的模型。常用的模型包括支持向量机(SVM)、决策树、随机森林、神经网络等。根据实际问题的特点选择合适的模型。 5. 模型训练:使用训练集对选择好的模型进行训练。通过调整模型的参数、采用交叉验证等方式来提高模型的泛化能力。 6. 模型评估:使用测试集对训练好的模型进行评估,计算模型的准确率、召回率、F1值等性能指标。同时可以使用混淆矩阵、ROC曲线等进行模型评估和选择。 7. 模型调优:根据评估结果,对模型进行调优,如调整模型的参数、选择合适的特征、增加新的特征等,以提高模型的性能。 8. 模型应用:对新的时间序列数据使用训练好的模型进行分类,预测其所属的类别。 总结起来,编写时序分类算法需要进行数据准备、特征提取、数据划分、模型选择、模型训练、模型评估、模型调优和模型应用等一系列步骤,以提高模型的准确性和泛化能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值