当前位置:   article > 正文

使用机器学习/深度学习进行时间序列预测:第 2 部分 - ML&DL 的时间序列特征提取_mlp 提取时间序列特征

mlp 提取时间序列特征

时间序列预测领域,近年来出现了机器学习算法,如梯度提升树框架(XGBoost、LightGBM)、深度学习(LSTM、GRU、TCN)算法。 在进行时间序列建模时,机器学习算法与深度学习的区别在于是否预处理特征。 例如,在我们获得包含“日期时间”时间戳的原始数据后,机器学习算法通常会对时间戳进行细粒度的时间特征提取,以帮助模型更好地理解时间模式和趋势。 一般的深度学习模型不会对原始数据的时间特征进行预处理,而是依靠模型自身对时间特征的理解来进行特征提取和变换。

数据处理

  1. 检查数据
    预测分为首先,我们必须观察提供/收集的时间序列数据。 检查它是否是按时间顺序排列的连续观察序列。 因为时间序列模型的假设即是连续时间数据,所以如果所得到的时间序列数据过于离散,需要对时间单位进行细粒度化,以提高数据的连续性。

2、数据清洗

  • 重复数据:去除重复信息,删除不相关的数据,删除例如 order_id 或 row_id,等只代表序列含义的列,无法对预测做出贡献。
  • 处理缺失值:数据缺失在一定阈值内需要删除或估算。 一般来讲,从技术人员角度,缺失数据超过40-50%即可界定为缺失大部分有效信息。但如果项目有业务人员参与,缺失百分比也取决于先验知识。如果数据缺失比例少于既定阈值,需要考虑填充,一般可以通过0、均值、众数、中位数等填充缺失值。在必要时也可以考虑少样本分类、回归模型预测出改缺失特征的缺失值,进而完成填充。
  • 纠正格式错误:确保输入数据格式正确。比如数据集中的“日期”数据可能是“object”格式,而对于建模来说,日期数据应该是应为“datetime”格式。
  • 检测和处理异常值数据:通常模型对于异常值的敏感度会显著影响模型性能。例如决策树对异常值较为敏感,因为在构建树的过程中,异常值可能导致节点的划分发生变化,进而导致建模失败。但适当的构建模型结构可以提高鲁棒性。诸如决策树的集成模型(随机森林、梯度提升树)则相对不容易受到异常值的干扰。因此请识别异常值并确定适当的操作来处理它们。
  • 标准化:不同的特征可能有不同的尺度和单位。例如,在数据集中,一个特征的范围可能是从 0 到 1,而另一个特征的范围可能是从 1 到100。如果模型不适应这种差异,则可能会导致训练不稳定或某些特征可能产生过大的影响。标准化,例如对数变换、归一化等是考虑稳定数据方差的好方法

3、数据分析

分析数据集的特征,例如季节性、趋势、周期性等,因为它有助于进行进一步的特征工程(如果有必要)。

具体代码

通常细粒度的时间特征可以通过以下方式抽取,具体取决于业务需求:

  • 细粒度时序特征
import pandas as pd

def get_season(month):
    if 3 <= month <= 5:
        return 'Spring'
    elif 6 <= month <= 8:
        return 'Summer'
    elif 9 <= month <= 11:
        return 'Fall'
    else
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/1020770
推荐阅读
相关标签
  

闽ICP备14008679号