# 在預測期間產生 SHAP 資料集

可以在執行預測時產生 SHAP 重要性資料集。您可以在這些資料集使用 SHAP 計算，以理解哪些特徵對於預測的值是最重要的貢獻者。

SHAP 資料集包含列層級 SHAP 計算，適用於用來訓練模型的特徵。考慮到該列的所有其他特徵，這些值代表每個特徵對目標預測值的貢獻程度。

例如，SHAP 重要性可以告知我們，特徵是否讓客戶更可能或更不可能流失，以及對於該結果的影響程度。

若您已執行預測並產生資料集，可以將 SHAP 值載入到 Qlik Sense 應用程式中，並連同預測的值進行視覺化。如需其他詳細資訊，請參閱 [在 Qlik Sense 應用程式中視覺化 SHAP 值](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/shap-values.htm) 和 [在實際應用程式中使用 SHAP 值](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/shap-applications.htm)

此說明主題著重於 ML 部署預測期間的 SHAP 資料集產生。如需關於實驗訓練期間顯示的 SHAP 重要性圖表的資訊，請參閱 [理解實驗訓練中的 SHAP 重要性](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/shap-importance.htm)。

資訊備註在使用時間序列模型進行預測時，無法產生 SHAP 資料集。

## 產生 SHAP 資料集的可用選項

設定預測時，您可以選擇以兩種不同的格式產生 SHAP 資料集。兩種選項皆提供相同的資訊，但以不同的方式結構化。

### SHAP

此資料集對每個特徵將 SHAP 值分為一個欄。此選項無法用於多類別分類模型。

### 座標 SHAP

此資料集結構化所有 SHAP 值，僅包含在「特徵」欄和「值」欄這兩欄內。此選項可用於所有模型類型。

相較於來自二元模型的資料集，來自多類別模型的資料集運作方式稍有不同。對於每個要預測的記錄，會為每個可用來讓模型預測的可能分類，透過 SHAP 值產生新的列。在資料集中，也會建立附加欄，以識別 SHAP 值代表的分類。

將預測和 SHAP 值載入到 Qlik Sense 應用程式並建立資料模型時，座標 SHAP 資料集比 SHAP 資料集更容易運作。

### 範例

下表包含來自 SHAP 和座標 SHAP 資料集的範例，這從根據五個特徵訓練的迴歸模型產生。範例包含來自套用資料集的兩個記錄的 SHAP 值 (對應至兩個帳戶 ID)。

這些範例醒目提示資料結構化方式之間的差異。

SHAP dataset sample

| AccountID | AdditionalFeatureSpend\_SHAP | Churned\_SHAP | CurrentPeriodUsage\_SHAP | HasRenewed\_SHAP | NumberOfPenalties\_SHAP |
| --- | --- | --- | --- | --- | --- |
| aa16889 | 1.76830971241 | -0.58154511451721 | -1.106874704361 | -0.36080026626587 | 3.6597540378571 |
| aa33396 | 0.80359643697739 | -0.64805734157562 | 0.076582334935665 | 0.38967734575272 | -0.31007811427116 |

Coordinate SHAP dataset sample

| AccountID | automl\_feature | SHAP\_value |
| --- | --- | --- |
| aa16889 | AdditionalFeatureSpend | 1.76830971241 |
| aa16889 | Churned | -0.58154511451721 |
| aa16889 | CurrentPeriodUsage | -1.106874704361 |
| aa16889 | HasRenewed | -0.36080026626587 |
| aa16889 | NumberOfPenalties | 3.6597540378571 |
| aa33396 | AdditionalFeatureSpend | 0.80359643697739 |
| aa33396 | Churned | -0.64805734157562 |
| aa33396 | CurrentPeriodUsage | 0.076582334935665 |
| aa33396 | HasRenewed | 0.38967734575272 |
| aa33396 | NumberOfPenalties | -0.31007811427116 |

## 解譯 SHAP 預測值

