使用多变量时间序列预测 | Qlik Cloud帮助
跳到主要内容 跳到补充内容

使用多变量时间序列预测

使用 Qlik Predict,您可以训练机器学习模型来预测特定于时间的指标。通过使用基于神经网络的方法,模型可以学习并预测涉及特定于时间的关联、分组目标数据、历史特性和已知未来变量的复杂模式。要创建时间序列预测,请准备一个训练数据集,将其用于时间序列实验,部署模型,然后创建可用于生成预测的应用数据集。

时间序列问题的组件

通过时间序列预测,目标是预测未来特定日期的目标值。例如,您可能想要预测下周、下个月或下个季度的销售额。

在开发时间序列问题时,请定义以下组件:

  • 目标和组

  • 日期索引

  • 预测范围

  • 协变量

信息注释此框架描述了如何为时间序列预测问题定义机器学习问题。要为分类和回归问题定义机器学习问题,请参阅 定义机器学习问题

简化的插图,概述了 Qlik Predict 中时间序列预测问题的组件。

目标

与其他实验类型一样,目标是您希望模型预测未来值的列。对于时间序列实验,目标需要包含数值数据,例如销售额或库存。

如果您在时间序列预测中使用 ,模型将预测 预测窗口 中每个时间步长、每个组的一个目标值。如果您不使用组,您的训练模型将预测预测窗口中每个时间步长的一个目标值。

日期索引

日期索引在连续的时间间隔(时间步长)内跟踪时间序列指标。您需要在早期阶段决定您的时间步长:您需要多久预测一次未来值?

具体而言,日期索引是出现在您的训练和应用数据集中的一列,用于时间序列问题。日期索引决定了这两个应用数据集的结构——每一行代表一个时间步长(或者,对于组,代表每个唯一分组的一个时间步长)。

当您在时间序列实验中添加训练数据集时,可能的日期索引列会自动识别并以 洞察 的形式在列级别呈现给您。您可以在模式视图中从 可能的日期索引 洞察中识别它们。

组是包含分类信息的特性,您希望为其单独生成预测。组的经典示例包括商店编号和产品,它们可用于组织销售等目标的数据。通过选择商店编号和产品类型作为组,您的时间序列模型将为这些列中的每个唯一值提供预测。例如,以销售额为目标,如果您有三个商店编号(1、2 和 3)和两种产品类型(杂货和农产品),您的模型将为这些值的每个唯一组合生成销售预测。

如果您有数据并且需要按类别进行单独预测,则应将组纳入您的时间序列问题中。组的另一个优点是模型可以全局学习,从而更好地理解您定义的各种分组之间存在的模式。

您可以配置每个实验版本要使用的组。如果您未指定组,但训练数据集中识别出了组,则训练将使用这些组。

组由日期索引列中的重复值识别——例如,对于 2025 年 1 月 14 日的日期,您有两条记录:一条用于商店 A,另一条用于商店 B。

时间序列实验中的每个组(包括仅目标本身)都被视为数据集中的单独时间序列。请参阅 什么是时间序列?

预测范围

预测范围指定您希望预测到未来的多远。预测范围由预测窗口(您需要预测的时间步长数)和预测间隔(历史数据之后您不需要预测的可选时间步长数)组成。

您在配置实验版本时设置预测窗口和间隔大小。这些值在模型训练期间以及从部署为 ML 部署的模型生成预测时都会使用。

预测窗口是您希望预测到未来的 时间步长 数。例如,如果您的时间步长是一天,并且您想预测未来两周的销售额,则应将预测窗口设置为 14。

预测间隔是您不需要预测的未来时间量。设置预测间隔是可选的,因为您可能需要也可能不需要它。预测间隔从您提供的记录的历史训练数据结束处开始。预测窗口在预测间隔结束的地方开始。

例如,您可能希望预测未来的销售额,但您只对输入数据结束一周后的未来日期感兴趣。在这种情况下,如果时间步长为天,您可以将预测间隔大小设置为七个时间步长。

您选择的预测窗口以及您拥有的训练数据量限制了您可以预测到未来的多远。有关更多信息,请参阅 最大预测窗口

协变量

在时间序列问题中,特性 通常被称为协变量。与其他机器学习问题类似,协变量是您怀疑对目标结果有影响的其他变量。每个协变量在您的训练数据集中表示为单列。

