当前位置:   article > 正文

时域特征提取MATLAB,强大的时间序列多特征提取工具介绍

hctsa使用介绍

hctsa对时间序列进行特征提取的使用流程

时间序列在许多领域中都有重要应用,如信号分析、金融量化分析、气象分析以及人体行为分析等等。通常对时间序列的处理需要进行特征分析, 关于特征提取分析的问题,主要是时域和频域特征,用滑动窗口提取特征,比如平均数、方差、过零率等,还有傅里叶变换后的幅度、频率、均值等。而这种特征分析通常需要一些特定领域内的专业知识,因此也就进一步提升了预处理的门槛。例如压力脉搏信号,不仅需要分析时域的幅度、均值、周期性等,也需要分析频域中的基频和倍频信号,以及各种频带的功率谱等等。

目前关于自动提取时间序列特征的开源库,包括python版本的tsfresh,下载链接https://github.com/blue-yonder/tsfresh/tree/master/tsfresh, 以及Matlab版本的hctsa,下载链接https://github.com/benfulcher/hctsa。这两个库都有比较详细的英文使用手册,但对没有机器学习基础的同学使用还是比较困难,目前工作中对tsfresh暂时还没有用到,下面给出hctsa的使用步骤。数据以TimeSeries中数据INP_test_ts.txt为例,注意先行其中的分类标签都改为1个,3个互不相同为宜。

step1:安装hctsa代码包,运行install.m文件;

step2:添加hctsa代码包运行需要的所有路径,运行startup.m文件;

step3:初始化输入函数:TS_init(INP_ts,INP_mops,INP_ops,beVocal,outputFile);其中

INP_ts: 格式可以参考文件夹TimeSeries里面的HCTSA.mat或INP_test_ts.txt,此项必须有输入;

INP_mops: 主操作函数定义, 默认输入为DataBase文件夹中的INP_mops.txt;

INP_ops: 计算序列特征的函数定义,默认输入为DataBase文件夹中的INP_mops.txt;

beVocal: 长度为3的逻辑行向量,是否显示对应输入变量脚本运行的进度信息,默认有输入的变量都显示;

outputFile: 输出文件名,包括主操作函数(MasterOperations),特征计算函数(Operations),原始数据(TimeSeries),初始化的特征值矩阵(TS_DataMat)、计算每个特征需要的时间(TS_Calc-Time)以及每个特征质量标签;

备注: TimeSeries是单一变量,均匀采样,按时间排序的序列,每个序列可以不等长。

图1 原始信号

step4:计算原始数据(TimeSeries)特征,生成的值对特征值矩阵(TS_DataMat)、计算每个特征需要的时间(TS_Calc-Time)以及每个特征质量标签进行覆盖,TS_compute(doParallel,ts_id_range,op_id_range,computeWhat,customFile,beVocal)

doParallel: 1开启并行运算,0不开启,默认为0;

ts_id_range: 时间序列范围,如[2:100],默认为所有序列;

op_id_range: 操作序列范围,默认为所有操作(示例为7873个)

computeWhat: 对应质量标签的取值;

customFile: 输出文件名,默认为HCTSA.mat;

beVocal: 逻辑变量,是

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/550989
推荐阅读
相关标签
  

闽ICP备14008679号