没有合适的资源?快使用搜索试试~ 我知道了~
时间序列特征提取库(TSFEL): 用Python包实现快速数据分析和特征提取的计算成本评估
软件X 11(2020)100456原始软件出版物时间序列特征提取库Marília Barandasa,Mr.,1,Duarte Folgadoa,1,Letícia Fernandesa,SaraSantosa,Mariana Abreua,Patrícia Botaa,Hui Liub,Tanja Schultzb,Hugo Gamboaa,caAssociação Fraunhofer Portugal Research,Rua Alfredo Allen 455/461,波尔图,葡萄牙b德国不来梅大学认知系统实验室c atório de Instrumentação,Engenharia Biomedica e Física da Radiação(LIBPhys-UNL),Departamento de Física,Faculdade de Ciê,ncias eTecnologia da Universidade Nova de Lisboa,Monte da Caparica,Caparica 2892-516,Portugalar t i cl e i nf o文章历史记录:收到2020年收到修订版2020年2月28日接受2020年保留字:时间序列机器学习特征提取Pythona b st ra ct时间序列特征提取是传统机器学习流水线的初始步骤之一。很多时候,这个过程最终是一个耗时和复杂的任务,因为数据科学家,技术人员必须考虑多个领域知识因素和编码实现之间的组合。我们在本文中提出了一个名为时间序列特征提取库(TSFEL)的Python包,它可以计算在时间,统计和频谱域中提取的60多种不同的特征。用户自定义可以使用在线界面或传统的Python包来实现,以获得更大的灵活性并集成到实际部署场景中。TSFEL的目的是支持快速探索性的数据分析和特征提取的时间序列的计算成本评估的过程。©2020作者由爱思唯尔公司出版这是CC BY-NC-ND下的开放获取文章许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。代码元数据当前代码版本v0.1.2用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2020_1法律代码许可证BSD 3条款许可证使用Git的代码版本控制系统使用Python 3.7的软件代码语言、工具和服务编译要求,操作环境依赖numpy(1.17.4),matplotlib(3.1.0),gspread(3.1.0),oauth2client(4.1.3),pandas(0.24.2),scipy(1.4.0),setuptools(41.0.1)如果可用,链接到开发人员文档/手册tsfel.readthedocs.io问题支持电子邮件info@fraunhofer.pt软件元数据当前软件版本v0.1.2此版本可执行文件的永久链接github.com/fraunhoferportugal/tsfel法律软件许可证BSD 3条款许可证计算平台/操作系统Linux,OS X,Microsoft Windows安装要求依赖Python 3.7如果可用,链接到用户tsfel.readthedocs.io问题支持电子邮件info@fraunhofer.pt*通讯作者。电子邮件地址:marilia. fraunhofer.pt(M. Barandas)。1 这些作者都做出了同样的贡献。https://doi.org/10.1016/j.softx.2020.1004561. 动机和意义在过去的几年里,物联网的兴起推动了技术突破,导致传感器的激增2352-7110/©2020作者。由爱思唯尔公司出版。这是一篇开放获取的文章,使用CC BY-NC-ND许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx2M. Barandas,D. Folgado等人/ SoftwareX 11(2020)100456来测量大量的物理过程。这些观测结果往往导致产生大量时间序列形式的数据,这些数据被描述为按时间排序的数值观测序列。时间序列特征提取过程是传统机器学习流水线中的预备步骤之一,其目的是提取一组属性来对时间序列进行分类。特征提取是一项耗时且复杂的任务,这对机器学习堆栈中如此显著而重要的一步提出了挑战:“在一天结束时,一些机器学习项目成功,一些失败。是什么造成了差异?很容易,最重要的因素是使用的功能“[ 1 ]。在 本 文 中 , 我 们 提 出 了 一 个 名 为 时 间 序 列 特 征 提 取 库(TSFEL)的Python包,它提供了支持多维时间序列特征提取的自动化过程所支持的快速探索性分析。在文献中,存在专用于特征提取的相关软件包,例如FATS[2]、CESIUM[3] 、 TSFRESH[4] 和 HCTSA[5] 。 这 些 软 件 包 启 发 了TSFEL的创建,将来它们可能会合并。TSFEL通过整合对特征的时间复杂性的更彻底的分析来扩展其范围。这一事实与在诸如可穿戴设备之类的嵌入式设备中计算特征提取的场景相关,具有有限的计算资源。TSFEL用于支持在人类活动识别(HAR)[6用户可以通过两种形式与TSFEL进行交互:基于Python包构建的后端,针对高级用户;在在线电子表格中显示的前端,针对初学者。对于这两种情况,TSFEL还为在真实场景中部署机器学习算法提供了一个至关重要的方面-对每个特征的计算复杂性进行全面评估。2. 软件描述2.1. 软件构架TSFEL是用Python 3编写的大多数实现的特征提取方法都依赖于Numpy和SciPy,它们为多维数据提供了有效的数值例程。TSFEL输出是标准化的,与数据科学Python包兼容,即Pandas和scikit-learn。前端是使用Google Sheets API实现的,以建立到TSFEL后端的接口使用在线用户可以选择所需的特征提取方法,通过单独选择或基于定义的标准(例如域或计算复杂性)进行过滤。有关使用在线电子表格配置TSFEL的说明性示例的教程,请访问谷歌可乐。2图 1总结了TSFEL处理管道。时间序列作为主TSFEL提取方法的输入传递,或者作为先前加载到内存中的数组,或者存储在数据集上的文件中。由于TSFEL可以处理多维时间序列,因此随后应用一组预处理方法,以确保不仅信号质量足够,而且时间序列同步,从而适当地实现窗口计算过程。在特征提取之后,使用标准模式保存结果,以供大多数分类和数据挖掘平台消化每一行对应于一个窗口,其中特征提取方法的结果沿着相应的列存储。2https://github.com/fraunhoferportugal/tsfel。2.2. 软件功能在部署机器学习应用程序时,适当的特征集可以提高算法的性能并降低计算复杂度。在信号窗口化步骤中,时间序列被划分为用户定义的固定长度的时间窗口(其可以可选地具有一些重叠),从中提取特征。2.2.1. 数据摄取和预处理在特征提取步骤之前,必须确保足够的数据质量。可以使用两种方法将时间序列传递到特征提取方法:dataset_features_extractor:接收包含数据集根目录和配置特征字典feat_dict的字符串。为了确保不等长的时间序列同步,必须定义基于时间的参数,即以赫兹为单位的采样频率和定义数据集时间尺度的time_unit。该方法可以可选地接收output_directory作为输入,其中所提取的特征将以分隔的文本文件格式保存,以及search_criteria,其将用于匹配和过滤与用户更相关的文件。time_series_features_extractor:接收具有作为变量存储在存储器中的时间序列的多维结构、配置特征字典feat_dict和以赫兹为单位的采样频率。这两种方法都接收与窗口元数据相关的附加参数,定义用于特征提取的窗口参数,例如样本数量中的窗口大小和窗口之间的重叠,定义为百分比值。2.2.2. 特征提取TSFEL特征可以根据它们被计算的域分为三类:时间域、统计域和谱域。附录中列出了可用的功能和包含数学公式、伪代码和参考的详细实现。时间复杂度为O(n2),O(nlogn),O(n),O(logn),O(1).首先,从正弦模型综合生成一组长度递增的时间序列其次,计算每个增量长度时间序列的特征提取运行时间。此过程允许创建一条曲线,显示每个功能的时间序列长度和执行时间第三,我们使用非线性最小二乘法来拟合运行时的结果,以已知的模型。对于每个特征,我们分配的时间复杂度最小化所有时间复杂度模型中的χ22.2.3. 单元测试为了正确维护大量不同的特征提取方法,有必要系统地验证特征提取实现。为每个特性创建了一组单元测试这些测试将从TSFEL获得的值与一组具有已知分布的合成时间序列进行比较。不同的时间序列合成参数用于覆盖各种属性(例如,恒定值、幅度偏移的调制、周期性和噪声添加)。在TSFEL中纳入新特性的贡献指南要求为新特性引入至少一个单元测试2.2.4. 个性化功能TSFEL为用户提供了灵活性,可以将他们的个人功能添加到库中已有的功能中。用户需要编写特征提取方法并声明其定义域。··M. Barandas,D. Folgado等人/ SoftwareX 11(2020)10045633. 说明性实例图1.一、 TSFEL管道:数据集分析,信号预处理,特征提取和输出。(即将原始数据转换为特征以作为机器学习模型的输入)是一项耗时且复杂的任务。我们现在提供一个典型管道的说明性示例在HAR的上下文中提取特征。我们使用了[12]收集的数据集的一个子集,由加速度计、陀螺仪和测角仪传感器检索的时间序列组成,这些时间序列来自两个进行四种活动的受试者:站、坐、站到坐和坐到站。开发人员可以使用两种不同的方法完成特征提取:对已经加载到内存中的时间序列进行特征提取,或者在目录中组织的整个时间序列数据库中进行特征在图的第4行。2用户加载配置设置,可以作为模板使用。get_all_features()模板允许提取所有已实现的特征。管线7中加载由来自3个不同传感器的单变量时间序列组成的数据集。在第8行,完成特征提取过程。该方法接收作为输入的配置设置,作为pandas的帧df传递的时间序列图3总结了使用TSFEL所需的交互,从跨系统目录的文件中存储的数据集中提取特征。在第4行中,我们定义了数据集的根目录。配置文件在第5行定义。 main方法出现在7到13行。该方法接收根数据集目录、配置文件、由将匹配用于特征提取的指定文件的关键字定义的搜索标准、重采样参数(其将配置重采样方法以确保多变量时间序列在将数据划分为窗口之前同步)以及定义窗口大小和重叠的参数作为输入。图4表示形式为的一组提取的特征一个地平线图。X轴包含以下活动序列的三次重复:坐、从坐到站、站、从站到坐。y轴对应于提取的特征,并且y轴的范围到每个特征的最大值的三分之一,由最暗的值表示。蓝色和红色分别对应正值和负值陀螺仪和陀螺仪传感器允许区分静态活动(坐和站)和转换(坐到站和站到坐)。acc_x_Upper_Min和acc_z_Upper_Min可明确区分坐和站。最后,测角器_y_Slope是区分坐到站和站到站的适当特征。4. 影响在分析来自多个源的异构时间序列数据TSFEL通过创建由时间序列特征提取技术的综合列表组成的抽象层来帮助数据科学家。这些方法是从几个科学领域聚合而成的,并且先前在HAR的背景下得到了验证TSFEL的输出是一种标准化的文件格式,可以被大多数时间序列分类库(如Orange,Weka或scikit-learn)消化。TSFEL还提供了一个系统的方法来记录输入,数据集元数据和特征提取实验的参数,促进研究人员之间的科学方法的TSFEL依赖于一个主配置文件,该文件存储元数据,并且可以通过电子表格配置管理器轻松编辑。随着网络物理系统的普及,越来越多的数据和流程正在跨多个部门进行数字化。虽然机器学习有望揭示大数据的隐藏模式,以获得对数据驱动业务的新见解,但此类系统的部署仍可能受到可扩展性问题的限制。例如,在大型制造工厂的背景下,基于产生高数据量的传感器对其产品的异常检测因此,完整的流水线应该设计成能够近实时地运行推理步骤。这种方法的成功实现应该自底向上完成,这意味着在机器学习堆栈的初始阶段有设计问题。TSFEL通过为用户提供时间序列特征提取方法的综合列表以及相关的计算复杂度估计,帮助减轻这些技术采用风险,从而能够了解机器学习堆栈早期阶段特征提取的计算成本。5. 结论我们开发了一个名为Time Series Feature Extraction Library的Python包,它提供了一个时间序列特征提取方法的全面列表。超过60个不同的特征提取跨时间,统计和频谱域。TSFEL包括每个实现的特征提取方法的单元测试和适当的代码文档。除了这些强烈导向的编码指南外,该项目对科学界有三个主要的广泛贡献:4M. Barandas,D. Folgado等人/ SoftwareX 11(2020)100456←图二. 说 明 性代码示例,用于从先前加载到内存中的时间序列中提取特征。图三.说 明 性代码示例,用于从目 录 中 组 织 的数据集中提 取 特 征 。图四、 从最相关的 功能的水平图表示。垂直线对应于地面实况注释,以区分不同的类别。TSFEL可以通过基于Google Sheets构建的用户界面使用,无需任何安装,允许快速的pro-totyping和探索性时间序列分析,减少编码工作。更专业的用户可以直接深入到TSFEL后端,以获得更大的灵活性和与Python项目的集成。 主配置文件用于记录实验参数,强调可追溯性和再现性。对已经存储在存储器环境中的时间序列或使用包含时间序列数据文件的目录列表。后者是使用一个搜索标准来实现的,该标准过滤与用户相关的文件。此过程旨在减少用户为每个应用程序准备数据聚合代码所花费的时间。TSFEL的这种设计旨在从机器学习管道的早期阶段开始虽然在三个不同的域中提取了多个特征因此,作为未来的工作,关于新领域的功能,如非线性功能将被引入。TSFEL是开放的贡献,并邀请用户扩展图书馆与新的时间序列特征提取方法在不同的科学学科。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作确认我们要感谢从葡萄牙2020年共同资助的工业4.0全面集成和预测制造系统平台项目中获得的财政支持,该项目是在欧盟(EU)的COMPETE 2020(运营计划竞争力和国际化)和欧洲区域发展基金(ERDF)框架下制定的,运营代码为POCI-01-0247-FEDER-038436。阑尾 可用功能设s表示时间序列信号向量,fs表示s的离散导数,t表示对应的时间向量,fs表示信号另外,P(x)表示概率。快速傅立叶变换一曰: 输入:s,t s是信号,t是时间2:输出:频率、幅度3:计算快速傅立叶变换:fft(t,s)4:返回频率和幅度值M. Barandas,D. Folgado等人/ SoftwareX 11(2020)1004565←∑−−∈==∈ []i=0时∑====−+∈ []∑i=0时∈ [−]+=−+=+Nti=0我我小波变换1:输入:s,f,wf是Ricker函数(默认),w是刻度宽度第二章: 输出:矩阵大小(len(w),len(s))3:计算离散小波变换:cwt(s,f,w)第四章: 返回一个大小为(len(w),len(s))的矩阵时间域自相关:n Zs(n)s(n l),其中s(n l)是s(n)的复共轭,l是滞后。质心:∑N0ti×s2=我我 我过零率:1:INPUT:s2:输出:过零率3:sign=大小为N的零列表4:zcr=大小为N的零列表5: 对于每个i0,N做6: 如果si>0,则7:符号i18:else ifsi0then<9:符号i010:如果结束11:回到下一个i我∑Ns212:结束平均绝对差异:平均值(|伊什|)平均差异:平均值(μs)绝对值中位数:中位数(|伊什|)中位数差异:中位数(中位数)距离:N−11+si2绝对差之和:∑N− 1|伊什岛|S213:signsigni1signi十四日: 对于每个i0,N做15:如果signi>0或signi0,则<16:zcri117:elseifi =0,则18:zcri 019:如果结束20:回到下一个i21:结束i=0时∑22:过零率=∑NzcrN−t0熵:−x∈sP(x)log2P(x)峰间距离:|max(s)− min(s)|统计领域直方图:n =∑kmi,其中mi表示直方图曲线下面积:∑N (t−t)×si+si−1i=1i=0时 我绝对能量:∑Ns i2i−12其中,n是观测总数,k是总数bins的数量最大峰值:1:INPUT:s四分位距:Q3− Q1,其中Q3和Q1分别代表第一和第三四分位数。2:OUTPUT:最大峰值平均绝对偏差:∑N|s2−mean(s)|3:s=si1−sii=1IN4:对于each+i∈[0,N−1],5:如果i+10且i>0,则<绝对偏差中位数:中位数(|s−中位数(s)|)6:计数一个最大峰均方根:1∑Ns27:其他8:返回下一个i9:如果结束N标准差:±0.0000i=1i10:结束最小峰:1:INPUT:s2:OUTPUT:最小峰值3:ssi1si4:对于每个i0,N 1做5: 如果si0且si1>0,则<6:计数一个最小峰值7:其他8:返回下一个i9:如果结束10:结束斜率:方差:均值(|s−平均值(s)|)2ECDF百分比计数:1:输入:s,百分位值(p)2:输出:小于百分位数的样本的累积总和。3:x=排序的s4:y=ECDF值5:计数=x的长度,其中yp
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功