当前位置: 首页 > news >正文

如何使用5个时间步长创建移动平均特征

如何使用5个时间步长创建移动平均特征

移动平均特征通过平滑时间序列数据来减少噪声,突出长期趋势。以下是使用Python创建5个时间步长移动平均特征的完整方法:

方法一:使用Pandas(推荐)
import pandas as pd# 假设df是包含时间序列数据的DataFrame,'value'是目标列
df['ma_5'] = df['value'].rolling(window=5).mean()# 示例输出:
# 时间点   value   ma_5
# t1      10      NaN
# t2      12      NaN
# t3      11      NaN
# t4      13      NaN
# t5      14      (10+12+11+13+14)/5 = 12.0
# t6      16      (12+11+13+14+16)/5 = 13.2
方法二:使用NumPy手动实现
import numpy as npdef moving_average(data, window=5):return np.convolve(data, np.ones(window)/window, mode='valid')# 示例使用
data = [10, 12, 11, 13, 14, 16, 15, 17, 18]
ma_5 = moving_average(data, window=5)  # 结果: [12.0, 13.2, 13.8, 15.0, 16.2]
关键说明:
  1. 窗口处理
    • 前4个时间点(窗口不满5)会生成NaN
    • 从第5个点开始输出有效平均值
  2. 边界调整
    • 添加min_periods=1参数可计算部分窗口均值
    df['ma_5'] = df['value'].rolling(5, min_periods=1).mean()
    
  3. 数据要求
    • 时间序列必须按时间顺序排序
    • 处理缺失值:df['value'].fillna(method='ffill').rolling(5).mean()
应用场景

移动平均特征常用于:

  • 时间序列预测(如ARIMA模型)
  • 异常检测(平滑后更容易识别离群点)
  • 金融分析(股价趋势分析)
  • 传感器数据处理(消除瞬时波动)

指数平滑法是对移动平均的改进,它赋予近期数据更高权重,使久远数据呈指数衰减。

http://www.dtcms.com/a/334806.html

相关文章:

  • 自动驾驶中的传感器技术33——Lidar(8)
  • Leetcode 14 java
  • 数论之普通判别法、埃氏筛与线性筛的应用及其对比
  • PowerShell 第11章:过滤和比较(下)
  • 深度剖析Redisson分布式锁项目实战
  • redis存储原理与对象模型
  • 《A Practical Guide to Building Agents》文档学习
  • 数学建模:智能优化算法
  • PostgreSQL——事务处理与并发控制
  • CVE-2021-4300漏洞复现
  • 海康机器人3D相机的应用
  • ZKmall开源商城的数据校验之道:用规范守护业务基石
  • Vue 3与React内置组件全对比
  • 【lucene】SegmentInfos
  • 《Leetcode》-面试题-hot100-技巧
  • 科研工具的一些注意事项
  • 【minio】一、Linux本地部署MinIO
  • stringstream + getline()实现字符串分割
  • Java 10 新特性及具体应用
  • 二分查找。。
  • 【大语言模型 02】多头注意力深度剖析:为什么需要多个头
  • Python 类元编程(元类的特殊方法 __prepare__)
  • nflsoi 8.16 题解
  • 【数据结构】-2- 泛型
  • Python - 100天从新手到大师:第十一天常用数据结构之字符串
  • Java实现汉诺塔问题
  • AI Agents 2025年十大战略科技趋势
  • 【嵌入式C语言】六
  • .net印刷线路板进销存PCB材料ERP财务软件库存贸易生产企业管理系统
  • mit6.824 2024spring Lab1 MapReduce