在时间序列预测中,有几种类型的协变量,它们有一些重要的区别:

  • 静态协变量:在时间序列过程中不会变化的列。静态协变量适用于使用组的时间序列实验。例如,假设您有产品和商店编号的组,并且有一个特性“默认折扣”。如果商店 1 中的产品 A 的默认折扣为 10%,商店 2 中的产品 B 的默认折扣为 20%,则“默认折扣”将是一个静态协变量。也就是说,它在它出现的组的数据内不会变化。

    静态协变量会自动从您包含在实验中的历史特性中检测到。您无需指出哪些特性是静态协变量。

  • 过去协变量:仅在历史数据中可用且在这些数据中变化的依赖于时间的变量。过去协变量会自动从您包含在实验中的历史特性中检测到。您无需明确指出哪些特性是过去协变量。

  • 未来协变量:未来协变量,也称为 未来特性,是依赖于时间的变量,您将在预测范围内知道其未来值。在训练中使用未来协变量时,您需要在训练配置中将其指明为未来特性。

未来特性

通过未来特性,您可以向模型提供有关您已经知道或可以合理预期的未来信息的额外数据。特别是,您可以访问此特性的未来值,跨越您选择的 预测范围。在定义未来特性时,您需要提供历史数据以及未来数据。

例如,对于一个预测可能受商店提供的未来折扣影响的指标的模型,您可以包括历史观察到的折扣,以及预测窗口内未来时间段的折扣。未来特性的其他示例可以是天气或日历信息。

其他重要概念

本部分概述了与您的时间序列问题相关,但您不会直接在实验或 ML 部署中配置的概念。这些是由您的数据或您为模型配置的其他 属性 定义的属性。

时间步长

时间步长由您的训练数据集定义,对于训练和预测都很重要。

在您的训练数据集中,时间步长是记录日期索引中数据的间隔。例如,时间步长可以是每天、每小时、每分钟或每秒。 检测到的最小时间步长是毫秒。

了解训练数据中使用的时间步长非常重要。您定义的其他实验参数(例如 预测窗口和预测间隔大小)将遵循此时间步长间隔。

部署模型后,您想要为其创建预测的应用数据将需要遵循训练数据集中定义的时间步长。

质量

当您选择训练数据集时,系统会推断所使用的时间步长。如果日期索引中存在一些缺失值或间隙,目标、组和协变量等列可以由系统自动插值。但是,如果您的数据包含不一致的时间间隔,以至于检测到不同的时间步长,则必须先修复数据。例如,如果您有几个月每天记录一次的数据,但其中有一部分数据是按周记录的,则该数据集无法使用,因为会检测到多个时间步长。

应用窗口

应用窗口或回顾期是算法可用于为您指定的 预测窗口 提供预测的训练数据部分。

应用窗口由系统计算和设置。它以 时间步长 为单位进行测量。应用窗口由您设置为预测窗口和间隔(预测范围)的内容定义。 在运行至少一个实验版本后,您的应用窗口大小会显示在实验配置面板和 模型训练摘要 中。在创建或编辑批处理预测配置时,它也会显示在 ML 部署 模型模式 中。

应用窗口会自动从您的训练配置中识别出来。要为给定的预测窗口生成预测,您需要提供至少覆盖您的应用窗口的历史数据。这在您的应用数据集中提供。请参阅 准备应用数据集

最大预测窗口

最大预测窗口是在您配置时间序列实验时估算的。在您运行训练版本后,最大预测窗口将得到确认。当您在实验配置面板中打开 目标和实验类型 时,最大预测窗口会显示为 基于您的数据 下的 估计最大预测最大预测。最大预测窗口是您可以生成预测的最大时间步长数,具体取决于您选择的预测窗口、您提供的历史数据量以及系统预期的最小样本量。您提供的历史数据越多,您预测未来的时间就越远。但是,为了生成可靠的预测,选择合理的预测窗口非常重要。

最大预测窗口最多可达 180 个时间步长。

预测截止时间

预测截止时间在预测期间定义应用数据集时尤为重要。预测截止时间是您的样本中拥有目标值的最后一个日期。本质上,此截止时间之后的日期是您想要生成预测的日期。

什么是时间序列?

