分析結果 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

分析結果

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和兩個類L1L2,在標題中為F1_L1F2_L1F1_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 處理任務推斷的功能類型。文字特徵的有效值包含 numericalcategorical、和 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的值。

針對前四個功能的目標變數計算全域SHAP值的水平長條圖。

電腦視覺 (CV) 可解譯性分析

SageMaker 釐清電腦視覺可解釋性會取得包含映像的資料集,並將每個映像視為超像素集合。分析後, SageMaker Clarify 處理任務會輸出影像資料集,其中每個影像都會顯示超像素的熱圖。

下列範例顯示左側的輸入速限符號,而熱圖顯示右側的SHAP值大小。這些SHAP值是由經過訓練的圖像辨識 Resnet-18 模型計算,以辨識德國流量符號 。德國交通號誌辨識基準 (GTSRB) 資料集提供於紙本人工與電腦:為交通號誌辨識的機器學習演算法建立基準。在範例輸出中,較大的正值表示超像素與模型預測具有很強的正相互關聯。較大的負值表示超像素與模型預測具有很強的負相互關聯。熱圖中顯示SHAP的值的絕對值越大,超級像素與模型預測之間的關係就越強。

速限符號的輸入影像,以及來自 Resnet-18 模型SHAP的值所產生的熱圖。

如需詳細資訊,請參閱使用 SageMaker Clarify 說明影像分類的範例筆記本,以及使用 Amazon SageMaker Clarify 說明物件偵測模型

部分相依性圖表 (PDPs) 分析

部分相依性繪圖說明預測目標回應對一組感興趣的輸入功能之相依性。與所有其他輸入功能的值相比,這些值會被邊界化,稱為補碼功能。直覺上,您可以將部分依賴性解譯為目標回應,該回應作為感興趣的每個輸入功能的函式。

分析檔案的結構描述

這些PDP值會儲存在 pdp方法下的分析檔案explanations區段中。explanations參數的設定方式如下:

  • explanations – 包含功能重要性分析結果的分析檔案區段。

    • pdp – 分析檔案的區段,其中包含單一執行個體的一系列PDP說明。陣列的每個元素都有下列項目:

      • feature_nameheaders 組態所提供之功能標題名稱。

      • data_type – SageMaker Clarify 處理任務推斷的功能類型。data_type的有效值包含數值和分類。

      • feature_values – 包含功能中存在的值。如果 SageMaker Clarify 推data_type斷的 是分類的,則 feature_values會包含功能可能的所有唯一值。如果 SageMaker Clarify data_type 推斷的 是數值,則 會feature_values包含所產生儲存貯體的中央值清單。grid_resolution參數決定用於群組功能資料欄值的儲存貯體數。

      • data_distribution – 百分比陣列,其中每個值都是儲存貯體所包含執行個體的百分比。grid_resolution參數決定儲存貯體數。功能欄值會分組到這些儲存貯體中。

      • model_predictions – 模型預測的陣列,其中陣列的每個元素是對應到模型輸出中一個類別的預測陣列。

        label_headers – 由label_headers組態提供的標籤標題。

      • 錯誤 – 如果因特定原因而未計算PDP值,則會產生錯誤訊息。此錯誤訊息會取代包含於feature_valuesdata_distributionsmodel_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確定。功能值的儲存貯體會根據模型預測繪製。在此範例中,較高的功能值具有相同的模型預測值。

折線圖說明模型預測與10單一網格點feature_values之間的散度。

非對稱 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]}, ] }

對於 timewisefine-grained使用案例,結果會以JSON行 (.jsonl) 格式儲存。