本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
分析結果
SageMaker Clarify 處理任務完成後,您可以下載輸出檔案進行檢查,也可以在 SageMaker Studio Classic 中視覺化結果。下列主題說明 SageMaker Clarify 產生的分析結果,例如偏差分析、SHAP分析、電腦視覺可解釋性分析和部分相依性圖表 (PDPs) 分析所產生的結構描述和報告。如果組態分析包含用於運算多個分析的參數,則結果會彙總為一個分析和一個報告檔案。
SageMaker Clarify 處理任務輸出目錄包含下列檔案:
-
analysis.json
– 包含偏差指標和JSON格式特徵重要性的檔案。 -
report.ipynb
— 包含程式碼的靜態筆記本,可協助您視覺化偏差指標和功能重要性。 -
explanations_shap/out.csv
— 建立並包含根據您的特定分析組態自動產生檔案的目錄。例如,如果您啟用save_local_shap_values
參數,則每個執行個體的本機SHAP值都會儲存至explanations_shap
目錄。另一個範例是,如果您analysis configuration
的 不包含SHAP基準參數的值, SageMaker Clarify 可解釋性任務會透過叢集輸入資料集來計算基準。然後,它會將產生的基準儲存到目錄中。
如需更多詳細資訊,請參閱下列各節。
偏差分析
Amazon SageMaker Clarify 使用 中記錄的術語Amazon SageMaker Clarify 偏見和公平條款來討論偏差和公平性。
分析檔案的結構描述
分析檔案為 JSON 格式,並分為兩個部分:訓練前偏差指標和訓練後偏差指標。訓練前和訓練後偏差指標的參數如下。
-
pre_training_bias_metrics – 訓練前偏差指標的參數。如需更多資訊,請參閱訓練前偏差指標及分析組態檔案。
-
label – 由分析組態的
label
參數定義的 Ground Truth 標籤名稱。 -
label_value_or_threshold – 包含由分析組態參數定義的標籤值或間隔的字串。
label_values_or_threshold
例如,如果值1
是為二進位分類問題提供的,那麼字串將為1
。如果為多類問題提供了多值[1,2]
,那麼該字串將是1,2
。如果提供了一個閾值40
用於回歸問題,那麼該字串將是像(40, 68]
的內部,其中68
是在輸入資料集中標籤的最大值。 -
構面 – 區段包含數個鍵值對,其中鍵對應到構面組態參數
name_or_index
所定義的構面名稱,而該值為構面物件的陣列。每個構面物件具有下列項目:-
value_or_threshold – 包含構面組態
value_or_threshold
參數所定義的構面值或間隔字串。 -
metrics – 區段包含一系列偏差指標元素,每個偏差指標元素都具有以下屬性:
-
name – 偏差測量結果的簡短名稱。例如:
CI
。 -
description – 偏差指標的完整名稱。例如:
Class Imbalance (CI)
。 -
值 – 偏差指標值,如果偏差指標因特定原因而未計算,則為 JSON Null 值。值 ±∞ 表示為字串
∞
和-∞
分別。 -
error – 選擇性錯誤訊息,說明未運算偏差指標的原因。
-
-
-
-
post_training_bias_metrics – 此區段包含訓練後偏差指標量,並遵循與訓練前部分類似的配置和結構。如需更多資訊,請參閱訓練後資料和模型偏差指標。
以下是分析組態的範例,可運算訓練前和訓練後偏差指標。
{ "version": "1.0", "pre_training_bias_metrics": { "label": "Target", "label_value_or_threshold": "1", "facets": { "Gender": [{ "value_or_threshold": "0", "metrics": [ { "name": "CDDL", "description": "Conditional Demographic Disparity in Labels (CDDL)", "value": -0.06 }, { "name": "CI", "description": "Class Imbalance (CI)", "value": 0.6 }, ... ] }] } }, "post_training_bias_metrics": { "label": "Target", "label_value_or_threshold": "1", "facets": { "Gender": [{ "value_or_threshold": "0", "metrics": [ { "name": "AD", "description": "Accuracy Difference (AD)", "value": -0.13 }, { "name": "CDDPL", "description": "Conditional Demographic Disparity in Predicted Labels (CDDPL)", "value": 0.04 }, ... ] }] } } }
偏差分析報告
偏差分析報告包含數個包含詳細說明和描述的表格和圖表。其中包含但不限於標籤值的分布、構面值的分布、高階模型效能圖表、偏差指標表及其描述。如需有關偏差指標以及如何解譯偏差指標的詳細資訊,請參閱了解 Amazon SageMaker Clarify 如何協助偵測偏差
SHAP 分析
SageMaker 釐清處理任務使用核心SHAP演算法來計算特徵屬性。 SageMaker Clarify 處理任務會產生本機和全域SHAP值。這有助於確定每個功能對模型預測的貢獻。本機SHAP值代表每個個別執行個體的功能重要性,而全域SHAP值會彙總資料集中所有執行個體的本機SHAP值。如需有關值以及如何解譯這些SHAP值的詳細資訊,請參閱 使用塑形值的特徵屬性。
SHAP 分析檔案的結構描述
全域SHAP分析結果會儲存在分析檔案的說明區段中的方法下kernel_shap
。SHAP 分析檔案的不同參數如下所示:
-
explanations – 包含功能重要性分析結果的分析檔案區段。
-
kernal_shap – 包含全域分析結果的SHAP分析檔案區段。
-
global_shap_values – 分析檔案的一個區段,其中包含數個鍵值對。鍵值組中的每個鍵都代表輸入資料集中的功能名稱。鍵值對中的每個值對應於特徵的全域SHAP值。全域SHAP值是透過使用
agg_method
組態彙總功能的每個執行個體SHAP值來取得。如果啟動use_logit
組態,則會使用邏輯迴歸係數來運算該值,該係數可解譯為對數-賠率比率。 -
expected_value – 基準資料集的平均預測。如果啟動
use_logit
組態,則使用邏輯迴歸係數運算該值。 -
global_top_shap_text – 用於可NLP解釋性分析。分析檔案的一部分,其中包含一組鍵值對。 SageMaker Clarify 處理任務會彙總每個權杖SHAP的值,然後根據其全域SHAP值選取最熱門的權杖。
max_top_tokens
組態定義了要選取的權杖的數量。每個選定的常用權杖都有一個鍵值組。鍵值組中的鍵對應到常用權杖的文字功能名稱。金鑰值對中的每個值都是最熱門權杖的全域SHAP值。如需
global_top_shap_text
鍵值對的範例,請參閱下列輸出。
-
-
下列範例顯示表格式資料集SHAP分析的輸出。
{ "version": "1.0", "explanations": { "kernel_shap": { "Target": { "global_shap_values": { "Age": 0.022486410860333206, "Gender": 0.007381025261958729, "Income": 0.006843906804137847, "Occupation": 0.006843906804137847, ... }, "expected_value": 0.508233428001 } } } }
下列範例顯示來自文字資料集SHAP分析的輸出。與欄Comments
對應的輸出是在文字功能分析之後產生的輸出範例。
{ "version": "1.0", "explanations": { "kernel_shap": { "Target": { "global_shap_values": { "Rating": 0.022486410860333206, "Comments": 0.058612104851485144, ... }, "expected_value": 0.46700941970297033, "global_top_shap_text": { "charming": 0.04127962903247833, "brilliant": 0.02450240786522321, "enjoyable": 0.024093569652715457, ... } } } } }
產生的基準檔案的結構描述
未提供SHAP基準組態時, SageMaker Clarify 處理任務會產生基準資料集。 SageMaker Clarify 使用以距離為基礎的叢集演算法,從輸入資料集建立的叢集產生基準資料集。產生的基準資料集會儲存在位於 的 CSV檔案中explanations_shap/baseline.csv
。此輸出檔案包含標題列和數個以分析組態中指定的num_clusters
參數為基礎的執行個體。基準資料集僅由功能欄組成。下列範例顯示透過叢集輸入資料集建立的基準。
Age,Gender,Income,Occupation 35,0,2883,1 40,1,6178,2 42,0,4621,0
表格式資料集可解釋性分析的本機SHAP值結構描述
對於表格式資料集,如果使用單一運算執行個體, SageMaker Clarify 處理任務會將本機SHAP值儲存至名為 CSV的檔案explanations_shap/out.csv
。如果您使用多個運算執行個體,本機SHAP值會儲存至explanations_shap
目錄中的數個CSV檔案。
包含本機SHAP值的輸出檔案具有一列,其中包含由標頭定義的每個資料欄的本機SHAP值。標題遵循功能名稱後面加底線後跟目標變數的名稱的Feature_Label
命名慣例。
對於多類別問題,標題中的功能名稱會先變更,然後是標籤。例如,兩個功能F1, F2
和兩個類L1
和L2
,在標題中為F1_L1
、F2_L1
、F1_L2
、和F2_L2
。如果分析組態包含joinsource_name_or_index
參數的值,則連接中使用的鍵欄會附加到標題名稱的末尾。這允許將本機SHAP值映射到輸入資料集的執行個體。包含SHAP值的輸出檔案範例如下。
Age_Target,Gender_Target,Income_Target,Occupation_Target 0.003937908,0.001388849,0.00242389,0.00274234 -0.0052784,0.017144491,0.004480645,-0.017144491 ...
可NLP解釋性分析的本機SHAP值結構描述
針對可NLP解釋性分析,如果使用單一運算執行個體, SageMaker Clarify 處理任務會將本機SHAP值儲存至名為 的JSON行檔案explanations_shap/out.jsonl
。如果您使用多個運算執行個體,本機SHAP值會儲存至explanations_shap
目錄中的數個JSON行檔案。
每個包含本機SHAP值的檔案都有數行資料,而且每行都是有效的JSON物件。JSON 物件具有下列屬性:
-
說明 – 包含單一執行個體核心SHAP說明陣列的分析檔案區段。陣列中的每個元素都具有下列項目:
-
feature_name – 由標題組態提供的功能標題名稱。
-
data_type – SageMaker Clarify 處理任務推斷的功能類型。文字特徵的有效值包含
numerical
、categorical
、和free_text
(對於文字特徵)。 -
attributions – 功能特定的歸因物件陣列。文字功能可以有多個歸因多重屬性物件,每個屬性物件用於
granularity
組態所定義的單位。屬性物件具有下列項目:-
attribution – 類別特定的機率值陣列。
-
description – (針對文字特徵) 文字單位的描述。
-
partial_text – SageMaker Clarify 處理任務說明的文字部分。
-
start_idx – 從零開始的索引,用來識別指出部分文字片段開始的陣列位置。
-
-
-
以下是來自本機SHAP值檔案的單行範例,為了增強其可讀性而美化。
{ "explanations": [ { "feature_name": "Rating", "data_type": "categorical", "attributions": [ { "attribution": [0.00342270632248735] } ] }, { "feature_name": "Comments", "data_type": "free_text", "attributions": [ { "attribution": [0.005260534499999983], "description": { "partial_text": "It's", "start_idx": 0 } }, { "attribution": [0.00424190349999996], "description": { "partial_text": "a", "start_idx": 5 } }, { "attribution": [0.010247314500000014], "description": { "partial_text": "good", "start_idx": 6 } }, { "attribution": [0.006148907500000005], "description": { "partial_text": "product", "start_idx": 10 } } ] } ] }
SHAP 分析報告
SHAP 分析報告提供最多 個10
最高全域SHAP值的長條圖。下列圖表範例顯示主要4
功能SHAP的值。
電腦視覺 (CV) 可解譯性分析
SageMaker 釐清電腦視覺可解釋性會取得包含映像的資料集,並將每個映像視為超像素集合。分析後, SageMaker Clarify 處理任務會輸出影像資料集,其中每個影像都會顯示超像素的熱圖。
下列範例顯示左側的輸入速限符號,而熱圖顯示右側的SHAP值大小。這些SHAP值是由經過訓練的圖像辨識 Resnet-18 模型計算,以辨識德國流量符號
如需詳細資訊,請參閱使用 SageMaker Clarify 說明影像分類的範例筆記本,
部分相依性圖表 (PDPs) 分析
部分相依性繪圖說明預測目標回應對一組感興趣的輸入功能之相依性。與所有其他輸入功能的值相比,這些值會被邊界化,稱為補碼功能。直覺上,您可以將部分依賴性解譯為目標回應,該回應作為感興趣的每個輸入功能的函式。
分析檔案的結構描述
這些PDP值會儲存在 pdp
方法下的分析檔案explanations
區段中。explanations
參數的設定方式如下:
-
explanations – 包含功能重要性分析結果的分析檔案區段。
-
pdp – 分析檔案的區段,其中包含單一執行個體的一系列PDP說明。陣列的每個元素都有下列項目:
-
feature_name –
headers
組態所提供之功能標題名稱。 -
data_type – SageMaker Clarify 處理任務推斷的功能類型。
data_type
的有效值包含數值和分類。 -
feature_values – 包含功能中存在的值。如果 SageMaker Clarify 推
data_type
斷的 是分類的,則feature_values
會包含功能可能的所有唯一值。如果 SageMaker Clarifydata_type
推斷的 是數值,則 會feature_values
包含所產生儲存貯體的中央值清單。grid_resolution
參數決定用於群組功能資料欄值的儲存貯體數。 -
data_distribution – 百分比陣列,其中每個值都是儲存貯體所包含執行個體的百分比。
grid_resolution
參數決定儲存貯體數。功能欄值會分組到這些儲存貯體中。 -
model_predictions – 模型預測的陣列,其中陣列的每個元素是對應到模型輸出中一個類別的預測陣列。
label_headers – 由
label_headers
組態提供的標籤標題。 -
錯誤 – 如果因特定原因而未計算PDP值,則會產生錯誤訊息。此錯誤訊息會取代包含於
feature_values
、data_distributions
和model_predictions
欄位中的內容。
-
-
以下是來自包含分析結果之PDP分析檔案的範例輸出。
{ "version": "1.0", "explanations": { "pdp": [ { "feature_name": "Income", "data_type": "numerical", "feature_values": [1046.9, 2454.7, 3862.5, 5270.2, 6678.0, 8085.9, 9493.6, 10901.5, 12309.3, 13717.1], "data_distribution": [0.32, 0.27, 0.17, 0.1, 0.045, 0.05, 0.01, 0.015, 0.01, 0.01], "model_predictions": [[0.69, 0.82, 0.82, 0.77, 0.77, 0.46, 0.46, 0.45, 0.41, 0.41]], "label_headers": ["Target"] }, ... ] } }
PDP 分析報告
您可以產生分析報告,其中包含每個功能的PDP圖表。PDP 圖表feature_values
會沿著 x 軸繪製,並model_predictions
沿著 y 軸繪製。對於多類模型,model_predictions
是一個陣列,並且該陣列的每個元素對應到模型預測類中之一。
以下是 功能 的PDP圖表範例Age
。在範例輸出中, PDP會顯示分組到儲存貯體的功能值數目。儲存貯體數由grid_resolution
確定。功能值的儲存貯體會根據模型預測繪製。在此範例中,較高的功能值具有相同的模型預測值。
非對稱 Shapley 值
SageMaker 釐清處理任務使用非對稱 Shapley 值演算法來計算時間序列預測模型解釋屬性。此演算法會決定輸入功能在每個步驟對預測的貢獻。
非對稱 Shapley 值分析檔案的結構描述
非對稱 Shapley 值結果會儲存在 Amazon S3 儲存貯體中。您可以在分析檔案的區段說明中找到此儲存貯體的位置。本節包含特徵重要性分析結果。下列參數包含在非對稱 Shapley 值分析檔案中。
asymmetric_shapley_value — 分析檔案的區段,其中包含說明任務結果的中繼資料,包括下列項目:
explanation_results_path — 具有解釋結果的 Amazon S3 位置
方向 — 使用者提供的組態值
direction
精細度 — 使用者提供的組態值
granularity
下列程式碼片段顯示範例分析檔案中先前提到的參數:
{ "version": "1.0", "explanations": { "asymmetric_shapley_value": { "explanation_results_path": EXPLANATION_RESULTS_S3_URI, "direction": "chronological", "granularity": "timewise", } } }
下列各節說明解釋結果結構如何取決於組態granularity
中的 值。
時間精細度
當精細度為 時timewise
,輸出會以下列結構表示。此scores
值代表每個時間戳記的屬性。此offset
值代表模型在基準資料上的預測,並描述模型未接收資料時的行為。
下列程式碼片段顯示模型的範例輸出,可預測兩個時間步驟。因此,所有屬性都是兩個元素的清單,其中第一個項目代表第一個預測的時間步驟。
{ "item_id": "item1", "offset": [1.0, 1.2], "explanations": [ {"timestamp": "2019-09-11 00:00:00", "scores": [0.11, 0.1]}, {"timestamp": "2019-09-12 00:00:00", "scores": [0.34, 0.2]}, {"timestamp": "2019-09-13 00:00:00", "scores": [0.45, 0.3]}, ] } { "item_id": "item2", "offset": [1.0, 1.2], "explanations": [ {"timestamp": "2019-09-11 00:00:00", "scores": [0.51, 0.35]}, {"timestamp": "2019-09-12 00:00:00", "scores": [0.14, 0.22]}, {"timestamp": "2019-09-13 00:00:00", "scores": [0.46, 0.31]}, ] }
精細精細度
下列範例示範精細度為 時的屬性結果fine_grained
。該offset
值具有與上一節中所述相同的意義。如果可用,則會針對目標時間序列和相關時間序列的每個時間戳記,以及每個靜態共變數,計算每個輸入特徵的屬性。
{ "item_id": "item1", "offset": [1.0, 1.2], "explanations": [ {"feature_name": "tts_feature_name_1", "timestamp": "2019-09-11 00:00:00", "scores": [0.11, 0.11]}, {"feature_name": "tts_feature_name_1", "timestamp": "2019-09-12 00:00:00", "scores": [0.34, 0.43]}, {"feature_name": "tts_feature_name_2", "timestamp": "2019-09-11 00:00:00", "scores": [0.15, 0.51]}, {"feature_name": "tts_feature_name_2", "timestamp": "2019-09-12 00:00:00", "scores": [0.81, 0.18]}, {"feature_name": "rts_feature_name_1", "timestamp": "2019-09-11 00:00:00", "scores": [0.01, 0.10]}, {"feature_name": "rts_feature_name_1", "timestamp": "2019-09-12 00:00:00", "scores": [0.14, 0.41]}, {"feature_name": "rts_feature_name_1", "timestamp": "2019-09-13 00:00:00", "scores": [0.95, 0.59]}, {"feature_name": "rts_feature_name_1", "timestamp": "2019-09-14 00:00:00", "scores": [0.95, 0.59]}, {"feature_name": "rts_feature_name_2", "timestamp": "2019-09-11 00:00:00", "scores": [0.65, 0.56]}, {"feature_name": "rts_feature_name_2", "timestamp": "2019-09-12 00:00:00", "scores": [0.43, 0.34]}, {"feature_name": "rts_feature_name_2", "timestamp": "2019-09-13 00:00:00", "scores": [0.16, 0.61]}, {"feature_name": "rts_feature_name_2", "timestamp": "2019-09-14 00:00:00", "scores": [0.95, 0.59]}, {"feature_name": "static_covariate_1", "scores": [0.6, 0.1]}, {"feature_name": "static_covariate_2", "scores": [0.1, 0.3]}, ] }
對於 timewise
和 fine-grained
使用案例,結果會以JSON行 (.jsonl) 格式儲存。