大神们都是如何在时间序列中进行特征提取的?看完就懂了!

作者 |Sharmistha Chatterjee
翻译 | 火火酱~,责编 | 晋兆雨
出品 | CSDN云计算
头图 | 付费下载于视觉中国

介绍

现在,对于各类机构而言,需要收集的数据越来越多,并且时常需要检测不寻常或异常的时间序列。例如,雅虎就拥有大量邮件服务器,并且对其进行实时监控。为了识别运行异常的服务器/设备,每小时都要从每一台服务器中收集大量关于服务器/IoT设备性能的测量数据。

Python库tsfeature可以协助我们计算每个时间序列上的特征向量,测量序列的不同特征,包括滞后相关性、季节性强度、光谱熵等。

在本文中,我们将讨论时间序列中不同的特征提取技术,并以两个不同的时间序列为例进行演示。

常用的特征提取指标

数据科学中最常用的特征提取机制之一—主成分分析法(Principal Component Analysis,PCA)也被用于时间序列特征提取。对特征进行主成分分析后,可以对前两个主成分应用多种双变量离群值检测方法。这样就可以根据其特征向量,识别出最不寻常的序列。使用的双变量离群值检测方法以最高密度区域为基础进行的。

在使用ARIMA等经典方法对时间序列进行建模时,方差或波动率随时间的变化可能会导致一些问题。

ARCH(Autoregressive Conditional Heteroskedasticity)方法在股票预测等波动性高的时间序列模型中起着至关重要的作用,它可以用来测量随时间变化的方差,如波动率的增减。

接下来,我们将介绍一些时间序列特征、功能及相关信息。

下面这段代码展示了我们如何使用一行代码来提取相关特征。

源代码

tsf_hp = tf.holt_parameters(df2['# Direct_1'].values)
print(tsf_hp)tsf_centrpy = tf.count_entropy(df2['# Direct_1'].values)
print(tsf_centrpy)tsf_crossing_points =tf.crossing_points(df2['# Direct_1'].values)
print(tsf_centrpy)tsf_entropy =tf.entropy(df2['# Direct_1'].values)
print(tsf_entropy)tsf_flat_spots =tf.flat_spots(df2['# Direct_1'].values)
print(tsf_flat_spots)tsf_frequency =tf.frequency(df2['# Direct_1'].values)
print(tsf_frequency)tsf_heterogeneity = tf.heterogeneity(df2['# Direct_1'].values)
print(tsf_heterogeneity)tsf_guerrero =tf.guerrero(df2['# Direct_1'].values)
print(tsf_guerrero)tsf_hurst = tf.hurst(df2['# Direct_1'].values)
print(tsf_hurst)tsf_hw_parameters = tf.hw_parameters(df2['# Direct_1'].values)
print(tsf_hw_parameters)tsf_intv = tf.intervals(df2['# Direct_1'].values)
print(tsf_intv)tsf_lmp = tf.lumpiness(df2['# Direct_1'].values)
print(tsf_lmp)tsf_acf = tf.acf_features(df2['# Direct_1'].values)
print(tsf_acf)tsf_arch_stat = tf.arch_stat(df2['# Direct_1'].values)
print(tsf_arch_stat)tsf_pacf = tf.pacf_features(df2['# Direct_1'].values)
print(tsf_pacf)tsf_sparsity = tf.sparsity(df2['# Direct_1'].values)
print(tsf_sparsity)tsf_stability = tf.stability(df2['# Direct_1'].values)
print(tsf_stability)tsf_stl_features = tf.stl_features(df2['# Direct_1'].values)
print(tsf_stl_features)tsf_unitroot_kpss = tf.unitroot_kpss(df2['# Direct_1'].values)
print(tsf_unitroot_kpss)tsf_unitroot_pp = tf.unitroot_pp(df2['# Direct_1'].values)
print(tsf_unitroot_pp)

其结果表明了从胎儿心电图(Fetal ECG)中提取的特征值。

结果时间序列-1(数据来自Fetal ECG)

下图显示了从Fetal ECG中收集的时间序列数据,从中提取了特征。