Qlik Predict 时间序列预测中,每个组(包括仅目标本身)都被视为训练数据集中的单独时间序列。例如,假设您的训练数据集包含销售指标。这些销售指标是为每个商店和产品类型定义的。将“商店”和“产品类型”列定义为组,训练数据集中就有三个时间序列。

准备训练数据集

对于多变量时间序列预测,您的训练数据集需要包含以下列:

  • 日期索引

  • 目标列

  • 组列(可选)

  • 特性列(可选——如果没有特性,您正在训练单变量预测模型)

显示时间序列训练数据集所需列和数据的插图。描述了没有组、一个组和两个组的场景。

概述时间序列预测模型训练数据集所需组件和时间线的线性图。

日期索引列

您需要一个包含完整日期或时间戳的 日期索引。此列是跟踪目标和协变量指标的按时间顺序的索引。日期索引列沿一致的时间间隔(时间步长)按顺序组织基于时间的测量值。

日期索引列的组织方式如下,具体取决于您是否使用组:

  • 无组:每个时间步长一条记录。例如,对于每日预测,每一行代表一天。

  • 有组:根据所使用的组,每个时间步长有一个或多个重复条目。

对于多变量训练数据集,根据所使用的组,每个时间步长将有一个或多个重复条目。您使用的时间步长具有灵活性——例如,您可以按日、周或月等方式记录一次或多次日期。

如果可以插值,此列中缺失或记录不一致的值有时是可以接受的。但是,您的日期索引值不能包含多个不同的时间步长。例如,如果间隔确定为每天一次,但有时识别出每天两次的间隔,则训练期间会发生错误。

目标列和组列

您的数据集需要有一个包含您想要预测的数值指标的目标列。一个常见的例子是销售额。

如果您正在使用组,则为您添加的 中的每个可能值提供历史目标值。例如,如果您的目标是“销售额”,并且您添加了一个包含商店 A 和商店 B 数据的“商店编号”组,则您的数据集需要为每个时间步长包含两条单独的记录:一条带有商店 A 的销售值,另一条带有商店 B 的销售值。

特性列

您可以在没有任何 协变量 的情况下训练时间序列模型。但是,如果您包含协变量,请为每个特性在数据集中提供一列。除非您正在添加未来特性,否则特性数据通常应该是历史记录的数据。未来特性列可以包含历史数据和未来数据。只有在您确信在创建预测时会知道这些列的未来值的情况下,才应在训练数据集中包含未来特性数据。

跟踪您将用作未来特性的特性,因为您需要在训练配置中将其选为未来特性。

数据量

您的数据集需要包含足够的记录——数据量由所有组共享的时间范围决定。只有来自此重叠周期的数据才用于训练实验。

历史数据的量在决定您可以预测到未来的多远方面起着作用。您想要的预测窗口也会影响您需要的历史数据量。

通常,历史数据越多越好。但是,数据需要具有良好的质量并捕捉到所需的趋势。如果数据提供不相关的信息或包含不准确之处,将其放在模型中是没有帮助的。考虑在优化数据量与保持质量和相关性之间取得平衡。

示例

准备应用数据集

部署时间序列模型后,您需要开发一个 应用数据集,以便进行预测。

应用数据集——要求和验证

对于时间序列模型,应用数据集需要:

  • 训练数据集中包含的所有列的列和列标题。

  • 与训练数据集相同的时间步长

  • 训练数据集中存在的所有和组值。

  • 预测截止时间之前的历史数据记录(每个目标和组)数量,应等于或多于模型的应用窗口中的记录数。这些必须是包含历史观察日期或时间戳、目标协变量值的完整记录。应用窗口由训练期间配置的预测窗口和间隔决定——需要预测的未来时间越长,在应用数据集中运行预测所需的历史数据就越多。

  • 预测范围内所有未来时间步长的记录。对于这些未来记录,仅包含日期索引列的值,以及任何未来特性。将其他列的值留空。

提示注释您的应用数据集的大多数历史数据要求是为了指定最低可接受的数据量。您可以随时提供比所需更多的数据。当模型生成预测时,仅使用覆盖应用窗口所需的记录。

显示用于从时间序列预测模型生成预测的应用数据集所需列和数据的插图。描述了没有组、一个组和两个组的场景。

概述用于通过时间序列预测模型生成预测的应用数据集所需组件和时间线的线性图。

示例

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们!