跳到主要內容 跳至補充內容

在預測期間產生 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)。

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

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
AccountIDautoml_featureSHAP_value
aa16889AdditionalFeatureSpend1.76830971241
aa16889Churned-0.58154511451721
aa16889CurrentPeriodUsage-1.106874704361
aa16889HasRenewed-0.36080026626587
aa16889NumberOfPenalties3.6597540378571
aa33396AdditionalFeatureSpend0.80359643697739
aa33396Churned-0.64805734157562
aa33396CurrentPeriodUsage0.076582334935665
aa33396HasRenewed0.38967734575272
aa33396NumberOfPenalties-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 記錄如下所示:

Single record from a dataset on which predictions will be generated
AccountIDAdditionalFeatureSpendBaseFeeCurrentPeriodUsageHasRenewedNumberOfPenalties
aa1688918 33.52210.1yes4

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

Sample from coordinate SHAP dataset for binary classification model prediction
AccountIDautoml_featureSHAP_value
aa16889AdditionalFeatureSpend-0.049129267835076
aa16889BaseFee-1.5363064624041
aa16889CurrentPeriodUsage0.10787960191299
aa16889HasRenewed1.2441783315923
aa16889NumberOfPenalties2.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
AccountIDautoml_featurePredicted_classSHAP_value
aa16889AdditionalFeatureSpendBlue Plan0.004155414339679
aa16889AdditionalFeatureSpendGreen Plan0.0066376343942741
aa16889AdditionalFeatureSpendPurple Plan-0.014411468558894
aa16889AdditionalFeatureSpendRed Plan0.003618419824941
aa16889BaseFeeBlue Plan0.089301017079318
aa16889BaseFeeGreen Plan0.28876498452748
aa16889BaseFeePurple Plan0.055689421438434
aa16889BaseFeeRed Plan-0.43375542304524
aa16889CurrentPeriodUsageBlue Plan-0.0040098954629816
aa16889CurrentPeriodUsageGreen Plan-0.27902537442842
aa16889CurrentPeriodUsagePurple Plan-0.21871561841248
aa16889CurrentPeriodUsageRed Plan0.50175088830388
aa16889HasRenewedBlue Plan-0.011878031228962
aa16889HasRenewedGreen Plan0.036835618725654
aa16889HasRenewedPurple Plan0.13798314881109
aa16889HasRenewedRed Plan-0.16294073630778
aa16889NumberOfPenaltiesBlue Plan0.20519095034486
aa16889NumberOfPenaltiesGreen Plan0.0015682625647107
aa16889NumberOfPenaltiesPurple Plan-0.084355421853302
aa16889NumberOfPenaltiesRed 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 計算方法
隨機樹系分類 二進位分類、多類別分類樹狀 SHAP
XGBoost 分類二進位分類、多類別分類樹狀 SHAP
LightGBM 分類二進位分類、多類別分類樹狀 SHAP
CatBoost 分類二進位分類、多類別分類樹狀 SHAP
邏輯迴歸二進位分類、多類別分類線性 SHAP
套索迴歸二進位分類、多類別分類線性 SHAP
彈性網迴歸二進位分類、多類別分類線性 SHAP
高斯貝氏機率分類二進位分類、多類別分類SHAP 未計算
CatBoost 迴歸迴歸樹狀 SHAP
LightGBM 迴歸迴歸樹狀 SHAP
線性迴歸迴歸線性 SHAP
隨機樹系迴歸迴歸樹狀 SHAP
SGD 迴歸迴歸線性 SHAP
XGBoost 迴歸迴歸樹狀 SHAP

瞭解更多資訊

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!