时序数据科学入门
作者:Anais Dotis-Georgiou / 产品,用例,开发者,入门
2021年3月15日
导航至
你对进行时序预测或异常检测感兴趣,但你不知道从何开始?如果是这样,你并不孤单。这些任务有大量的库、算法和工作流程建议。作为InfluxDB——领先时序数据库的开发商——的开发者倡导者,我研究了时序数据科学的方法和最佳实践,包括预测和异常检测。今天,我想总结一些关于时序的重要概念,并分享一些资源,帮助你开始时序数据科学之旅。
为什么对数据科学感兴趣的初学者应该开始学习时序数据?
如果你对成为数据科学家感兴趣,从了解与时序相关的数据科学开始是个好主意。 时序数据 是按时间顺序索引的数据。因为它按时间索引,所以通常每个时序数据点都与之前的数据相关。为了解释我的意思,让我们以天气数据为例。你现在所在城市的气温与一小时前的气温以及上周或去年同一时间的气温相关。换句话说,气温数据与其他时间点的数据相关。这种统计现象称为 自相关性,这也是时序数据在数据世界中独特的原因之一。
因此,一些适用于其他类型数据的数据科学算法并不适用于时序数据。这是因为一些高级预测和异常检测算法或神经网络基于这样的假设:你的数据集不表现出与时序数据共同的一些统计属性,如自相关性。
即使时间序列数据包含违反网络假设的属性,您仍然可以使用神经网络。但您必须首先删除这些属性。例如,您可以通过差分法从您的时序数据中去除自相关,但这种数据预处理方法可能会很棘手。幸运的是,统计算法通常比神经网络更容易理解。统计方法通常是优秀的预测工具,并且擅长识别异常。这两个因素使得学习时间序列成为初学者开始数据科学之旅的绝佳起点。
面向初学者的时间序列数据科学学习推荐工具
执行预测或异常检测的第一步是了解各种算法和方法,以帮助您实现目标。始终确保研究您选择的算法背后的统计假设,并验证您的数据是否违反了这些假设。我总是倾向于使用Jupyter Notebooks来帮助我进行初步的算法选择研究。使用Jupyter Notebooks让我有机会在样本数据集上尝试算法,以更好地理解各种Python库及其时序算法。一旦我觉得我对我想使用的库和算法有了足够的理解,我就会在我的数据集上测试该算法的性能。我将所有的时间序列数据存储在InfluxDB中。我使用Python客户端拉取某些数据集以进行进一步分析。
InfluxDB的时间序列数据科学资源
虽然InfluxDB允许您使用Flux(Flux)对数据进行转换,甚至为异常检测编写自定义函数,但我想向您介绍Notebooks存储库。此存储库包含各种Jupyter Notebooks,可以帮助您开始使用InfluxDB和时间序列数据科学任务。在此存储库中,您可以学习如何
- 使用Python和InfluxDB入门
- 使用Pandas和InfluxDB入门
- 在Jupyter Notebooks中使用Flux解释器
- 进行异常检测
- 多个时间序列
- 单个时间序列
- 进行预测
- FB Prophet
- LSTMs
- Holt-Winters
关于InfluxDB中时间序列预测和异常检测的进一步阅读
Notebooks存储库是其他几个博客的汇总。以下是相关博客列表
- 时间序列数据中的自相关
- 当您想要Holt Winters而不是机器学习时
- 开始使用InfluxDB和Pandas
- 开始使用Python和InfluxDB v2.0
- 使用2.0 Python客户端从CSV写入数百万个点到InfluxDB
- 使用FB Prophet和InfluxDB进行预测
- 使用InfluxDB进行异常检测的BIRCH
- 使用中值绝对偏差进行异常检测
- Zeppelin、Spark和InfluxDB用于大数据时间序列场景
- 为什么时间序列数据要使用K-Means?(第一部分)
我希望Notebooks存储库能帮助您开始尝试各种时间序列算法。如果您刚开始接触时间序列数据科学,请向我们寻求帮助并分享您的经历!在评论部分、我们的社区网站或我们的Slack频道中分享您的想法、担忧或问题。我们很乐意获取您的反馈并帮助您解决遇到的问题!