在預測期間產生 SHAP 資料集
可以在執行預測時產生 SHAP 重要性資料集。您可以在這些資料集使用 SHAP 計算,以理解哪些特徵對於預測的值是最重要的貢獻者。
SHAP 資料集包含列層級 SHAP 計算,適用於用來訓練模型的特徵。考慮到該列的所有其他特徵,這些值代表每個特徵對目標預測值的貢獻程度。
例如,SHAP 重要性可以告知我們,特徵是否讓客戶更可能或更不可能流失,以及對於該結果的影響程度。
若您已執行預測並產生資料集,可以將 SHAP 值載入到 Qlik Sense 應用程式中,並連同預測的值進行視覺化。如需其他詳細資訊,請參閱 在 Qlik Sense 應用程式中視覺化 SHAP 值 和 在實際應用程式中使用 SHAP 值
此說明主題著重於 ML 部署預測期間的 SHAP 資料集產生。如需關於實驗訓練期間顯示的 SHAP 重要性圖表的資訊,請參閱 理解實驗訓練中的 SHAP 重要性。
產生 SHAP 資料集的可用選項
設定預測時,您可以選擇以兩種不同的格式產生 SHAP 資料集。兩種選項皆提供相同的資訊,但以不同的方式結構化。
SHAP
此資料集對每個特徵將 SHAP 值分為一個欄。此選項無法用於多類別分類模型。
座標 SHAP
此資料集結構化所有 SHAP 值,僅包含在「特徵」欄和「值」欄這兩欄內。此選項可用於所有模型類型。
相較於來自二元模型的資料集,來自多類別模型的資料集運作方式稍有不同。對於每個要預測的記錄,會為每個可用來讓模型預測的可能分類,透過 SHAP 值產生新的列。在資料集中,也會建立附加欄,以識別 SHAP 值代表的分類。
將預測和 SHAP 值載入到 Qlik Sense 應用程式並建立資料模型時,座標 SHAP 資料集比 SHAP 資料集更容易運作。
範例
下表包含來自 SHAP 和座標 SHAP 資料集的範例,這從根據五個特徵訓練的迴歸模型產生。範例包含來自套用資料集的兩個記錄的 SHAP 值 (對應至兩個帳戶 ID)。
這些範例醒目提示資料結構化方式之間的差異。
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 |
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 方向檢查的資訊,請參閱 準備。
來自多類別模型的 SHAP 資料集有不同的結構。對於每個要預測的記錄,這包括每個可能分類的獨立列,以及該分類的對應 SHAP 值。會在「Predicted_class」欄指定分類。
在座標 SHAP 資料集,以下列方式解譯來自多類別模型預測的 SHAP 值:
大的正 SHAP 值表示該特徵對成為指定「Predicted_class」的結果有較大的影響。
大的負 SHAP 值表示該特徵對不是指定「Predicted_class」的結果有較大的影響。
範例
下列範例呈現二元和多類別分類模型輸出之間資料集結構的差異。
假設我們從每個帳戶 ID 包含一列的套用資料集開始。訓練模型時所根據的每個特徵以獨立的欄呈現。
單一帳戶 ID 記錄如下所示:
AccountID | AdditionalFeatureSpend | BaseFee | CurrentPeriodUsage | HasRenewed | NumberOfPenalties |
---|---|---|---|---|---|
aa16889 | 18 | 33.52 | 210.1 | yes | 4 |
若我們訓練二元分類模型,以預測 Churned 欄位的結果,將會有兩個可能的結果:「是」或「否」。根據上述的單一帳戶 ID 記錄,此記錄的座標 SHAP 資料集如下所示:
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 資料集如下所示:
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 importance 使用兩個相異的方法來計算:
樹狀 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 |