# 使用時間序列部署進行預測

在您部署並核准時間序列模型之後，您可以建立特定時間的預測。在本教學課程中，我們在 ML 部署內建立一個預測設定，並用來執行批次預測。

目前為止，我們已使用每日銷售資料來建立機器學習模型。此流程的目標一直是透過機器學習辨識模式，以及將這些模式套用至新資料。

## 瞭解時間序列模型的預測

區分時間序列模型的預測運作方式很重要，因為它不同於其他模型類型的預測。您完成以準備套用資料集的步驟，與其他模型類型的步驟不同。

對於時間序列模型，新的預測會以新列的形式新增，而不是以個別欄的形式新增。

## 建立套用資料集

本區段概述了如何為此時間序列問題建立您的套用資料集。未顯示編譯資料集列的實際程序，但顯示了工作流程。

線性圖表，概述了用於使用時間序列預測模型生成預測的套用資料集所需的元件和時間軸。

線性圖表，概述了用於使用時間序列預測模型生成預測的套用資料集所需的元件和時間軸。

線性圖表，概述了用於使用時間序列預測模型生成預測的套用資料集所需的元件和時間軸。 ![](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/concept_ml-time-series-forecast-apply-data.png)

### 欄位結構

您的套用資料集需要包含與您部署的時間序列模型相同的結構描述。當您開啟機器學習部署時，可以找到該結構描述。

無論如何，套用資料集應包含與模型結構描述相同的欄位 — 換句話說，每個下列項目都應有一個欄位：

* 日期索引

* 目標

* 群組

* 特徵 (共變數)

### 列結構

您的資料集需要包含記錄 (列) 如下：

* 包含在[訓練資料集](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#TrainPrepare)中的所有欄位與欄位標題。

* 與訓練資料集相同的[時間步長](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm)。

* 訓練資料集中存在的所有[群組](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#Groups)和群組值。

  資訊備註如果套用資料集中存在新的群組值 (這些值在訓練資料中不存在)，則不會為這些列產生預測。如果需要對這些新群組值進行預測，建議您使用包含這些值的訓練資料重新訓練模型。

  資訊備註

  在預測時或在套用資料集中，遺漏的群組值處理方式如下：

  * 允許缺少模型訓練所依據的[主要群組](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#Primary)值。

  * 不允許缺少次要群組值。預測將失敗並發生錯誤。

  最好在可能的情況下，於預測期間收集並提供所有次要群組資料。然而，如果預期次要群組主要在預測時會遺漏，一個可能的解決方案是完全避免使用次要群組。

  相反地，您可以將原始的主要和次要群組值合併為單一的新分組欄位，將其用作新的主要群組，並根據該結構重新訓練模型。在此設定中，新模型僅取決於新引入的主要群組。

  代價是您可能會失去群組之間的一些相關資訊，因為它們現在將被視為完全獨立的時間序列，而不是相互提供上下文資訊的相關子序列。

* 在[預測截止時間](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#ForecastCutOff)之前的歷史資料記錄數量 (每個目標和群組)，必須等於或多於模型的[套用視窗](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#ApplyWindow)中的記錄數量。這些必須是包含歷史觀察日期或時間戳記、[目標](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#Target)和[共變數](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#Covariates)值的完整記錄。套用視窗由訓練期間設定的[預測視窗和間隔](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#ForecastHorizon)決定 — 您需要預測的未來時間越長，您在套用資料集中執行預測所需的歷史資料就越多。

* 預測範圍內所有未來時間步長的記錄。對於這些未來記錄，僅包含日期索引欄位的值，以及任何[未來特性](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework-time-series.htm#FutureFeatures)。將其他欄位的值留空。

### 其他修改

您可能需要對資料集進行其他修改，以使其符合模型結構定義。特別是，分組的功能，特性在訓練期間被選為群組時，會自動轉換為類別功能，特性類型，以便它們可以用作群組。在您的套用資料中，如果您有包含數值資料的功能，特性並將其用作群組，您將需要轉換它們的資料類型，以便將其識別為類別資料。這方面的範例顯示在[準備資料集](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/time-series-tutorial-predict.htm#Preparing)。

### 準備資料集

本教學課程提供一個已使用所需的欄和記錄進行配置的套用資料集。然而，所提供的套用資料集包含一個數值欄store\_nbr，該欄在模型中被配置為群組。因此，您需要建立一個指令碼來將此欄轉換為字串資料。

請執行下列動作：

1. 前往 分析 活動中心的「建立」頁面，並選取指令碼。

2. 輸入指令碼的名稱，例如 已轉換的套用資料。

3. 選擇用於指令碼的空間。它必須與您儲存原始套用資料集的空間相同。

4. 按一下建立。

5. 在 指令碼 中，切換至 編輯器。

6. 在 區段 下，按一下 the 建立新區段 icon 以新增區段。

7. 將下方的載入指令碼貼到編輯器中。

8. 按一下 匯出資料。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/time-series-tutorial-predict.htm)

#### 載入指令碼

```
ApplyDataset_Transformed:

LOAD
    id,
    "date",
    text(store_nbr) as store_nbr,
    family,
    sales,
    onpromotion
FROM [lib://:DataFiles/ML - Multivariate forecasting - apply.csv]
(txt, codepage is 28591, embedded labels, delimiter is ',', msq);

Store [ApplyDataset_Transformed] into [lib://:DataFiles/Final transformed apply dataset.qvd](QVD);
```

執行指令碼以將應用程式資料集的新版本匯出至 Qlik Cloud 分析。

執行指令碼以將應用程式資料集的新版本匯出至 Qlik Cloud 分析。

執行指令碼以將應用程式資料集的新版本匯出至 Qlik Cloud 分析Qlik Cloud 分析。 ![指令碼編輯器，其中貼上載入指令碼，並反白顯示「匯出資料」按鈕](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/ml_time-series-run-script.png)

指令碼執行後，新的套用資料集 Final transformed apply dataset.qvd 應位於與原始套用資料集相同的空間中。

## 建立預測

現在您已擁有相容的套用資料集，請使用它從您的 ML 部署建立預測。

請執行下列動作：

1. 在目錄中，開啟您在 [部署時間序列模型](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/time-series-tutorial-deploy.htm) 中建立的 銷售預測部署 部署。

2. 在右下角按一下建立預測。

3. 在右側的預測設定窗格中，展開套用資料並按一下選取套用資料集。

4. 選取套用資料集檔案： Final transformed apply dataset.qvd。

5. 比較訓練和套用資料集的結構描述。不應有任何結構描述不符錯誤。

6. 在預測設定窗格中，按一下名稱預測資料集。輸入以下名稱：ML - Sales predictions。使用預設的 Parquet 格式。

7. 選取空間並按一下確認。

預測組態顯示結構描述比較與組態面板。

預測組態顯示結構描述比較與組態面板。

預測組態顯示結構描述比較與組態面板。 ![ML 部署與時間序列模型，顯示預測設定與結構描述](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/ml-time-series-tutorial-deployment-predictions.png)

按一下儲存並關閉旁邊的 the 立即儲存並預測 icon 圖示。選取。

可在資料集預測中監控流程。您可以在出現的快顯視窗中按一下開啟，以在目錄中檢閱輸出。

當預測執行完畢時，建立一個應用程式以檢視您的預測。移至下一主題。