MLops博客

时间序列预测:它与其他机器学习有何不同ML工程师解析

7分钟
8月7日2023

时间序列问题数据科学家/ML工程师他们的职业生涯会比他们所想的频繁相遇所以,这是一个重要概念 理解内出

时间序列是一种数据类型 样本基础 时间基维度像日、月、年等数据命名为“动态性”,因为我们根据日期时间属性编索引给数据隐式排序静态数据仍可归属性DateTime值,

时序数据应用机器学习算法 并想预测未来DateTime值预测2月提供前5年数据总销量或预测天气数年数据时间序列数据预测调用预测与我们工作时处理的问题形成对比静态数据显示.

写博客讨论:

  • 一号时间序列预测即预测与静态机器学习预测有何不同
  • 2工作时序预测时最佳实践

时间序列数据对静态ML

至今为止,我们已经建立基线 说明我们应该如何看待时间序列数据 对比静态数据本节中,我们将讨论这两种类型数据处理的不同性

注解:为简洁起见,我们假设所有数据都是连续式的

缺数据估计

计算缺失数据是表格机学习项目中关键预处理步骤静态数据中,简单算法等技术可用平均值中位数填报缺失数据,数据模式视属性性质而定,或近邻推算法等复杂方法,即使用KNN算法识别缺失数据

时间序列中缺失数据看起来像:

时间序列缺失数据
时间序列缺失数据源码

数据中可见空白无法逻辑填充 推算策略可用于静态数据讨论一些实用技术

  • 何不用刻薄填充静态刻度对我们没有任何好处,因为取未来提示填充缺失值毫无意义在上述图中,相当直观的是,2001-2003年间的空白从逻辑上可以只用历史数据填充,即2001年前数据

    时序数据中,我们使用一种叫滚动平均值或移动平均值或窗口平均值,它取预定义窗口相关值平均值,例如7天窗口或一个月窗口使用移动平均填补时序数据中缺失的空白

    注解静态作用与时序数据平均值并发
  • 插插相当受欢迎:使用时序数据隐式顺序,插值往往是设计时序数据缺失部分的直达法插值简言之,使用缺失点前后值计算缺失dumfe

    多种插值可用如Limerar Sprine和Stineman几乎所有主模块都提供它们的实现像python熊猫插值()函数和Rimute时序打包.

    内插还可用于静态数据但它没有广泛使用,因为在静态数据中比较精密估计技术(其中一些上文解释过)。
  • 理解业务用例这并不是处理缺失数据的任何技术方法但我觉得这是最低估技术 快速产生效果这需要理解手头问题并设计最有效方法归根结底 SOTA可能不是SOTA使用案例eg销售数据处理方式应不同于表示存储数据处理方式,两者均有一套不同的市场度量
    顺便说一下,静态和时序数据中常见使用这种技术

并见

时间序列预测:数据分析实践

时序模型特征工程

与特征合作是区分时间序列数据与静态数据的另一大步特征工程泛词包涵各种标准技巧和特殊方法特征处理时间序列数据不同于静态数据

注释 :人可能会说推理属于特征工程范畴,这没有错, 但我想在单节下解释这一点, 以便给你一个更好的点子

静态数据对眼前问题类型高度主观性,但少数标准技术包括特征变换、缩放、压缩、规范化、编码等

时间序列数据除时间特征外可有其他属性如果属性基于时间,则生成时间序列为多变式,如果静态,则生成结果为单向静态特征非时间特征可使用静态技术方法,不阻碍数据完整性

所有时间基础组件都定型使用某些标准技术设计让我们来研究一些技术 证明有用同时工作 时间特征

时间序列组件:时间序列数据的主要特征

时间序列数据都包含时间序列组件我们用STL分解法(Seasonal和Ternd分解使用 Loess)提取其中一些构件让我们看看这些都意味着什么

