Packt会议:10月11-13日(虚拟)将生成式AI投入工作
3天,20多位AI专家,25多个研讨会和主题演讲
优惠码: USD75OFF
Python时间序列分析cookbook
借助这本Python代码库和参考手册自信地进行时间序列分析和预测
获取本书
主要特点
- 探索使用统计、机器学习和深度学习算法进行预测和异常检测的技术
- 学习评估、诊断和优化模型的不同技术
- 处理具有趋势、多重季节性模式和不规则性的各种复杂数据
您将学到
- 了解是什么使时间序列数据不同于其他数据
- 应用各种缺失数据的插补和插值策略
- 实现单变量和多变量时间序列的不同模型
- 使用TensorFlow、Keras和PyTorch等不同的深度学习库
- 使用hvPlot绘制交互式时间序列可视化
- 探索状态空间模型和未观测成分模型(UCM)
- 使用统计和机器学习方法检测异常
- 预测具有多重季节性模式的复杂时间序列
本书描述
时间序列数据无处不在,频率高且数量大。它复杂且可能包含噪声、不规则性和多种模式,因此掌握本书中涵盖的数据准备、分析和预测技术至关重要。
本书涵盖了处理时间序列数据的实用技术,从各种来源和格式摄取时间序列数据开始,无论是在私有云存储、关系数据库、非关系数据库还是专门的时间序列数据库(如InfluxDB)中。接下来,您将学习处理缺失数据、处理时区和自定义工作日以及使用直观的统计方法检测异常的策略,然后是更高级的无监督ML模型。本书还将探讨使用经典统计模型(如Holt-Winters、SARIMA和VAR)进行预测。这些实例将展示处理非平稳数据的实用技术,使用幂变换、ACF和PACF图,以及分解具有多重季节性模式的时间序列数据。之后,您将使用TensorFlow和PyTorch处理ML和DL模型。
最后,您将学习如何评估、比较和优化模型,以及本书中涵盖的更多内容。
适合读者
本书适合希望获得时间序列分析和预测技术的实用Python方法的数据分析师、业务分析师、数据科学家、数据工程师或Python开发人员。需要具备Python编程的基础知识。虽然具备基本的数学和统计背景会有所帮助,但并非必需。之前使用时间序列数据解决业务问题的经验也将有助于更好地利用和应用本书中的不同方法。
目录
-
时间序列分析入门
第1章《时间序列分析入门》是对Python开发最佳实践的总体介绍。您将学习创建和管理虚拟环境、安装和管理Python包、管理依赖项,最后如何安装和管理Jupyter扩展的不同技术。
-
从文件中读取时间序列数据
第2章《从文件中读取时间序列数据》是对时间序列数据的介绍。本章向您展示如何从各种常用文件类型中读取数据,无论是本地存储还是云存储(如AWS S3)。这些实例将重点介绍将数据摄取、准备和转换为时间序列DataFrame以供后续分析的高级选项。
-
从数据库中读取时间序列数据
第3章《从数据库中读取时间序列数据》承接第2章《从文件中读取时间序列数据》,重点介绍从各种数据库系统读取数据,包括关系型(PostgreSQL和MySQL)和非关系型(MongoDB和InfluxDB),无论是本地还是云服务(Amazon Redshift和Snowflake)。这些实例将突出不同的方法和技术,为如何将数据摄取、准备和转换为时间序列DataFrame以供后续分析提供灵活性。
-
将时间序列数据持久化到文件
第4章《将时间序列数据持久化到文件》涵盖了存储时间序列数据以供后续检索的不同选项和用例。这些技术将涵盖各种方法和文件类型,无论是本地还是云端。此外,本章还涵盖了序列化、压缩、覆盖、分块和追加到文件。
-
将时间序列数据持久化到数据库
第5章《将时间序列数据持久化到数据库》在第4章《将时间序列数据持久化到文件》的基础上,重点介绍大规模写入数据。这涵盖了将时间序列数据写入关系型和非关系型数据库系统的不同技术,如第2章《从文件中读取时间序列数据》中讨论的那些,包括本地和云服务。
-
在Python中处理日期和时间
第6章《在Python中处理日期和时间》以实用和直观的方式处理这个令人生畏的主题。您将学习如何处理时间序列数据中日期和时间的复杂性。本章以有趣且实用的方式说明了处理时区、自定义假日和工作日、处理Unix时间戳和UTC的实际用例。通常,这个令人生畏的主题将以一种有趣且实用的方式呈现,您会发现它很容易立即应用。
-
处理缺失数据
第7章《处理缺失数据》探讨了识别和处理缺失数据的不同方法。您将学习不同的插补和插值技术。本章从简单的单变量插补统计方法开始,然后探讨各种单变量插值算法,再到更高级的多变量插补。
-
使用统计方法进行异常检测
第8章《使用统计方法进行异常检测》涵盖了异常和异常值检测的统计方法。这些实用且简单的技术易于解释和实施。本章使用Numenta异常基准(NAB)的数据来评估不同的异常检测算法。
-
探索性数据分析和诊断
第9章《探索性数据分析和诊断》深入探讨了有效探索性数据分析(EDA)的交互式可视化技术。您将学习如何调查和诊断您的时间序列数据,以测试特定假设,如平稳性和自相关。最后,本章涵盖了使用幂变换族、分解和差分方法转换时间序列数据的实用方法。
-
使用统计方法构建单变量时间序列模型
第10章《使用统计方法构建单变量时间序列模型》开启了时间序列建模和预测的旅程。本章直观地解释了什么是自相关函数(ACF)和偏自相关函数(PACF)图以及如何使用它们,然后转向训练、诊断和比较不同的模型,包括指数平滑、自回归整合移动平均(ARIMA)和季节性ARIMA(SARIMA)。此外,本章还介绍了网格搜索和超参数调优。
-
时间序列的其他统计建模技术
第11章《时间序列的其他统计建模技术》承接第10章《使用统计方法构建单变量时间序列模型》,深入探讨更高级和实用的模型,如用于多变量时间序列的向量自回归(VAR)、用于预测波动率的广义自回归条件异方差(GARCH),并探索Prophet算法和库。您还将探索AutoArima并将结果与上一章进行比较。
-
使用监督机器学习进行预测 第12章《使用监督机器学习进行预测》将带您从经典的时间序列预测技术过渡到更高级的机器学习算法。本章展示了如何适当转换时间序列数据,使其适用于监督机器学习。此外,您还将探索各种机器学习算法,并使用Scikit-Learn和Sktime实现多步预测。
-
深度学习在时间序列预测中的应用
第13章《深度学习在时间序列预测中的应用》涵盖了使用TensorFlow/Keras和PyTorch的更高级深度学习架构。本章从高级API(Keras)开始,然后深入探讨使用低级API(PyTorch)的更复杂实现。
- 使用无监督机器学习进行异常检测
第14章《使用无监督机器学习进行异常检测》是第8章《使用统计方法进行异常检测》的延续,但重点关注更高级的无监督机器学习方法。您将使用来自NAB的相同数据集,以便使用相同的基准数据比较统计和机器学习技术。这些技术涵盖了各种机器学习算法。
- 复杂时间序列的高级技术
第15章《复杂时间序列的高级技术》将介绍包含多重季节性模式的更复杂时间序列数据。本章包括如何分解此类时间序列数据,并探索不同的建模技术,包括状态空间模型(例如,未观测成分模型)。您将比较使用未观测成分模型(UCM)、Prophet和NeuralProphet的结果。
涵盖的Python库和框架:
• pandas • Statsmodels • SciPy • pmdarima(用于AutoArima) • arch • Scikit-Learn • sktime • Darts • PyCaret • Prophet • NeuralProphet • PyOD • TensorFlow • PyTorch • Modin • hvPlot • Matplotlib • seaborn • SQLAlchemy
作者注释:
• 正在努力添加Colab笔记本版本 ✓ 第11章 ✓ 第12章 ✓ 第14章
• 为每章添加了YAML环境文件和requirements.txt文件
下载免费PDF
如果您已经购买了本书的纸质版或Kindle版,您可以免费获得一个无DRM的PDF版本。 只需点击链接即可获取您的免费PDF。