7个用于时间序列特征工程的Pandas技巧

7 Pandas Tricks for Time-Series Feature Engineering

7个用于时间序列特征工程的Pandas技巧
图片由 Editor | ChatGPT 提供

引言

在构建有效的机器学习模型时,特征工程是最重要的步骤之一,这一点在处理时间序列数据时尤为重要。通过从时间数据中创建有意义的特征,您可以解锁仅使用原始时间戳无法获得的预测能力。

幸运的是,Pandas 为操作和创建时间序列特征提供了一套强大而灵活的操作。

本文将探讨 7 个实用的 Pandas 技巧,这些技巧可以帮助转换您的时间序列数据,从而可以带来改进的模型和更强大的预测能力。我们将使用一个简单的合成数据集来演示每种技术,让您能够快速掌握概念并将其应用到您自己的项目中。

设置我们的数据

首先,让我们创建一个示例时间序列 DataFrame。此数据集将代表一段时间内的每日销售数据,我们将使用它来进行所有后续示例。

输出

我们创建了一个小型数据集,其中包含 2025 年 7 月每天的一个条目,并分配了随机销售值。请注意,如果您使用 np.random.seed(42),您的数据将与上面的我的数据相同。

数据准备就绪后,我们现在可以探索几种创建有见地的特征的技术。

1. 提取日期时间组件

最简单但最有用的时间序列特征工程技术之一是将日期时间对象分解为其组成部分。这些组件可以捕获不同粒度(例如星期几、一年中的月份等)的季节性和趋势。Pandas 使用 .dt 访问器可以轻松完成此操作。

输出

我们现在为每个条目提供了星期几、一年中的第几天、月份、季度和一年中的第几周的数据点。这些新特征可以帮助模型学习与每周周期(例如周末销售额更高)或年度季节性相关的模式。这是一个很好的起点。

2. 创建滞后特征

滞后特征是来自先前时间步的值。它们在时间序列预测中至关重要,因为它们代表了过去的系统状态,这通常对未来具有高度预测性。shift() 方法非常适合此目的。

输出

请注意,我们的移位在系列开头创建了一些 NaN 值,这是显而易见的。在建模之前,您需要通过过滤或删除来处理这些值。

3. 计算滚动窗口统计量

滚动窗口计算(也称为移动平均)有助于平滑短期波动并突出长期趋势。您可以使用 rolling() 方法轻松计算固定大小窗口上的各种统计量,如均值、中位数或标准差。

输出

这些新特征有助于提供关于系列近期趋势和波动性的洞察。

4. 生成扩展窗口统计量

与滚动窗口相反,扩展窗口包括自时间序列开始以来的所有数据,直到当前时间点。这对于捕获随时间累积的统计量(包括运行总计和总体平均值)非常有用。这可以通过 expanding() 方法实现。

输出

5. 计算事件之间的时间

通常,自上一个重要事件以来的时间或连续数据点之间的时间可以是一个理想的特征。您可以使用索引上的 diff() 来计算连续时间戳之间的差值。

虽然对于我们简单的规则系列来说不太有用,但对于时间间隔变化的非规律时间序列数据来说,这会非常强大。

6. 使用正弦/余弦对周期性特征进行编码

星期几或一年中的月份等周期性特征会给机器学习模型带来问题。这是因为周期的结束(星期六,第 5 天,在数值上与星期日,第 6 天,相差很大,这可能会导致混淆)。为了更好地处理这个问题,我们可以使用正弦和余弦变换将其转换为二维;这可以保留关系的周期性。

输出

此变换有助于模型理解 12 月(第 12 个月)与 1 月(第 1 个月)的距离与 2 月(第 2 个月)与 1 月(第 1 个月)的距离一样近。

7. 创建交互特征

最后,让我们看看如何通过组合两个或多个现有特征来创建交互特征,这有助于捕获更复杂的关系。例如,模型可能受益于知道它是“工作日早上”还是“周末早上”。

输出

此类交互特征的可能性是无限的。您的领域知识和创造力越丰富,这些特征就越有见地。

总结

时间序列特征工程是艺术与科学的结合。领域专业知识无疑是宝贵的,但对 Pandas 等工具的熟练掌握同样重要,它们可以为创建有助于提高模型性能并最终解决问题的特征提供基础。

本文介绍的七种技巧——从提取日期时间组件到创建复杂交互——是任何时间序列分析或预测任务的强大构建块。通过利用 Pandas 及其强大的时间序列功能,您可以更有效地发掘时间序列数据中隐藏的模式。

关于 7 个 Pandas 时间序列特征工程技巧 的一个回应

  1. dmolina 2025年8月9日下午5:33 #

    你好 Matthew,

    首先,感谢您的这篇帖子。这是一个关于时间序列函数的良好总结。
    第一个示例中有一个错误。它与第 6 点示例相同。😁

发表评论

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。