{'alpha': 0.9998016430979507, 'beta': 0.5262228301908355}
{'count_entropy': 1.783469256071135}
{'crossing_points': 436}
{'entropy': 0.6493414196542769}
{'flat_spots': 131}
{'frequency': 1}
{'arch_acf': 0.3347171050143251, 'garch_acf': 0.3347171050143251, 'arch_r2': 0.14089508110660665, 'garch_r2': 0.14089508110660665}
{'hurst': 0.4931972012451876}
{'hw_alpha': nan, 'hw_beta': nan, 'hw_gamma': nan}
{'intervals_mean': 2516.801557547009, 'intervals_sd': nan}
{'guerrero': nan}
{'lumpiness': 0.01205944072461473}
{'x_acf1': 0.8262122472240574, 'x_acf10': 3.079891123506255, 'diff1_acf1': -0.27648384824011435, 'diff1_acf10': 0.08236265771293629, 'diff2_acf1': -0.5980110240921641, 'diff2_acf10': 0.3724461872893135}
{'arch_lm': 0.7064704126082555}
{'x_pacf5': 0.7303549429779813, 'diff1x_pacf5': 0.09311680507880443, 'diff2x_pacf5': 0.7105000333917864}
{'sparsity': 0.0}
{'stability': 0.16986190432765097}
{'nperiods': 0, 'seasonal_period': 1, 'trend': nan, 'spike': nan, 'linearity': nan, 'curvature': nan, 'e_acf1': nan, 'e_acf10': nan}
{'unitroot_kpss': 0.06485903737928193}
{'unitroot_pp': -908.3309773009415}

结果表明了与日期温度变化相关的提取的特征值。

结果时间序列-2(数据来自每日气温)

{'alpha': 0.4387345064923509, 'beta': 0.0}
{'count_entropy': -101348.71338310161}
{'crossing_points': 706}
{'entropy': 0.5089893350876903}
{'flat_spots': 10}
{'frequency': 1}
{'arch_acf': 0.016273743642920828, 'garch_acf': 0.016273743642920828, 'arch_r2': 0.015091960217949008, 'garch_r2': 0.015091960217949008}
{'hurst': 0.5716257806690483}
{'hw_alpha': nan, 'hw_beta': nan, 'hw_gamma': nan}
{'intervals_mean': 1216.0, 'intervals_sd': 1299.2740280633643}
{'guerrero': nan}
{'lumpiness': 5.464398615083545e-05}
{'x_acf1': -0.0005483958183129098, 'x_acf10': 3.0147995912148108e-06, 'diff1_acf1': -0.5, 'diff1_acf10': 0.25, 'diff2_acf1': -0.6666666666666666, 'diff2_acf10': 0.4722222222222222}
{'arch_lm': 3.6528279285796827e-06}
{'nonlinearity': 0.0}
{'x_pacf5': 1.5086491342316237e-06, 'diff1x_pacf5': 0.49138888888888893, 'diff2x_pacf5': 1.04718820861678}
{'sparsity': 0.0}
{'stability': 5.464398615083545e-05}
{'nperiods': 0, 'seasonal_period': 1, 'trend': nan, 'spike': nan, 'linearity': nan, 'curvature': nan, 'e_acf1': nan, 'e_acf10': nan}
{'unitroot_kpss': 0.29884876591708787}
{'unitroot_pp': -3643.7791982866393}

总结

  • 在上文中,我们讨论了从时间序列(两个时间序列都具有季节性=1)中提取特征的简单步骤,这可以帮助我们发现异常现象。

  • 从计算出的指标中不难看出,第一个序列更加稳定(稳定性和熵给出的值更高),因为时间戳数据的周期较长,与整个周期相比,其波动相对较小。

  • 第二个时间序列显示出了更高的波动性,表现为交叉点较多。

  • 因此,我们还观察到,第二个时间序列的块度和区间均值也较低,这表示其方差的方差更小。unirooot_kpss和unirooot_kpss表明,向量中存在单位根,在两个时间序列中分别小于1和为负数。

  • tsfeature还支持对以NumPy数组形式输入的自定义函数进行求值,并返回一个以特征名为键及其值的字典。

