[算法]时间序列(介绍)

1/什么是时间序列数据?

时间序列数据 是按照固定时间间隔或连续时间点 ,按时间顺序排列的一系列观测值数据点。其核心特征是 "时间顺序" 本身就携带了至关重要的信息,数据点之间不是独立同分布的,而是存在相关性、趋势性或周期性

简单来说,如果你打乱数据点的顺序,那么, 其意义就会完全丧失或严重受损,那么这很可能就是时间序列数据。

核心特征:

  1. 时间依赖性(自相关性)当前的数据点与过去的数据点相关(例如,今天的温度与昨天、前天的温度有关)。
  2. 趋势:数据在长时间内呈现的上升或下降的方向(例如,公司销售额的长期增长)。
  3. 季节性:数据在固定周期内重复出现的规律模式(例如,每日的交通高峰、每年的冰淇淋销量高峰)。
  4. (可能的)周期性:非固定频率的波动模式(例如,由经济周期引起的波动)。

2/时间序列数据长什么样?

在数据结构上,它通常表现为一个带有时间戳的二维表格或一个有序的列表/数组。

典型结构:

时间戳 观测值 1 观测值 2 ...
t₁ x₁ y₁ ...
t₂ x₂ y₂ ...
t₃ x₃ y₃ ...
... ... ... ...
  • 最左边一列(或索引)时间索引 ,这是时间序列数据的"灵魂"。它可以是:
    • 等间隔的:2024-01-01 00:00, 2024-01-01 01:00, 2024-01-01 02:00...
    • 不等间隔的:事件发生的时间戳,如用户点击记录。
  • 每一行代表在某个特定时间点的"快照"。
  • 每一列 代表一个随时间变化的特征变量。可以是单变量(只有一列观测值),也可以是多变量(有多列观测值)。

3/几个具体的例子

1. 经典单变量时间序列:某城市每日气温

  • 目标:预测未来气温。

  • 数据示例

    日期 平均温度(°C)
    2024-01-01 5.2
    2024-01-02 4.8
    2024-01-03 6.1
    2024-01-04 7.3
    ... ...
    2024-12-31 3.5
  • 特点:只有一个数字序列随时间变化,有明显的季节性和趋势。

2. 金融多变量时间序列:股票分钟级数据

  • 目标:预测股价走势或进行交易策略分析。

  • 数据示例

    时间戳 开盘价 最高价 最低价 收盘价 成交量
    2024-05-10 09:30 150.00 150.50 149.80 150.20 100000
    2024-05-10 09:31 150.22 150.40 150.05 150.35 45000
    2024-05-10 09:32 150.36 150.60 150.30 150.50 52000
    ... ... ... ... ... ...
  • 特点:多个相关联的特征(价格、成交量)同时随时间变化,高频且波动剧烈。

3. 物联网传感器数据:智能工厂设备监控

  • 目标:设备故障预警或预测性维护。

  • 数据示例

    时间戳 设备ID 振动幅度 温度(°C) 电流(A) 压力(MPa)
    2024-05-10 10:00:00 Motor_A 2.1 65 10.5 0.85
    2024-05-10 10:00:01 Motor_A 2.2 65.1 10.6 0.86
    2024-05-10 10:00:02 Motor_A 5.8 70.3 15.2 0.92
    ... ... ... ... ... ...
  • 特点:通常由多个传感器产生,频率高,是异常检测和模式识别的重要数据源。

4. 业务与网络数据:网站每小时访问量

  • 目标:资源规划、广告投放。

  • 数据示例

    日期-小时 独立访客数 页面浏览量 服务器负载
    2024-05-09 20:00 10432 89210 0.65
    2024-05-09 21:00 12054 100345 0.72
    2024-05-09 22:00 15321 134567 0.85
    2024-05-10 09:00 8567 65432 0.45
    ... ... ... ...
  • 特点:具有强烈的周期性(日周期:白天高夜间低;周周期:工作日高周末低)。

5. 其他领域的例子:

  • 音频信号:振幅随时间变化的序列(时间间隔非常短且固定)。
  • 心电图(ECG):心脏电活动随时间变化的记录,用于检测异常心跳。
  • 语言文本:可以将一个句子看作单词在"时间步"上的序列(这里的"时间"是顺序位置)。

5. 在机器学习/深度学习中的应用

处理时间序列数据的模型需要能够捕捉其时间依赖性

  • 传统机器学习方法:需要手动构造特征,如滞后特征(前1小时的值、前1天的值)、滑动窗口统计量(过去7天的均值、方差)、季节指标等,然后使用回归、随机森林等模型。
  • 深度学习方法 :能自动学习时间模式,是当前的主流:
    • 循环神经网络(RNN)及其变体(LSTM, GRU):专为序列数据设计,具有"记忆"功能。
    • 时间卷积网络(TCN):使用因果卷积来捕获长期依赖。
    • Transformer模型:通过自注意力机制,能并行处理并捕获长距离依赖,现在也被广泛应用于时间序列预测(如Informer、Autoformer等模型)。

6. 总结

时间序列数据 就是带有时间戳、且顺序至关重要的数据。它广泛存在于我们生活的方方面面,从经济金融到工业制造,从日常天气到人体健康。

识别和理解你的数据是否具有时间序列特性,是选择正确分析方法和机器学习模型的第一步。

相关推荐
漂流瓶jz2 小时前
UVA-1442 洞穴 题解答案代码 算法竞赛入门经典第二版
c++·算法·题解·aoapc·算法竞赛入门经典·uva
叠层归一研究院3 小时前
基于极限自指的叠层归一宇宙结构理论——无元外部封闭系统的内生区分模型
人工智能·经验分享·算法·agi
Selvaggia4 小时前
Diffusion Model 的基本原理与模型架构
算法
wabs6665 小时前
关于二叉树【力扣572.另一棵树的子树的思考】
数据结构·c++·算法·leetcode·二叉树
hanlin035 小时前
刷题笔记:力扣第41题-缺失的第一个正数
笔记·算法·leetcode
shehuiyuelaiyuehao6 小时前
算法50,分治归并,数组中的逆序对
java·算法
阳明山水7 小时前
校准分位数驱动智能库存决策
人工智能·深度学习·算法·机器学习·架构
别动我齐刘海8 小时前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
zhangfeng11338 小时前
《从“人工适配“到“智能生成“:KernelSwift 跨国产芯片算子迁移全栈方案解读》 —— 强调范式跃迁和跨硬件属性,适合偏架构分析的写法
人工智能·算法·华为·ai编程·npu
0+1118 小时前
算法 --滑动窗口
c++·算法·leetcode