Task01. 时序数据与 PyPOTS 介绍

Task01. 时序数据与 PyPOTS 介绍

  • Task01. 时序数据与 PyPOTS 介绍
    • 1. 时间序列数据介绍
      • ️ 举例:
      • 与 i.i.d 数据的区别
      • 示例:
    • 1.1 时间序列数据的类型
    • 1.2 常见时间序列数据示例
    • 1.3 时间序列研究与应用方向
      • 主要任务:
        • 1. 预测(Forecasting)
        • 2. 分类(Classification)
        • 3. 聚类(Clustering)
        • 4. 异常检测(Anomaly Detection)
        • 5. 时间序列生成(Generation)
        • 6. 插补(Imputation)
    • 2. PyPOTS 介绍
      • 2.1 什么是 PyPOTS?
      • 2.2 PyPOTS 支持的核心任务
      • 具体任务详解:
        • 1. 缺失值填补(Imputation)
        • 2. 预测(Forecasting)
        • 3. ️ 分类(Classification)
        • 4. 聚类(Clustering)
        • 5. ⚠️ 异常检测(Anomaly Detection)
    • ✅ 总结

Task01. 时序数据与 PyPOTS 介绍

1. 时间序列数据介绍

时间序列(Time Series) 是指按照时间顺序排列的一组观测数据,通常以固定的时间间隔进行记录(如每秒、每小时、每天等)。每一个数据点不仅包含一个观测值,还伴随着一个时间戳。

️ 举例:

  • 每天记录城市气温
  • 每天股市的收盘价
  • 每分钟记录用户的心率(智能手表)

与 i.i.d 数据的区别

  • 时间序列具有时间依赖性
  • “过去影响现在”,甚至“过去影响未来”

示例:

  • 昨天下雨 → 今天湿度高
  • 前几天行情波动 → 影响今天股市
  • 运动后心率上升而不是瞬间变化

因此,时间序列需要专门的建模方法,如预测、分类、异常检测等。


1.1 时间序列数据的类型

类型 描述 示例
单变量时间序列 仅包含一个变量的取值 每日温度、股价、AQI
多变量时间序列 同一时间点多个变量 温度+湿度+压力;多支股票
等间隔 / 非等间隔 时间间隔是否规律 心跳 vs. 发帖时间
周期性 / 非周期性 是否有重复模式 每周气温 vs. 用户在线时间
趋势 / 无趋势 是否存在变化趋势 上升气温 vs. 随机行为
季节性 / 非季节性 是否特定周期有规律 每周变化 vs. 无规律
缺失值 / 完整数据 是否存在缺失记录 发帖记录 vs. 在线记录
静态 / 动态序列 数据是否变化 气象站数据 vs. 用户记录

1.2 常见时间序列数据示例

  • 金融:股价、汇率、指数、交易量
  • 医疗:ECG、EEG、血糖、ICU监测
  • 环境:气象数据、污染物、地震、海啸
  • 交通:车流量、出入站人数、共享单车
  • 互联网行为:点击、搜索、停留时间
  • 工业 IoT:设备温度、电流、压力
  • 零售物流:销量、库存、运输轨迹
  • 能源系统:发电量、用电量、智能电表
  • 音频视频流:语音识别、行为分析
  • 体育与人体数据:加速度、步频、肌电图

1.3 时间序列研究与应用方向

主要任务:

1. 预测(Forecasting)
  • 目标:预测未来时间点值
  • 方法:ARIMA, LSTM, Transformer, TimesNet
  • 应用:电力负载预测、股价预测、疫情趋势
2. 分类(Classification)
  • 目标:将序列分到不同类别
  • 方法:1-NN+DTW, LSTM, InceptionTime, ROCKET
  • 应用:心电图诊断、动作识别、兴趣推荐
3. 聚类(Clustering)
  • 目标:无监督分组
  • 方法:K-Means+DTW, TICC, Deep Temporal Clustering
  • 应用:群体行为、气候分区、设备运行状态
4. 异常检测(Anomaly Detection)
  • 目标:识别异常行为或故障
  • 方法:AutoEncoder, GAN, GP, KLD
  • 应用:信用卡欺诈、设备故障、网络攻击
5. 时间序列生成(Generation)
  • 目标:生成相似序列
  • 方法:TimeGAN, Diffusion Models
  • 应用:合成医疗数据、数据增强
6. 插补(Imputation)
  • 目标:填补缺失数据
  • 方法
    • 传统:前向/后向填充、线性插值
    • ML:BRITS、GRU-D、SAITS、CSDI、GRIN
    • 统计:KNN、EM、Kalman滤波
  • 应用:ICU数据、气象监测、IoT设备、金融数据

预测 vs 插补:预测是推断未来;插补是填补历史/当前缺失。


2. PyPOTS 介绍

2.1 什么是 PyPOTS?

PyPOTS 是一个专门处理**部分观测时间序列(POTS)**的开源 Python 工具包,支持缺失值插补、预测、分类、聚类、异常检测等任务。

目标:

  • 专注于 POTS 数据的建模
  • 提供经典与先进算法
  • 提供统一 API、学习指南和应用示例

2.2 PyPOTS 支持的核心任务

任务类型 支持算法数量 代表算法
缺失值填补 48+ SAITS, BRITS, GRU-D, BTTF
预测 13+ LSTM, Transformer, SAITS
分类 10+ GRU Classifier, TCN, RNN
聚类 4+ K-Means、AutoEncoder
异常检测 22+ Reconstruction, Transformer

具体任务详解:

1. 缺失值填补(Imputation)
  • 传统方法

    • 前向填充(Forward Fill)
    • 后向填充(Backward Fill)
    • 线性插值
  • 深度学习方法

    • SAITS(Transformer风格)
    • BRITS(双向RNN)
    • GRU-D(时间衰减机制)
    • MRNN、CSDI、Transformer-DAE
  • 概率方法

    • BTTF(贝叶斯时序张量分解)
2. 预测(Forecasting)
  • 方式
    • 先插补后预测(如 SAITS + LSTM)
    • 端到端预测模型(Transformer、GRU)
3. ️ 分类(Classification)
  • 深度模型(RNN, Transformer)
  • 可结合插补模块
  • 支持多任务学习(分类+预测/插补)
4. 聚类(Clustering)
  • 方式
    • 插补后 + KMeans/DBSCAN
    • 表征学习 + 聚类(如 Transformer 编码器)
  • 支持评估指标
    • Silhouette Score、NMI
5. ⚠️ 异常检测(Anomaly Detection)
  • 方法
    • 插补 + 重建误差
    • 统计阈值法
    • Transformer 模型(可结合 CSDI)

✅ 总结

PyPOTS 是一个模块化、扩展性强的时间序列工具包,特别适用于存在缺失值的多变量时间序列数据分析场景。其支持的五大任务涵盖了时间序列挖掘中的主流应用,配合 Benchmark 工具箱和丰富模型库,为研究与工程实践提供了强有力的支持。

你可能感兴趣的:(python,机器学习,时序数据库,数据挖掘)