# 在预测中使用日期功能

从使用自动工程日期功能训练的 ML 部署运行预测时，在应用数据中指定日期和时间存在要求。这些要求和注意事项略有不同，具体取决于您是运行批处理预测、实时预测，还是使用 Qlik Predict 分析连接器。

## 自动日期特性工程

自动特性工程是模型训练期间在 ML 实验中执行的数据准备步骤。通过此过程，将从训练数据集中创建新功能，然后用于训练模型。对于日期功能列，此过程默认自动执行。用户可以选择退出日期功能工程。但是，在大多数情况下，建议使用此功能。

有关更多信息，请参阅[日期特性工程](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/date-feature-engineering.htm)。

## 批处理预测的要求

当使用训练数据集创建模型时，会自动生成日期特性，该模型被部署并用作 ML 部署，以对新数据进行预测（对于批量预测，这是应用数据集）。

当使用自动设计日期特性训练的模型被部署用于进行预测时，用于生成预测的应用数据集不需要包括自动设计日期特性。Qlik Predict 在预测之前为应用数据集生成自动设计特性。但是，应用数据集必须包含父日期特性（日期部分由此派生），并且您正在使用的列必须具有日期、日期时间、时间戳或时间数据类型。

ML 部署创建的预测数据集，包括 SHAP 和应用数据集，将包括自动设计的日期特性。

## 实时预测和基于连接器的预测要求

运行实时预测以及来自Qlik Predict分析连接器的预测时，对您提供给Qlik Predict的应用数据中的日期特性有要求。对于这些类型的预测，应用数据是在一个小型 JSON 有效负载中指定的，而不是作为应用数据集。对于实时预测和基于连接器的预测，您正在将 JSON 有效负载发送到机器学习 API 中的实时预测端点。

为了使机器学习 API 中的实时预测端点能够处理您的日期和时间戳字段，您发送到端点的 JSON 有效负载必须符合以下要求：

* 日期和日期时间值必须是根据 ISO 8601 标准格式化的字符串示例：

  * 2020-01-14

  * 2020-01-14T00:00:00.000Z

* 父日期（从中派生出日期部分的功能）必须完整包含。例如，您的模型可能只使用 年份 特性，但您仍然需要以符合 ISO 8601 标准的格式提供日期。

* 每列中的数据需要属于同一时区

以上要求：

* 仅适用于使用日期特征工程训练的功能。如果功能类型手动更改为分类特征类型，则这些要求不适用。如果功能类型已更改为分类，请在应用数据中提供该列，并采用其最初用于训练的日期格式。

* 不适用于时间序列模型。

信息注释用于训练模型的数据不必遵循这些要求。

信息注释

实时预测 API 被弃用，并被[机器学习 API](https://qlik.dev/apis/rest/ml/)中的实时预测端点所取代。功能本身并没有被弃用。对于未来的实时预测，请使用机器学习 API中的实时预测端点。如需从实时预测 API 迁移到机器学习 API的帮助，请参阅[Qlik Cloud开发者门户上的迁移指南](https://qlik.dev/apis/rest/automl-deployments/#migrate-from-the-automl-real-time-predictions-api-to-the-machine-learning-api)。

## 了解详情

* [自动特性工程](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/automatic-feature-engineering.htm)
* [日期特性工程](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/date-feature-engineering.htm)
* [Qlik Predict 分析源](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-qlik-automl-connector-overview.htm)