STL分解实例
STL分解示例源码
  • 趋势 :时间序列数据显示趋势,当值随时间变化变换时,增值显示正趋势并下降,负趋势上图显示正增长趋势
  • 季节性季节性指时间序列属性显示周期性模式以恒定频率重复举上例子,我们可以观察季节性成分,频率为12个月,广义地表示周期模式每12个月重复一次
  • 保留者 :从数据中提取趋势与季节性后,剩余部分即我们所称剩余值或剩余值这有助于时间序列异常检测
  • 循环 :时间序列数据被称为周期性数据,时有趋势不设置重复或季节性
  • 静态性 :时间序列数据不变时统计特征不随时间变化,即不变平均值和标准偏差共变自时

取出时这些组件通常构成时间序列数据特征工程下一步基础从静态数据角度讲,STL分解为时序世界描述性部分时间序列数据类型多有几分特定度量像时间序列数据假变量工作时盘点数据

时间序列组件对分析时间序列兴趣变量非常重要,以便理解它的行为模式,并能够选择并适应适当的时间序列模型

学习更多

如何选择时间序列预测任务模型

时序模型分析可视化

分析

时间序列数据分析产生不同于静态数据分析的蓝图时间序列分析从回答问题开始,例如:

  • 数据有趋势吗
  • 数据包含模式或季节性吗?
  • 数据静态或非静态

最理想的是,在研究上述问题解答后,必须深入分析类似于此静态数据分析 有一些程序像描述性,预测性指令性.描述性在所有问题说明中都标准化,预测性说明和描述性说明则主观性这些程序在时序和静态ML中都常见描述性、预测性与描述性内使用的许多计量方法使用方式不同,其中之一是关联性.

反之,时间序列数据中我们使用名称自动化关系Partial-Autocorrelation.自动关系和局部自动化关系是当前和过去序列值关联度量并显示过去序列值对预测未来值最有用

ACF和PACF时序图例
CCF和PACF时序图例源码

分析方法介于两种数据类型之间稍有不同,核心思想相同,但在很大程度上取决于问题语句E.g.存储量和天气数据都是时间序列,但你可以使用存储量数据预测未来值和天气数据研究季节模式类似地,用贷款数据分析借款者模式或检查新借款者是否违约还贷

可视化

可视化是分析的一个组成部分判别问题不在于你应视觉化什么 而是应如何视觉化

时间序列数据基于时间特征应可视化时轴非时序特征受用策略处理问题约束

实例时序可视化
实例可视化时序源码

时间序列预测对静态ML预测

上一节中,我们看到两种数据类型之间的区别与初始步骤和方法差异之差,同时比较两种方法之差本节中,我们将探索下一步,即预测或时间序列预测.

算法

时间序列数据算法选择与静态数据算法完全不同算法可推断模式并封装培训数据领域以外的时序组件可被视为时序算法

多数静态机学习算法,如线性回归 SVMs没有这种能力,因为它们泛化培训空间以作新预测完全无法显示上文讨论过的任何行为

时间序列预测使用的一些常用算法

  • 阿里玛:表示自回归集成平均数使用自回归平均值和移动平均值组合预测未来值阅读更多有关它.
  • EWMA/Excent平滑感动平均或感想平滑可升级动均值工作方式是减少延时效果显示移动平均值,对最近出现的值增加权重阅读更多有关它.
  • 动态回归模型算法还考虑其他杂项信息,如公共节日、修改法律等阅读更多有关它.
  • 预言:预言由脸书核心数据科学团队发布,这是一个开源库,由脸书开发,设计用于自动预测单向时间序列数据
  • LSTM:长短期内存(LSTM)是一种循环神经网络类型,可学习项目顺序间顺序依赖性常用它解决时序预测问题

ARIMA对先知对LSTM时间序列预测

清单肯定不是详尽无遗的多复杂模型或方法如泛化自回归条件交错性GARCH和贝叶斯结构时序在某些情况下(BS时序)可能非常有用神经网络模型像神经网络自动回归可应用时间序列使用延时预测器并处理特征

时间序列模型评价尺度

预测评价包括等尺度依赖差错,如平均平方差错和root平均平方差错、百分数差错,如平均绝对百分数差错、平均绝对差错等缩放差错等等这些指标实际上相似静态ML度量