参考文献

  • https://github.com/FedericoGarza/tsfeatureshttps://htmlpreview.github.io/?

  • https://github.com/robjhyndman/M4metalearning/blob/master/docs/M4_methodology.html#features

  • https://cran.r-project.org/web/packages/tsfeatures/tsfeatures.pdf

  • https://robjhyndman.com/papers/icdm2015.pdf

  • https://math.berkeley.edu/~btw/thesis4.pdf

  • https://machinelearningmastery.com/develop-arch-and-garch-models-for-time-series-forecasting-in-python/

  • https://ir.nctu.edu.tw/bitstream/11536/14555/1/A1997YD78100005.pdf

  • Principal Component Analysis for Time Series and Other Non-Independent Data – https://link.springer.com/chapter/10.1007%2F0-387-22440-8_12

原文链接:https://hackernoon.com/key-tactics-the-pros-use-for-feature-extraction-from-time-series-e7q3wfr

本文由CSDN云计算翻译,转载请注明出处

更多阅读推荐

  • 如何破解“中国开源拿来主义”?包云岗的几点分析

  • 打钱!我的数据库被黑客勒索了!

  • 一文教你如何在生产环境中在Kubernetes上部署Jaeger

  • 华为定义5.5G网络;阿里巴巴美股投资者发起集体诉讼;Kaldi核心算法K2 0.1版本发布|极客头条

  • 2020年,区块链和加密领域的女性数量激增

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CenterOS 服务器之MySQL卸载与安装,并远程连接

目录一、彻底卸载 MySQL(不保留数据)二、安装 MySQL一、彻底卸载 MySQL(不保留数据) 若之前装过MySQL,需先删除再进行安装: 查找已经安装的mysql: rpm -qa | grep -i mysql删除MySQL&#xff1…

石锤!谷歌排名第一的编程语言,死磕这点,程序员都收益

日本最大的证券公司之一野村证券首席数字官马修汉普森,在Quant Conference上发表讲话:“用Excel的人越来越少,大家都在码Python代码。”甚至直接说:“Python已经取代了Excel。”事实上,为了追求更高的效率和质量&#…

Excel VBA 编程技巧系列(一)替换字符串、加解密字符串和等待外部程序完成

目录 1. 执行多个字符串替换2. 退出当前程序并让 VBA 代码等待该外部应用程序完成3. 加、解密码字符串1. 执行多个字符串替换 如何轻松执行多个字符串替换? 当用唯一的字符串去替换一个或多个字符串时的,VBA 替换功能非常好用。但是,如果您有一个包含多个特定字符的字符串…

赠书 | 华为数据底座的整体架构与建设策略

作者 | 华为公司数据管理责编 | 晋兆雨头图 | 付费下载于视觉中国*文末有赠书在从信息化向数字化转型的过程中,企业积累了海量的数据,并且还在爆发式地增长。数据很多,但真正能产生价值的数据却很少。数据普遍存在分散、不拉通的问题&#xf…

Serverless 服务选型

综述 近两年来,Serverless 概念在开发者中交流的越来越多,实践、服务、产品层出不穷。 Serverless 的主题分享呈现爆发趋势,如在云原生领域颇具影响力的 KubeCon&CloudNativeCon 会议中,关于 Serverless 的主题,20…

移动端uniapp 语言国际化vue-i18n

https://gitee.com/gblfy/uniapp-i18n

一文读懂阿里云通信的产品体系、技术架构与智能化应用场景实践

云通信作为通信基础设施,具有很强的行业普适性和刚需性,其业务场景涵盖了用户整个生命周期。然而,在企业使用云通信的过程中,依旧会面临到技术门槛高、系统维护治理难、业务场景适配挑战大等问题,阿里云通信是如何围绕…

VBA 利用API 测试计算机网络连通性

目录 1. 模块常量声明2. 自定义函数3. 函数调用示例一. 测试指定 URL 的连通性示例二. 测试计算机网络连通性1. 模块常量声明 声明 NetworkAlive API 函数常量。 Private Const NETWORK_ALIVE_LAN = &H1 Private Const NETWORK_ALIVE_WAN = &H2声明

