# 範例 - 使用 Qlik Predict 分析連接器進行假設分析

在此範例中，您將設定假設分析，以模擬調整不同變數時預測值的變化。該範例涉及在 Qlik Predict 中訓練和部署二元分類模型，並使用它透過 Qlik Predict 分析連接器建立預測。

假設分析應用程式

假設分析應用程式

假設分析應用程式 ![假設分析結果](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/what-if-analysis.png)

## 開始之前

### 下載範例材料

在此處下載範例資源：

[WhatIfAnalysisExample.zip](https://help.qlik.com/zh-TW/cloud-services/tutorials/WhatIfAnalysisExample.zip)

材料包括：

* 訓練資料集—data-turnover-employees.xlsx。此資料集用於此範例的訓練和預測。

* 應用程式—What-If Analysis.qvf。若不先訓練和部署模型，則無法使用該應用程式來產生預測。

### 先決條件

開始之前，請確保：

* 您的 Qlik Cloud 訂閱可以執行即時預測。請參閱以下內容，或聯絡租用戶服務帳戶擁有者。

  * [Qlik Pricing](https://www.qlik.com/us/pricing)

  * [Qlik Cloud® Subscriptions](https://www.qlik.com/us/legal/product-terms)

* 您的租用戶管理員已啟用機器學習端點。

  [啟用 ML 端點於 Qlik Cloud](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-qlik-automl-connector-overview.htm#EnableMLEndpoints)

* 您擁有租用戶管理員指派給您的必要權限：

  * The Data connections 權限設定為 Allowed。

    [為使用者指派使用資料連線的權限](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-administer-data-connections.htm#Permissions)

  * 用於處理實驗的權限。

    [使用者對 ML 實驗旳存取權限](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/who-can-work-with-automl.htm#AccessExperiment)

  * 用於處理部署以及處理 Qlik Predict 分析連接器的權限。

    [使用者對 ML 部署和預測的存取權限](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/who-can-work-with-automl.htm#AccessDeployment)

## 第 1 部分：上傳資料集

請執行下列動作：

1. 前往 分析 活動中心 的建立頁面，然後選取 Dataset。

2. 按一下 Upload data file。

3. 將 data-turnover-employees.xlsx 資料檔案拖放至 Add file 對話方塊中。

4. 選取檔案的目的地空間。這可以是您的個人空間或共用空間。對所有教學課程資產使用相同的空間。

5. 按一下 Upload。

## 第 2 部分：訓練實驗

建立、設定並執行實驗以訓練二元分類模型。預設情況下將包含所有可用的特性。

請執行下列動作：

1. 前往 分析 活動中心 的建立頁面，然後選取 ML experiment。

2. 輸入實驗的名稱，例如 員工流失分析。

3. 選擇實驗的空間 (使用您在 [第 1 部分：上傳資料集](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Upload) 中使用的相同空間)。

4. 按一下 Create。

5. 選取訓練資料集檔案 data-turnover-employees.xlsx。

6. 選取 left 欄作為目標。此欄指出員工是否已離職。

7. 按一下 Run experiment。

## 第 3 部分：部署並啟用表現最佳的模型

### 部署

實驗訓練完成後，您將進入 Models 標籤。將表現最佳的模型部署為 ML 部署。

請執行下列動作：

1. 按一下旁邊帶有 the Trophy icon 圖示之模型旁邊的 the Three-dot menu icon。

2. 按一下 the Deploy icon 。

3. 選取將模型部署至 A new deployment 的選項。

4. 輸入部署的名稱，例如 Employee Turnover Predictions。

5. 如有需要，調整空間、說明和標記。

6. 開啟 Enable real-time API access。這是使用 Qlik Predict 分析連接器執行預測所必需的。

7. 按一下 Create。

### 啟用

開啟新建立的部署。

在 ML 部署介面的頂端，橫幅會指出模型核准者需要啟動預設模型以進行預測。

請執行下列動作：

1. 在 ML 部署頂端的橫幅中，按一下 啟動模型。

2. 在開啟的對話方塊中，按一下 啟動模型 以進行確認。

## 第 4 部分：建立與 Qlik Predict 分析連接器的連線

接下來，建立與 Qlik Predict 分析連接器的連線。這將允許您在分析應用程式中即時產生預測。

請執行下列動作：

1. 前往 分析 活動中心的建立頁面，然後選取 Data connection。

2. 在 Space 下，選取您在 [第 1 部分：上傳資料集](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Upload) 中使用的相同空間。

3. 選取 Qlik Predict 連接器。

4. 選取您在 [第 3 部分：部署並啟用表現最佳的模型](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Deploy) 中建立的 ML deployment。

5. 輸入以下 Name：MLModel。

6. 按一下 Create。

## 第 5 部分：上傳分析應用程式

上傳您在 [下載範例材料](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Download) 中下載的分析應用程式。

請執行下列動作：

1. 前往 分析 活動中心的建立頁面。

2. 在 Data and upload 下，選取 Upload。

3. 將 What-If Analysis.qvf 應用程式拖放至對話方塊中。

4. 在 Space 下，選取您在 [第 1 部分：上傳資料集](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Upload) 和 [第 4 部分：建立與 Qlik Predict 分析連接器的連線](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Connection) 中使用的相同空間。

5. 按一下 Upload。

上傳應用程式後，將其開啟，然後開啟 What-If Analysis 工作表。

資訊備註應用程式已預先設定，因此您不需要新增工作表和運算式。然而，每個步驟都在 [瞭解應用程式](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Understanding) 中有詳細說明。

## 探索結果

您現在已在應用程式中開啟 What-If Analysis 工作表。

請執行下列動作：

1. 在 employee\_number 欄位中選取單一員工值。值會顯示在 Risk of Turnover KPI 中。

2. 調整 KPI 下方的滑桿。每次調整都會進行模擬，以預測員工流失的風險。

選取單一員工並調整變數後的假設分析。

選取單一員工並調整變數後的假設分析。

選取單一員工並調整變數後的假設分析。 ![假設分析結果](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/what-if-analysis.png)

## 瞭解應用程式

### 已載入的資料

在 [第 2 部分：訓練實驗](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Train) 中使用的訓練資料集會用作應用程式資料。在實際情況中，情況可能並不總是如此。

### 工作表變數

已建立以下變數，每個變數都有空白的預設定義。定義留空，因為變數值會在分析期間即時更新。

用於假設分析的變數

| 變數名稱 | 其代表的模型特性 | 變數預設定義 |
| --- | --- | --- |
| vSatisfactionLevel | satisfaction\_level | - |
| vTimeSpent | time\_spend\_company | - |
| vNumberOfProjects | number\_project | - |
| vAvgMonthlyHoursWorked | average\_monthly\_hours | - |

### KPI 和運算式

已將 KPI 新增至工作表。使用以下圖表運算式：

```
endpoints.ScriptEvalStr('{"RequestType":"endpoint", "endpoint":{"connectionname":":MLModel","column":"left_yes"}}',
	vSatisfactionLevel as satisfaction_level,
	vTimeSpent as time_spend_company,
	last_evaluation,
	vNumberOfProjects as number_project,
	vAvgMonthlyHoursWorked as average_monthly_hours)
```

該計算代表所選員工的流失風險。

以下區段概述此運算式如何使用伺服器端延伸語法來呼叫 機器學習 API 以進行即時預測。

#### 分解運算式

此運算式使用伺服器端延伸 (SSE) 語法來即時產生預測。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm)

#### endpoints.ScriptEvalStr

endpoints.ScriptEvalStr 前置詞指出正在使用伺服器端延伸。特別是使用了 ScriptEvalStr 函數。此函數允許您指定連線名稱、目標和特性，而無需明確宣告類型。換句話說，使用此函數時，API 會自動推斷特性類型。

[伺服器端延伸語法](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm)

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm)

#### ('{"RequestType":"endpoint",

此區段透過指定請求是存取特定端點，進一步叫用伺服器端延伸。

[伺服器端延伸語法](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm)

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm)

#### 指定連線名稱

"endpoint":{"connectionname":":MLModel" 區段指出要使用的連線名稱。這需要與在 [第 4 部分：建立與 Qlik Predict 分析連接器的連線](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Connection) 中指定的連線名稱相符。該連線還包含 : 前置詞，指出要使用的連線與應用程式位於相同的空間中。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm)

#### 指定目標並請求機率

column":"left\_yes" 區段指出我們想要使用 left 欄作為目標。\_yes 字尾指出我們正在尋找 yes 結果的機率。換句話說，我們不是特別請求預測值，而是請求預測為正值的機率。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm)

#### 指定特性和變數

指定目標欄後，我們需要指定模型中的特性。可以透過開啟 ML 部署 (在 [第 3 部分：部署並啟用表現最佳的模型](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Deploy) 中建立)，然後開啟 Deployment overview 來取得模型特性。這會開啟模型結構描述：特性清單及其特性類型。

ML 部署中的 Deployment overview，顯示 Model schema

ML 部署中的 Deployment overview，顯示 Model schema

ML 部署中的 Deployment overviewDeployment overview，顯示 Model schemaModel schema ![ML 部署之部署概述中的模型結構描述。](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/what-if-analysis-model-schema.png)

從此處，特性清單可以建構為以逗號分隔的清單。使用 "as" 關鍵字的變數替換指出要將變數的目前值用作特性資料，而不是應用程式資料本身。這些變數替換允許在此範例中示範的互動式「假設」模擬。

```
vSatisfactionLevel as satisfaction_level,
vTimeSpent as time_spend_company,
last_evaluation,
vNumberOfProjects as number_project,
vAvgMonthlyHoursWorked as average_monthly_hours)
```

資訊備註運算式中的特性清單需要包含模型結構描述中的所有特性。否則，預測會失敗。此外，如果運算式中列出的特性未出現在模型結構描述中，預測同樣會失敗。如果您訓練的模型不具有與上述運算式中列出的特性相同的特性集，您將需要編輯運算式以視需要包含或移除特性。

### 變數輸入物件

已將四個變數輸入控制項新增至工作表—每個變數一個。已進行以下設定：

* 已選取要使用的變數。

* 輸入類型已選取為 Slider。

* 根據原始資料可能合理出現的值，設定了每個變數的最小值和最大值範圍。

如需有關變數輸入物件的詳細資訊，請參閱 [建立變數輸入控制](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Visualizations/DashboardBundle/creating-variable-input.htm)。

### 篩選窗格

已新增篩選窗格，以便輕鬆選取要關注的員工。

### 包含原始資料的表格

工作表底部也新增了直表，以便輕鬆查看原始資料—即在假設分析期間對其進行變更之前的資料。

[伺服器端延伸語法](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm)

[在視覺化運算式中使用 Qlik Predict 連線](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-qlik-automl-connector-use.htm)