# 时间序列预测问题的分类系统

> 原文： [https://machinelearningmastery.com/taxonomy-of-time-series-forecasting-problems/](https://machinelearningmastery.com/taxonomy-of-time-series-forecasting-problems/)

当您遇到新的时间序列预测问题时，有许多事情需要考虑。

您所做的选择会直接影响项目的每个步骤，从测试工具的设计到评估预测模型，以及您正在处理的预测问题的基本难度。

通过处理有关时间序列预测问题的一系列问题，可以非常快速地缩小选项范围。通过考虑每个主题中的一些主题和问题，您可以缩小问题类型，测试工具，甚至为项目选择算法。

在这篇文章中，您将发现一个框架，您可以使用该框架快速了解和构建时间序列预测问题。

让我们开始吧。

![Taxonomy of Time Series Forecasting Problems](img/1749151e6c1706dd44b13fcade3c67cb.jpg)

时间序列预测问题的分类
摄影： [Adam Meek](https://www.flickr.com/photos/adammeek/34093359272/) ，保留一些权利。

## 框架概述

时间序列预测涉及在观测之间存在有序关系的数据上开发和使用预测模型。

您可以在此帖子中了解有关时间序列预测的更多信息：

*   [什么是时间序列预测？](https://machinelearningmastery.com/time-series-forecasting/)

在开始您的项目之前，您可以回答几个问题，并大大提高您对预测问题结构的理解，模型的结构要求以及如何评估它。

本文提出的框架分为七个部分;他们是：

1.  输入与输出
2.  内生与外生
3.  非结构化与结构化
4.  回归与分类
5.  单变量与多变量
6.  单步与多步
7.  静态与动态
8.  连续与不连续

我建议在开始任何时间序列预测项目之前完成此框架。

您的答案在第一时间可能不会很清晰，您可能需要在研究数据，领域以及与专家和利益相关方交谈时提出问题。

在了解更多信息时更新您的答案，因为它将帮助您保持正常运行，避免分心，并开发项目所需的实际模型。

## 1.输入与输出

通常，预测问题涉及使用过去的观察来预测或预测一个或多个可能的未来观察。

目标是猜测未来会发生什么。

当您需要做出预测时，考虑您可用于做出预测的数据以及您将来会猜测的内容至关重要。

我们可以总结一下，在进行单一预测时，模型的输入和输出是什么。

*   **输入**：提供给模型的历史数据，以便进行单一预测。
*   **输出**：预测或预测未来时间步长超出作为输入提供的数据。

输入数据不是用于训练模型的数据。我们还不是那个时候。它是用于进行一次预测的数据，例如销售数据的最后七天，用于预测下一天的销售数据。

定义模型的输入和输出会强制您考虑做出预测的确切或可能需要的内容。

在输入数据时，您可能无法具体说明。例如，您可能不知道是否需要一个或多个先前时间步骤来做出预测。但是，您将能够识别可用于做出预测的变量。

> 预测的输入和输出是什么？

## 2.内生与外生

输入数据可以进一步细分，以便更好地理解它与输出变量的关系。

如果输入变量受系统中其他变量的影响且输出变量依赖于它，则它是内生的。

在时间序列中，对输入变量的观察取决于彼此。例如，时间 t 的观察取决于 t-1 处的观察; t-1 可能取决于 t-2，依此类推。

如果输入变量独立于系统中的其他变量并且输出变量依赖于它，则它是外生变量。

简而言之，内生变量受系统中其他变量（包括它们自身）的影响，而外生变量则不被系统视为外部变量。

*   **内生**：受系统中其他变量影响且输出变量所依赖的输入变量。
*   **外生**：输入变量，不受系统中其他变量影响，输出变量所依赖的变量。

通常，时间序列预测问题具有内生变量（例如，输出是某些先前时间步长的函数）并且可能具有或可能不具有外生变量。

通常，考虑到对时间序列的强烈关注，外生变量会被忽略。明确地考虑两种变量类型可能有助于识别容易被忽视的外生数据，甚至可以改进模型的工程特征。

> 什么是内生和外生变量？

## 3.回归与分类

回归预测性建模问题是预测数量的问题。

数量是数值;例如价格，计数，数量等。您想要预测一个或多个未来数值的时间序列预测问题是回归类型预测性建模问题。

分类预测性建模问题是预测类别的问题。

类别是来自一组明确定义的标签的标签;例如{“hot”，“cold”}，{“up”，“down”}和{“buy”，“sell”}是类别。

要对输入时间序列数据进行分类的时间序列预测问题是分类预测性建模问题。

*   **回归**：预测数量。
*   **分类**：分类为两个或多个标签之一。

> 您正在研究回归或分类预测性建模问题吗？

这些类型之间存在一定的灵活性。

例如，回归问题可以重新定义为分类，分类问题可以重新定义为回归。一些问题，如预测序数值，可以被定义为分类和回归。重构您的时间序列预测问题可能会简化它。

> 有哪些方法来构建时间序列预测问题？

## 4.非结构化与结构化

在时间序列中绘制每个变量并检查绘图以查找可能的模式非常有用。

单个变量的时间序列可能没有任何明显的模式。

我们可以把没有模式的系列想象成非结构化的，因为没有可辨别的时间依赖结构。

或者，时间序列可能具有明显的模式，例如趋势或季节性周期。

我们通常可以通过识别和删除数据中的明显结构来简化建模过程，例如增加趋势或重复循环。一些经典方法甚至允许您指定参数来直接处理这些系统结构。

*   **非结构化**：时间序列变量中没有明显的系统时间依赖模式。
*   **结构化**：时间序列变量中的系统时间依赖模式（例如趋势和/或季节性）。

> 时间序列变量是非结构化的还是结构化的？

## 5.单变量与多变量

随时间测量的单个变量被称为单变量时间序列。单变量意味着一个变量或一个变量。

随时间测量的多个变量被称为多变量时间序列：多个变量或多个变量。

*   **单变量**：随时间变化测量的一个变量。
*   **多变量**：随时间测量的多个变量。

> 您是在处理单变量或多变量时间序列问题吗？

考虑到关于投入和产出的这个问题可能会进一步加以区分。输入和输出之间的变量数可能不同，例如数据可能不对称。

例如，您可能有多个变量作为模型的输入，并且只对将其中一个变量预测为输出感兴趣。在这种情况下，模型中假设多个输入变量有助于预测单个输出变量。

*   **单变量和多变量输入**：随时间测量的一个或多个输入变量。
*   **单变量和多变量输出**：要预测的一个或多个输出变量。

## 6.单步与多步

需要预测下一个时间步长的预测问题称为一步预测模型。

而需要预测多个时间步长的预测问题称为多步预测模型。

预测到未来的时间步骤越多，问题就越具挑战性，因为每个预测时间步长的不确定性的复合性质。

*   **一步**：预测下一步。
*   **多步**：预测多个未来时间步骤。

> 您需要单步骤还是多步骤预测？

## 7.静态与动态

可以开发一次模型并重复使用它来做出预测。

鉴于模型未在预测之间更新或更改，我们可以将此模型视为静态模型。

相反，我们可能会在进行后续预测之前收到新的观察结果，这些预测可用于创建新模型或更新现有模型。我们可以考虑在每个预测之前开发一个新的或更新的模型作为动态问题。

例如，如果问题需要在未来一周的一周开始时做出预测，我们可能会收到本周末的真实观察结果，我们可以在下周预测之前更新模型。这将是一个动态模型。如果我们在本周末没有得到真实的观察结果，或者我们选择不重新拟合模型，那么这将是一个静态模型。

我们可能更喜欢动态模型，但是域的约束或所选算法的限制可能会产生使这种难以处理的约束。

*   **静态**。预测模型适合一次并用于做出预测。
*   **动态**。在每次预测之前，预测模型适合新的可用数据。

> 您需要静态或动态更新的模型吗？

## 8.连续与不连续

观察值随时间均匀的时间序列可以被描述为连续的。

许多时间序列问题都有连续的观察结果，例如每小时，每天，每月或每年观察一次。

观察结果随时间不均匀的时间序列可被描述为不连续的。

观察的不均匀性可能是由于缺失或损坏的值造成的。这也可能是问题的一个特征，其中观察仅偶尔可用或者以逐渐或逐渐间隔的时间间隔提供。

在非均匀观测的情况下，在拟合某些模型以使观察随时间均匀时可能需要特定的数据格式化。

*   **连续**。随着时间的推移，观察是统一的。
*   **不连续**。随着时间的推移，观察结果不一致。

> 您的观察结果是连续的还是不连续的？

## 进一步阅读

本节列出了一些可供进一步阅读的资源。

*   [什么是时间序列预测？](https://machinelearningmastery.com/time-series-forecasting/)
*   [如何通过时间序列预测项目](https://machinelearningmastery.com/work-time-series-forecast-project/)

## 摘要

要查看，您可以询问有关您的问题的主题和问题如下：

1.  输入与输出
    1.  预测的输入和输出是什么？
2.  内生与外生
    1.  什么是内生和外生变量？
3.  非结构化与结构化
    1.  时间序列变量是非结构化的还是结构化的？
4.  回归与分类
    1.  您正在研究回归或分类预测性建模问题吗？
    2.  有哪些方法来构建时间序列预测问题？
5.  单变量与多变量
    1.  您是在处理单变量或多变量时间序列问题吗？
6.  单步与多步
    1.  您需要单步骤还是多步骤预测？
7.  静态与动态
    1.  您需要静态或动态更新的模型吗？
8.  连续与不连续
    1.  您的观察结果是连续的还是不连续的？

您是否发现此框架对您的时间序列预测问题有用？
请在下面的评论中告诉我。

你有任何问题吗？
在下面的评论中提出您的问题，我会尽力回答。