评估尺度帮助确定安装值与实值相近程度,但他们不评价模型是否适当匹配时间序列为此,我们做点事残留诊断.详细阅读.

处理异常/异常

外部鼠标几乎遍及现实世界数据时间序列和静态数据取两条完全不同的路径从识别到处理异常/异常

识别

  • 静态数据识别技术使用Z-score和Boxplot分析技术并使用假设测试等高级统计技术
  • 时间序列中,我们使用从STL分析开始到使用算法如隔离森林等数法的一系列技巧和算法可阅读更多细节.

处理

  • 我们使用方法如Trimming、量基楼盖和平均值/中值定值视容量和问题语句而定静态数据
  • 时间序列数据中有若干选项对使用案例高度主观性其中一些有:
    • 使用替换:我们可以计算值替换异常值并更好地适应数据scleen函数R匹配强势趋势使用loess非季节性序列或强势趋势与季节性组件使用STL计算替换值
    • 学习企业:这不是技术方法,而是一个临时方法识别并研究问题背后的行业 真正能帮助处理局外置换或置换是否明智取舍,

并检查

异常时间序列检测

最佳实践同时处理时序数据和预测

时间序列和预测工作没有固定步骤可循,但仍有一些良好做法可用以获取最优效果

  1. 无放之四海而皆准无预测法所有时序最优性能问题语句 特征类型和目标 开始预测前你需要理解某些域可选择算法取决于您的需要(计算+目标):
    • 统计模型
    • 机器学习
    • 混合方法
  2. 特征选择:选择特征对结果预测错误有影响换句话说,选择必须谨慎完成有不同方法像相关分析并名滤波,封装器并嵌入式特征(即选择已经是预测方法的一部分)。
  3. 反叠加:训练模型期间风险过配可能发生,因为最佳模型不总能产生最佳预测为应对过配问题,历史数据可划分为列车测试数据并进行内部验证
  4. 数据预处理:数据应先分析和预处理,使之净化预测数据可包含缺失值,而由于大多数预测方法无法处理缺失值,必须估计值
  5. 记住多维度的诅咒:当模型培训介绍多维度和多潜在因素时,他们可以遇到下界多维性表示有有限量培训数据 并增加更多维度数据 开始下降精度回报
  6. 工作季节数据模式:如果时间序列数据有季节性,则需要多周期包括季节模式才能适当预测否则模型无法学习模式
  7. 移入预测前处理异常:异常者可能在模型学习中产生巨大的偏差,结果往往总是低级
  8. 仔细研究问题语句:这可能是最低估实践 特别是当你刚开始处理时序问题识别时间型非时间型特征,先研究数据后转用标准技术

终于到尾

我们成功理解时间序列数据与静态数据在结构方法上的差异本博客列出的部分绝非详尽无遗当我们转向更多粒度时,会有更多的差异 与每个问题的具体数据问题相关AG凯时手机版研究时序时可参考我最喜爱资源

引用

  1. https://cran.r-project.org/web/packages/imputeTime-Series/vignettes/imputeTime-Series-Time-Series-Missing-Value-Imputation-in-R.pdf
  2. //www.musclechai.com/blog/anomaly-detection-in-time-series
  3. https://machinelearningmastery.com/resample-interpolate-time-series-data-python/
  4. https://otexts.com/fpp2/missing-outliers.html
  5. https://otexts.com/fpp2/stl.html
  6. https://otexts.com/fpp2/arima.html
  7. https://otexts.com/fpp2/expsmooth.html
  8. https://www.advancinganalytics.co.uk/blog/2021/06/22/10-incredibly-useful-time-series-forecasting-algorithms
  9. https://www.analyticsvidhya.com/blog/2021/05/detecting-and-treating-outliers-treating-the-odd-one-out/
  10. https://otexts.com/fpp2/missing-outliers.html
  11. https://www.rdocumentation.org/packages/forecast/versions/8.3/topics/tsclean
  12. https://www.researchgate.net/publication/332079043_Best_Practices_for_Time_Series_Forecasting_Tutorial_Paper
  13. https://www.anodot.com/blog/time-series-forecasting/

文章有用吗

感谢回馈