时间序列数据科学入门
作者:Anais Dotis-Georgiou / 产品, 用例, 开发者, 入门指南
2021年3月15日
导航至
您是否有兴趣执行时间序列预测或 异常检测,但不知道从哪里开始? 如果是这样,您并不孤单。 这些任务有各种各样的库、算法和工作流程建议,让人眼花缭乱。 作为 InfluxDB 的开发者倡导者,领先的时间序列数据库,我研究了时间序列数据科学方法以及预测和异常检测的最佳实践。 今天,我想总结一些关于时间序列的重要概念,并分享一些资源,帮助您开启时间序列数据科学之旅。
对数据科学感兴趣的初学者为什么应该从学习时间序列开始?
如果您有兴趣成为一名数据科学家,那么从学习与时间序列相关的数据科学开始是一个很好的起点。 时间序列数据是按时间顺序索引的数据。 因为它是按时间索引的,所以通常,每个时间序列数据点都与之前的点相关。 为了解释我的意思,让我们看一下天气数据。 您现在居住的城市的气温与一小时前甚至上周或去年同一时间的气温相关。 换句话说,温度数据在其他时间点与自身相关。 这种统计现象称为 自相关,这也是时间序列数据在数据领域中独一无二的原因之一。
因此,一些适用于其他类型数据的的数据科学算法并不适用于时间序列数据。 这是因为一些高级预测和异常检测算法或神经网络依赖于您的数据集不表现出时间序列数据常见的某些统计属性(如自相关)的假设。
您仍然可以在包含违反网络假设的属性的时间序列数据上使用神经网络,但您必须首先消除这些属性。 例如,您可以通过 差分 从时间序列中消除自相关,但这种类型的数据预处理数据可能很棘手。 幸运的是,统计算法通常比神经网络更容易理解。 统计方法通常是优秀的预测器,并且擅长识别异常。 这两个因素使学习时间序列成为初学者开启数据科学之旅的绝佳起点。
为希望学习时间序列数据科学的初学者推荐的工具
执行预测或异常检测的第一步是了解各种算法和方法,这些算法和方法可以帮助您实现目标。 始终确保研究您选择的算法的潜在统计假设,并验证您的数据是否违反这些假设。 我总是查看 Jupyter Notebooks,以帮助我执行初步算法选择研究。 使用 Jupyter Notebooks 使我有机会在样本数据集上试用算法,以更好地了解各种 Python 库及其时间序列算法。 一旦我感觉我已经了解了我想要使用的库和算法,那么我将在我的数据集上测试该算法的性能。 我将我的所有时间序列数据存储在 InfluxDB 中。 我使用 Python 客户端 拉取某些数据集以进行进一步分析。
InfluxDB 的时间序列数据科学资源
虽然 InfluxDB 允许您转换数据,甚至可以使用 Flux 编写 用于异常检测的自定义函数,但我想向您介绍 Notebooks 仓库。 此仓库包含各种 Jupyter Notebooks,可帮助您开始使用 InfluxDB 和时间序列数据科学任务。 在此仓库中,您可以学习如何
- 开始使用 Python 和 InfluxDB
- 开始使用 Pandas 和 InfluxDB
- 将 Flux 解释器用于 Jupyter Notebooks
- 执行异常检测
- 多时间序列
- 单时间序列
- 执行预测
- 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 频道中分享您的想法、疑虑或问题。 我们很乐意获得您的反馈,以及帮助您解决遇到的任何问题!