與實驗訓練期間顯示的 SHAP 重要性圖表中的值不同，SHAP 資料集包含具有方向性的列層級 SHAP 計算。換言之，這不是絕對值，而可以是正值或負值。在應用程式中視覺化值時，您可以根據使用情況，選擇彙總為絕對值。

應就記錄的對應預測值分析該記錄的 SHAP 值。根據模型類型 (二元分類、多類別分類或迴歸)，應以稍微不同的方式解譯 SHAP 值的方向性。

### 分類模型

藉由二元分類模型，大的正 SHAP 值表示對兩個可能結果之一有較大的影響，而大的負值表示對其他結果有較大的影響。在應用程式中使用資料時，SHAP 值的方向性可能不允許進行您需要的分析。為了解決此情況，您可以反轉 SHAP 值的方向 (例如，將整個欄乘以 -1)。如需更多關於 SHAP 方向檢查的資訊，請參閱 [準備](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/shap-values.htm#Preparat)。

來自多類別模型的 SHAP 資料集有不同的結構。對於每個要預測的記錄，這包括每個可能分類的獨立列，以及該分類的對應 SHAP 值。會在「Predicted\_class」欄指定分類。

在座標 SHAP 資料集，以下列方式解譯來自多類別模型預測的 SHAP 值：

* 大的正 SHAP 值表示該特徵對成為指定「Predicted\_class」的結果有較大的影響。

* 大的負 SHAP 值表示該特徵對不是指定「Predicted\_class」的結果有較大的影響。

#### 範例

下列範例呈現二元和多類別分類模型輸出之間資料集結構的差異。

假設我們從每個帳戶 ID 包含一列的套用資料集開始。訓練模型時所根據的每個特徵以獨立的欄呈現。

單一帳戶 ID 記錄如下所示：

Single record from a dataset on which predictions will be generated

| AccountID | AdditionalFeatureSpend | BaseFee | CurrentPeriodUsage | HasRenewed | NumberOfPenalties |
| --- | --- | --- | --- | --- | --- |
| aa16889 | 18 | 33.52 | 210.1 | yes | 4 |

若我們訓練二元分類模型，以預測 Churned 欄位的結果，將會有兩個可能的結果：「是」或「否」。根據上述的單一帳戶 ID 記錄，此記錄的座標 SHAP 資料集如下所示：

Sample from coordinate SHAP dataset for binary classification model prediction

| AccountID | automl\_feature | SHAP\_value |
| --- | --- | --- |
| aa16889 | AdditionalFeatureSpend | -0.049129267835076 |
| aa16889 | BaseFee | -1.5363064624041 |
| aa16889 | CurrentPeriodUsage | 0.10787960191299 |
| aa16889 | HasRenewed | 1.2441783315923 |
| aa16889 | NumberOfPenalties | 2.3803616183224 |

上表中，會顯示單一帳戶 ID 的 SHAP 值，並透過特徵分解。會為每個特徵建立新的列，而每個特徵是指派的 SHAP 值。必須就兩種可能的結果評估這些 SHAP 值的方向和重要性。理想上，SHAP 值越高，特徵對於正面解譯結果 (在此案例中，即「是」) 的影響就越大。若呈現出相反的狀況，您可以反轉 SHAP 值的方向 (乘以 -1)，以便更輕鬆地解譯分析。

為了進行比較，先假設我們訓練了多類別分類模型，以預測類別 PlanType 欄位 (具有四種可能的結果：「Blue Plan」、「Green Plan」、「Purple Plan」和「Red Plan」)。根據第一個表格中的單一帳戶 ID 記錄，此記錄的座標 SHAP 資料集如下所示：

Sample from coordinate SHAP dataset for multiclass classification model prediction

| AccountID | automl\_feature | Predicted\_class | SHAP\_value |
| --- | --- | --- | --- |
| aa16889 | AdditionalFeatureSpend | Blue Plan | 0.004155414339679 |
| aa16889 | AdditionalFeatureSpend | Green Plan | 0.0066376343942741 |
| aa16889 | AdditionalFeatureSpend | Purple Plan | -0.014411468558894 |
| aa16889 | AdditionalFeatureSpend | Red Plan | 0.003618419824941 |
| aa16889 | BaseFee | Blue Plan | 0.089301017079318 |
| aa16889 | BaseFee | Green Plan | 0.28876498452748 |
| aa16889 | BaseFee | Purple Plan | 0.055689421438434 |
| aa16889 | BaseFee | Red Plan | -0.43375542304524 |
| aa16889 | CurrentPeriodUsage | Blue Plan | -0.0040098954629816 |
| aa16889 | CurrentPeriodUsage | Green Plan | -0.27902537442842 |
| aa16889 | CurrentPeriodUsage | Purple Plan | -0.21871561841248 |
| aa16889 | CurrentPeriodUsage | Red Plan | 0.50175088830388 |
| aa16889 | HasRenewed | Blue Plan | -0.011878031228962 |
| aa16889 | HasRenewed | Green Plan | 0.036835618725654 |
| aa16889 | HasRenewed | Purple Plan | 0.13798314881109 |
| aa16889 | HasRenewed | Red Plan | -0.16294073630778 |
| aa16889 | NumberOfPenalties | Blue Plan | 0.20519095034486 |
| aa16889 | NumberOfPenalties | Green Plan | 0.0015682625647107 |
| aa16889 | NumberOfPenalties | Purple Plan | -0.084355421853302 |
| aa16889 | NumberOfPenalties | Red Plan | -0.12240379105627 |

在上表中，單一帳戶 ID 以 20 個獨立的列呈現：一列用於每個特徵，一列用於對應至目標中每個可能結果的 SHAP 值。Predicted\_class 欄代表要預測的可能結果 (分類)，不必是顯示在預測資料集中的實際預測結果。最終，具有最高 SHAP 值的分類會成為記錄的預測值。

此表的 SHAP 值是指定特徵 (automl\_feature) 對於可能是指定分類 (Predicted\_class) 之結果的影響力衡量。大的正值表示特徵強烈影響了成為指定分類的預測結果，而大的負值表示特徵強烈影響了不是指定分類的預測結果。

### 迴歸模型

在從迴歸模型產生的 SHAP 資料集中，SHAP 值的方向更容易解譯。

* SHAP 正值對應至列的預測值增加。

* SHAP 負值對應至列的預測值減少。

## SHAP 值計算

會為各種演算法計算 SHAP 值。將使用兩個相異的方法來計算 SHAP 重要性：

* 樹狀 SHAP：快速且確切的方法，用來預估樹狀模型的 SHAP 值

* 線性 SHAP：用來運算線性模型 SHAP 值的方法

依模型類型和 SHAP 計算方法的可用演算法

| 演算法 | 支援的模型類型 | SHAP 計算方法 |
| --- | --- | --- |
| 隨機樹系分類 | 二進位分類、多類別分類 | 樹狀 SHAP |
| XGBoost 分類 | 二進位分類、多類別分類 | 樹狀 SHAP |
| LightGBM 分類 | 二進位分類、多類別分類 | 樹狀 SHAP |
| CatBoost 分類 | 二進位分類、多類別分類 | 樹狀 SHAP |
| 邏輯迴歸 | 二進位分類、多類別分類 | 線性 SHAP |
| 套索迴歸 | 二進位分類、多類別分類 | 線性 SHAP |
| 彈性網迴歸 | 二進位分類、多類別分類 | 線性 SHAP |
| 高斯貝氏機率分類 | 二進位分類、多類別分類 | SHAP 未計算 |
| CatBoost 迴歸 | 迴歸 | 樹狀 SHAP |
| LightGBM 迴歸 | 迴歸 | 樹狀 SHAP |
| 線性迴歸 | 迴歸 | 線性 SHAP |
| 隨機樹系迴歸 | 迴歸 | 樹狀 SHAP |
| SGD 迴歸 | 迴歸 | 線性 SHAP |
| XGBoost 迴歸 | 迴歸 | 樹狀 SHAP |