10个工程师,9个不合格!!

如果你想问最近这些年什么编程语言最值得学习,我会毫不犹豫的告诉你是Python。无论是刚入门的程序员,还是年薪BATJ的技术大牛,都无可否认现在Python对于一个程序员职业发展的重要性。所以不仅是开发小白,甚至很多开发老手&#xf…

Dragonfly成为CNCF孵化项目,我们与基金会首位华人TOC聊了聊

本文转载自开源中国。 推荐阅读:《重磅 | Dragonfly 晋升成为 CNCF 孵化项目》 4 月 10 日,由云原生计算基金会(CNCF)技术监督委员会投票决议,来自中国的开源项目 Dragonfly 正式晋升为 CNCF 孵化级别的托管项目&…

uniapp中配置语言切换功能(vue-i18n的安装以及使用)

1.安装 npm install vue-i18n --save2. 新建lang文件以及en.json和zh.json文件,其他语言参考创建即可 3. 在main.js中配置    4. 在页面中使用

BAT新风向标:程序员有福利了!

人工智能已成为新时代的风向标,如果你是对人工智能感兴趣的互联网工作者、大学生、研究生并期望在 AI 方向发展,建议你一定要深入学习一下人工智能。因为,未来将是人工智能的时代!为什么会有这个判断呢?第一&#xff0…

VBA SQL查询-记录集转数组

目录 1 建立连接和查询2. Recordset 对象(记录集)转数组1 建立连接和查询 Sub 查询()Dim Cnn As Object, Rst As Object, i&, j&,

开源应用诊断利器 Arthas GitHub Star 突破两万

一、Arthas Star突破2万啦 https://github.com/alibaba/arthas随着微服务的流行,应用更加轻量和开发效率不断提升,但是带来的困境是线上问题排查越来越复杂困难。传统的Java排查问题,需要重启应用再进行调试,但是重启应用之后现场…

uniapp使用vue-i18n实现语言国际化

1.需要去vue-i18n官网下载js文件 https://unpkg.com/vue-i18n8.21.0/dist/vue-i18n.js 2.将js文件下载后放置在创建的lang文件夹中 3.紧接着创建需要翻译的配置文件如zh.js(中文)、en.js(英文)、tcc.js(繁体&#xf…

亿级大表分库分表实战总结(万字干货,实战复盘)

来源 | 阿丸笔记责编 | 晋兆雨头图 | 付费下载于视觉中国分库分表的文章网上非常多,但是大多内容比较零散,以讲解知识点为主,没有完整地说明一个大表的切分、新架构设计、上线的完整过程。因此,我结合去年做的一个大型分库分表项目…

VBA各种查询方法介绍和应用举例

目录前言1 Range对象的Find方法2. Range 对象的 Filter 方法2.1 AutoFilte自动筛选2.2 AdvancedFilter 高级筛选3.Instr 函数4.Like 运算符5.SQL 查询语句6. ADO Recordset 对象 Find 方法和 Filter 属性6.1 Find 方法6.2 Filter 属性7. 正则表达式8.字典和哈希表8.1 字典8.2 哈…

官宣 | 首届云原生编程挑战赛报名通道正式开启

“云原生编程挑战赛”是“中间件性能挑战赛”的全新升级!自 2015 年开始,大赛已经成功举办了五届,共吸引超过 12000 支队伍,15000 名顶尖选手参加,覆盖 10 余个国家和地区。 往届大赛毕业生是这样说的:视频…

移动端 uniapp 国际化一站式解决方案

菜单、表单、tabbar顶部文字均实现国际化,语言种类一次设置,全局生效,支持几十种,也支持私人定制。 文章目录一、效果图开源项目1. 默认中文2. 切换English3. 切换韩语4. 中文繁体5. 开源项目一、效果图开源项目 1. 默认中文 2. 切换English…

阿里云推出全新内存增强型实例re6,性能提升30%

5月7日,国内最大云计算厂商阿里云宣布推出全新一代内存增强型实例,提供1:14.8超大内存比内存容量,满足内存型数据库如SAP HANA、Redis等应用,充分释放技术红利,帮助线下企业快速上云,完成数字化…