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

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. 总结

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

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

相关推荐
Keep__Fighting2 分钟前
【神经网络的训练策略选取】
人工智能·深度学习·神经网络·算法
晚风吹长发12 分钟前
初步了解Linux中的动静态库及其制作和使用
linux·运维·服务器·数据结构·c++·后端·算法
sin_hielo12 分钟前
leetcode 3453(二分法)
算法
风之歌曲1 小时前
c++高精度模板
c++·算法·矩阵
嵌入式进阶行者1 小时前
【算法】深度优先搜索实例:华为OD机考双机位A卷- 中庸行者
c++·算法·华为od·深度优先
a3535413821 小时前
参数化曲线弧长公式推导
算法
不知名XL2 小时前
day27 贪心算法 part05
算法·贪心算法
Tisfy2 小时前
LeetCode 3047.求交集区域内的最大正方形面积:2层循环暴力枚举
算法·leetcode·题解·模拟·枚举·几何
junziruruo3 小时前
t-SNE可视化降维技术(以FMTrack频率感知与多专家融合文章中的内容为例)
人工智能·算法
藦卡机器人3 小时前
自动焊接机器人的核心技术要求与标准
人工智能·算法·机器人