本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定分析
若要使用 SageMaker 澄清來分析資料和模型的解釋性和偏見,您必須設定處理工作。此處理工作的一部分組態包括分析檔案的組態。分析檔案會指定偏差分析和可解釋性的參數。請參設定 SageMaker 澄清處理 Job閱以瞭解如何設定處理工作和分析檔案。
本指南說明此分析組態檔案的結構描述和參數。本指南還包括用於計算表格數據集偏差指標的分析配置文件的示例,並生成自然語言處理(NLP),計算機視覺(CV)和時間序列(TS)問題的解釋。
您可以建立分析配置檔案,或使SDK用 SageMaker Python
分析組態檔案的結構描述
下節說明分析組態檔案的結構描述,包括參數的需求和描述。
分析組態檔案的需求
「 SageMaker 澄清」處理工作預期分析組態檔案的結構需符合下列需求:
-
處理輸入名稱必須是
analysis_config.
-
分析組態檔案為JSON格式,並以 UTF -8 編碼。
-
分析組態檔案是 Amazon S3 物件。
您可以在分析組態檔案中指定其他參數。下節提供各種選項,可針對您的使用案例和所需的分析類型量身訂做「 SageMaker 澄清」處理工作。
在分析組態檔案中,您可以指定下列參數。
-
version — (選用) 分析組態檔案結構描述的版本字串。如果未提供版本,則 Clear 會 SageMaker 使用最新的受支援版本。目前,唯一支援的版本是
1.0
。 -
dataset_type — 資料集的格式。輸入資料集格式可以是下列任何值:
表格式
-
適用於 CSV 的
text/csv
-
application/jsonlines
對於SageMaker JSON線密集格式 -
適用於 JSON 的
application/json
-
application/x-parquet
適用於 Apache Parquet -
application/x-image
以啟動電腦視覺問題的可解釋性
-
時間序列預測模型說明
適用於 JSON 的
application/json
-
dataset_uri —(可選)主數據集的統一資源標識符(URI)。如果您提供 S3 URI 前置詞,則「 SageMaker 澄清」處理工作會以遞迴方式收集位於前置詞下的所有 S3 檔案。您可以為電腦視覺問題的映像資訊清單檔案提供 S3 URI URI 前置詞或 S3。如果已提供
dataset_uri
,這會優先於處理工作輸入的資料集。對於影像和時間序列使用案例以外的任何格式類型,「 SageMaker 澄清」處理工作會將輸入資料集以表格式資料集形式載入到表格式資料框中。這種格式 SageMaker 允許輕鬆地操作和分析輸入數據集。 -
頭-(可選)
表格式:包含表格資料集之資料欄名稱的字串陣列。如果未提供值
headers
,則 Cleven 處 SageMaker 理工作會從資料集讀取標頭。如果資料集沒有標題,則 Cleven 處理工作會根據從零開始的資料行索引自動產生預留位置名稱。例如,第一欄和第二欄的預留位置名稱會是column_0
column_1
、等等。注意
按照慣例,如果
dataset_type
是application/jsonlines
或application/json
,則headers
應按順序包含以下名稱:特徵名稱
標籤名稱 (如果
label
已指定)預測的標示名稱 (如果
predicted_label
已指定)
如果已指定
label
,application/jsonlines
資料集類型的headers
範例為:["feature1","feature2","feature3","target_label"]
。時間序列:資料集中的資料欄名稱清單。如果沒有提供,澄清會產生要在內部使用的標頭。對於時間序列可解釋的情況,請按以下順序提供標題:
項目識別碼
timestamp
目標時間序列
所有相關的時間序列欄
所有靜態共變列
-
label — (選用) 字串或從零開始的整數索引。如果提供,
label
用於定位 Ground Truth 標籤,也稱為表格式資料集中的觀察標籤或目標屬性。Ground Truth 標籤用於計算偏差指標。label
的值是根據dataset_type
參數的值指定,如下所示。-
如果
dataset_type
是text/csv
,則label
可以指定為下列任一項:-
有效的欄位名稱
-
介於資料集欄位範圍內的索引
-
-
如果
dataset_type
是application/parquet
,則label
必須是有效的欄位名稱。 -
如果
dataset_type
是application/jsonlines
,則label
必須是寫入的JMESPath表達式,以從數據集中提取地面真值標籤。按照慣例,如果指定 headers
,則其應包含標籤名稱。 -
如果
dataset_type
是application/json
,則label
必須是寫入的JMESPath表達式,以提取數據集中每個記錄的地面真值標籤。此JMESPath表示式必須產生標籤清單,其中第 i 個標籤與第 i 個記錄相關。
-
-
predicted_label — (選用) 字串或從零開始的整數索引。如果提供,
predicted_label
用於在表格式資料集中定位包含預測標籤的欄位。預測標籤用於計算訓練後的偏差指標。如果資料集不包含預測標籤,則參數predicted_label
為選用。如果計算需要預測的標籤,則「 SageMaker 澄清」處理工作將從模型取得預測。predicted_label
的值是根據dataset_type
的值指定,如下所示:-
如果
dataset_type
是text/csv
,則predicted_label
可以指定為下列任一項:-
有效的欄位名稱。如果已指定
predicted_label_dataset_uri
但未提供predicted_label
,則預設的預測標籤名稱為 “predicted_label”。 -
介於資料集欄位範圍內的索引。如果已指定
predicted_label_dataset_uri
,則索引將用於在預測標籤資料集中定位預測標籤欄位。
-
-
如果 dataset_type 是
application/x-parquet
,則predicted_label
必須是有效的欄位名稱。 -
如果 dataset_type 是
application/jsonlines
,則predicted_label
必須是寫入從資料集擷取預測標籤的有效JMESPath運算式。按照慣例,如果指定 headers
,則其應包含預測標籤名稱。 -
如果
dataset_type
是application/json
,則predicted_label
必須是寫入的JMESPath運算式,以擷取資料集中每個記錄的預測標籤。JMESPath表示式應產生預測的標籤清單,其中第 i 個預測的標籤是第 i 個記錄。
-
-
功能 — (選用) 如果
dataset_type
是application/jsonlines
或,則 non-time-series 使用案例為必要條件application/json
。寫入來尋找輸入資料集中特徵的JMESPath字串運算式。對於application/jsonlines
,將對每一行套用一個JMESPath表示式,以萃取該記錄的圖徵。對於application/json
,JMESPath運算式會套用至整個輸入資料集。JMESPath運算式應擷取清單清單,或是 2D 陣列/矩陣的特徵,其中第 i 列包含與第 i 個記錄相關的特徵。對於text/csv
或application/x-parquet
的dataset_type
,除了 Ground Truth 標籤和預測標籤欄以外的所有欄都會自動指定為功能。 -
預測資料集-(選擇性) 僅適用於資料集類型為。
text/csv
資料集URI的 S3,其中包含用於計算訓練後偏差指標的預測標籤。「 SageMaker 澄清」處理工作會從提供的載入預測,URI而不是從模型中取得預測。在此情況下,predicted_label
需要在預測標籤資料集中找到預測標籤欄位。如果預測標籤資料集或主資料集分割為多個檔案,則joinsource_name_or_index
必須指定識別碼欄位以加入這兩個資料集。 -
預測標籤-(可選)僅在指定時適用。
predicted_label_dataset_uri
包含預測標籤資料集的欄位名稱的字串陣列。除了預測標籤標題,predicted_label_headers
也可以包含標識符欄位的標題以加入預測標籤資料集和主資料集。如需詳細資訊,請參閱參數joinsource_name_or_index
的以下描述。 -
joinsource_name_or_index-(可選)表格數據集中的列的名稱或從零開始的索引,以在執行內部聯結時用作標識符列。此欄僅用作識別碼。不用於任何其他計算,如偏差分析或功能屬性分析。在下列情況下,需要
joinsource_name_or_index
的值:-
有多個輸入資料集,而且有任何一個被分成多個檔案。
-
透過將「 SageMaker 澄清」處理工作設定為大於的值InstanceCount來啟動分散式處理
1
。
-
-
excluded_columns —(選用) 要排除不傳送至模型做為預測輸入的名稱陣列或從零開始的欄位索引。Ground Truth 標籤和預測標籤已自動排除。時間序列不支援此功能。
-
probability_threshold — (選用) 浮點數,在此浮點數上選取一個標籤或物件。預設值為
0.5
。「 SageMaker 澄清」處理工作會probability_threshold
在下列情況中使用:-
在訓練後偏差分析中,如果模型是二進位分類器,
probability_threshold
會將數值模型預測 (機率值或分數) 轉換為二進位標籤。大於閾值的分數會轉換為1
。而小於或等於閾值的分數會轉換為0
。 -
在電腦視覺可解釋性問題中,如果 model_type 是
OBJECT_DETECTION
,, probability_threshold
會篩選掉可信度分數低於閾值的偵測到物件。
-
-
標籤值或臨界值 — (選擇性) 偏差分析時必須使用。標籤值或閾值數的陣列,表示偏差指標的 Ground Truth 和預測標籤的正面結果。若要取得更多資訊,請參閱中的正標籤值Amazon SageMaker 澄清偏見和公平的條款。如果標籤是數值,會將閾值套用為下限以選取正面結果。若要針對不同的問題類型設定
label_values_or_threshold
,請參閱下列範例:-
對於二進位分類問題,標籤有兩個可能的值
0
和1
。如果標籤值1
對樣本中觀察的人口統計群組有利,則label_values_or_threshold
應設定為[1]
。 -
對於多類別分類問題,標籤有三個可能的值
bird
、cat
和dog
。如果後兩項定義偏差有利的人口統計群組,則label_values_or_threshold
應設定為["cat","dog"]
。 -
對於迴歸問題,標籤值是連續的,範圍從
0
到1
。如果大於0.5
的值應將樣本指定為具有正面結果,則label_values_or_threshold
應設定為0.5
。
-
-
facet — (選用) 偏差分析是必要的。facet 物件的陣列,由用以測量偏差的敏感屬性組成。您可以使用 facet 來瞭解資料集和模型的偏差特性,即使未使用敏感屬性來訓練模型也可以。如需詳細資訊,請參閱中Amazon SageMaker 澄清偏見和公平的條款的刻面。每個 facet 物件包含以下欄位:
-
name_or_index — (選擇性) 表格資料集中敏感屬性資料行的名稱或從零開始的索引。如果指定
facet_dataset_uri
,則索引會參考 facet 資料集,而不是主資料集。 -
value_or_threshold — (選擇性) 如果
facet
是數字且套用label_values_or_threshold
為下界以選取敏感群組,則為必要)。facet 值或閾值數陣列,表示偏差有利的敏感人口統計群組。如果 facet 資料類型為分類而且未提供value_or_threshold
,偏差指標會將每個唯一值 (而非所有值) 計算為一個群組。若要針對不同的facet
資料類型設定value_or_threshold
,請參閱下列範例:-
對於二進位 facet 資料類型,功能有兩個可能的值
0
和1
。如果要計算每個值的偏差指標,則value_or_threshold
可以省略或設定為空陣列。 -
對於分類 facet 資料類型,功能有三個可能的值
bird
、cat
和dog
。如果前兩項定義偏差有利的人口統計群組,則value_or_threshold
應設定為["bird", "cat"]
。在此範例中,資料集範例會分割為兩個人口統計群組。有利群組中的 facet 有值bird
或cat
,而不利群組中的 facet 有值dog
。 -
對於數值 facet 資料類型,功能值是連續的,範圍從
0
到1
。例如,如果大於0.5
的值應將樣本指定為有利,則value_or_threshold
應設定為0.5
。在此範例中,資料集範例會分割為兩個人口統計群組。有利群組中的 facet 有大於0.5
的值 ,而不利群組中的 facet 有小於或等於0.5
的值。
-
-
-
group_variable — (選擇性) 資料欄的名稱或索引,指出要用於偏差測量結果或之子群組的資料欄索引。條件人口差距 () CDD 預測標籤中的條件人口統計差異 () CDDPL
-
數據集-(可選)僅在數據集類型為時適用。
text/csv
S3 URI 為包含偏差分析敏感屬性的資料集。您可以使用 facet 來瞭解資料集和模型的偏差特性,即使未使用敏感屬性來訓練模型也可以。注意
如果 facet 資料集或主資料集分割為多個檔案,則
joinsource_name_or_index
必須指定識別符欄位以加入這兩個資料集。您必須使用參數facet
來識別 facet 資料集中的每個 facet。 -
FACET_header — (選擇性) 僅在已指定時
facet_dataset_uri
適用。字串陣列,其中包含 Facet 資料集的資料行名稱,以及用來加入 Facet 資料集和主資料集的識別碼資料欄標頭,請參閱。joinsource_name_or_index
-
時間序列資料處理 — (選擇性) 指定用於處理時間序列之資料的組態。
item_id — 字串或從零開始的整數索引。此欄位是用來尋找共用輸入資料集中的項目 ID。
timestamp — 字串或從零開始的整數索引。此欄位是用來尋找共用輸入資料集中的時間戳記。
資料集格式 — 可能的值為
columns
、item_records
或。timestamp_records
此欄位用來描述JSON資料集的格式,這是唯一支援時間序列解釋的格式。目標時間系列 — JMESPath 字串或從零開始的整數索引。此欄位是用來尋找共用輸入資料集中的目標時間序列。如果這個參數是一個字符串,那麼除了所有其他參數
dataset_format
必須是字符串或字符串列表。如果這個參數是一個整數,那麼除了所有其他參數都dataset_format
必須是整數或整數列表。相關 _ 時間系列-(可選)表達式的數組。JMESPath此欄位是用來尋找共用輸入資料集中所有相關的時間序列 (如果存在)。
靜態協變數 — (選擇性) 運算式陣列。JMESPath此欄位可用來尋找共用輸入資料集中的所有靜態共變數欄位 (如果有的話)。
如需範例,請參閱 時間序列資料集設定範例。
-
methods — 包含一或多個分析方法及其參數的物件。如果省略任何方法,則不會用於分析和報告。
-
pre_training_bias — 如果您想要計算訓練前偏差指標,請包含此方法。您可以在中找到指標的詳細說明衡量訓練前偏差。物件具有下列參數:
-
methods — 包含您要計算的下列清單中任何訓練前偏差指標的陣列。設定
methods
為all
以計算所有訓練前偏差指標。例如,陣列["CI", "DPL"]
將計算類別不平衡和標籤的比例差異。-
適用於 類別不平衡 (CI) 的
CI
-
適用於 標籤比例差異 (DPL) 的
DPL
-
適用於 Kullback-Leibler 散度 (KL) 的
KL
-
適用於 Jensen-Shannon 偏差 (JS) 的
JS
-
適用於 L p-規範 (LP) 的
LP
-
適用於 總變化距離 (TVD) 的
TVD
-
適用於 柯爾莫哥洛夫-斯米爾諾夫 (KS) 的
KS
-
適用於 條件人口差距 () CDD 的
CDDL
-
-
-
post_training_bias — 如果您想要計算訓練後偏差指標,請包含此方法。您可以在中找到指標的詳細說明測量訓練後資料和模型偏差。
post_training_bias
物件具有下列參數。-
methods — 包含您要計算的下列清單中任何訓練後偏差指標的陣列。設定
methods
為all
以計算所有訓練後偏差指標。例如,陣列["DPPL", "DI"]
會計算預測標籤中的正面比例差異和不同影響。可用的方法如下所示。-
適用於 預測標籤中正比例的差異 (DPPL) 的
DPPL
-
DI
對於 差別影響 (DI) -
適用於 條件接受的差異(DCAcc) 的
DCA
-
適用於 條件拒絕的差異(DCR) 的
DCR
-
適用於 特異性差異 (SD) 的
SD
-
適用於 召回差異 (RD) 的
RD
-
適用於 接受率差異 (DAR) 的
DAR
-
適用於 拒絕率差異 (DRR) 的
DRR
-
適用於 準確度差異 (AD) 的
AD
-
適用於 處理方式平等 (TE) 的
TE
-
適用於 預測標籤中的條件人口統計差異 () CDDPL 的
CDDPL
-
適用於 反事實翻轉測試 (FT) 的
FT
-
適用於 廣義熵 (GE) 的
GE
-
-
-
shap-如果要計算SHAP值,請包括此方法。 SageMaker 澄清處理工作支援核心SHAP演算法。
shap
物件具有下列參數。-
baseline — (選用) SHAP 基準資料集,也稱為背景資料集。表格式資料集或電腦視覺問題中的基準資料集的其他需求如下。如需SHAP基準線的詳細資訊,請參閱 SHAP解釋性的基準線
-
對於表格式資料集,
baseline
可以是基準檔案URI的就地基準資料或 S3。如果未baseline
提供,則 Cleven 處 SageMaker 理工作會透過叢集輸入資料集來計算基準線。以下是基準的必要條件:-
格式必須與
dataset_type
指定的資料集格式相同。 -
基準只能包含模型可以接受為輸入的功能。
-
基準資料集可以有一或多個執行個體。基準執行個體的數目會直接影響綜合資料集大小和工作執行期。
-
如果指定
text_config
,則文字欄的基準值是用來取代granularity
指定的文字單位的字串。例如,一個常見的預留位置是「[MASK]」,用來表示遺失或未知的單字或一段文字。
下面的範例顯示如何為不同的
dataset_type
參數設定就地基準資料:-
如果
dataset_type
是text/csv
或application/x-parquet
,則模型會接受四個數值特徵,且基準有兩個執行個體。在此範例中,如果一筆記錄有所有零特徵值,而另一筆記錄有所有一特徵值,則應將基準設定為[[0,0,0,0],[1,1,1,1]]
,不包含任何標題。 -
如果
dataset_type
是application/jsonlines
,features
為四個數值特徵值清單的金鑰。此外,在這個範例中,如果基準有一筆具所有零值的記錄,則baseline
應該是[{"features":[0,0,0,0]}]
。 -
如果
dataset_type
是application/json
,baseline
資料集應具有與輸入資料集相同的結構和格式。
-
-
對於電腦視覺問題,
baseline
可以是用來遮罩輸入影像中的特徵 (區段) 的影像 S3 URI。「 SageMaker 澄清」處理工作會載入遮色片影像,並將其調整為與輸入影像相同的解析度。如果未提供基線,則「 SageMaker 澄清」處理工作會以與輸入影像相同的解析度產生白色雜訊的遮色片影像。
-
-
features_to_explain — (選擇性) 要計算值的字串陣列或從零開始的功能資料行索引。SHAP如果
features_to_explain
未提供,則會計算所有特徵欄的SHAP值。這些功能欄位不能包括標籤欄位或預測標籤欄位。只有具有數值和分類欄位的表格式資料集才支援features_to_explain
參數。 -
num_clusters — (選用) 資料集所分割成的叢集數以計算基準資料集。每個叢集都用來計算一個基準執行個體。如果
baseline
未指定,則「 SageMaker 澄清」處理工作會嘗試將表格式資料集劃分為1
和之間的最佳叢集數目來計算基準資料集12
。基準執行個體的數目會直接影響SHAP分析的執行階段。 -
num_ sample — (選擇性) 核心SHAP演算法中要使用的樣本數目。如果
num_samples
未提供,則「 SageMaker 澄清」處理工作會為您選擇編號。樣本數會直接影響綜合資料集大小和工作執行期。 -
seed — (選用) 整數,用於初始化SHAP說明器中的偽隨機數產生器,以產生相同工作的一致SHAP值。如果未指定種子,則每次執行相同工作時,模型可能會輸出略有不同的SHAP值。
-
use_logit – (選用) 布林值,指出您要將 logit 函式套用至模型預測。預設為
false
。如果use_logit
是true
,則使用邏輯迴歸係數來計算這些SHAP值,該係數可解譯為對數賠率比。 -
save_local_shap_values — (選用) 布林值,指出您要將資料集中每個記錄的本機SHAP值包含在分析結果中。預設為
false
。如果主資料集分割為多個檔案或已啟動分散式處理,也可以使用參數
joinsource_name_or_index
來指定識別碼欄位。識別碼欄和局部SHAP值會儲存在分析結果中。這樣,您可以將每個記錄映射到其本地SHAP值。 -
agg_method — (選擇性) 用來將所有執行個體的本機SHAP值 (每個執行個體的SHAP值) 彙總至全域SHAP值 (整個資料集的SHAP值) 的方法。預設為
mean_abs
。下列方法可用於彙總SHAP值。-
mean_abs — 所有執行個體的絕對本機SHAP值的平均值。
-
mean_sq — 所有執行個體的平方本機SHAP值的平均值。
-
中值 — 所有例證的局部SHAP值的中位數。
-
-
文本配置-自然語言處理解釋所需的。如果您要將文字欄視為文字,請包含此組態,並針對個別文字單位提供解釋。如需自然語言處理可解釋性的分析組態範例,請參閱 自然語言處理解釋性的分析組態
-
粒度—分析文字欄的粒度單位。有效值為
token
、sentence
或paragraph
。文字的每個單位都被視為一個特徵,並針對每個單位計算局部SHAP值。 -
語言—文字欄的語言。有效值為
chinese
、danish
、dutch
、english
、french
、german
、greek
、italian
、japanese
、lithuanian
、multi-language
、norwegian bokmål
、polish
、portuguese
、romanian
、russian
、spanish
、afrikaans
、albanian
、arabic
、armenian
、basque
、bengali
、bulgarian
、catalan
、croatian
、czech
、estonian
、finnish
、gujarati
、hebrew
、hindi
、hungarian
、icelandic
、indonesian
、irish
、kannada
、kyrgyz
、latvian
、ligurian
、luxembourgish
、macedonian
、malayalam
、marathi
、nepali
、persian
、sanskrit
、serbian
、setswana
、sinhala
、slovak
、slovenian
、swedish
、tagalog
、tamil
、tatar
、telugu
、thai
、turkish
、ukrainian
、urdu
、vietnamese
、yoruba
。輸入multi-language
以混合多種語言。 -
max_top_token — (選擇性) 根據全域值的頂端記號數目上限。SHAP預設為
50
。符記可能在資料集中多次出現。Cle SageMaker ven 處理工作會彙總每個權杖的SHAP值,然後根據其全域SHAP值選取頂端記號。所選頂端記號的全域SHAP值會包含在分析 .json 檔案的global_top_shap_text
區段中。 -
彙總的區域SHAP值。
-
-
image_config—電腦視覺解釋性需要。如果您有由映像組成的輸入資料集,並且想要在電腦視覺問題中分析這些資料集以解釋這些資料集,請包含此組態。
-
model_type—模型的類型。有效值包含:
-
調校映像分類模型的
IMAGE_CLASSIFICATION
。 -
調校物件偵測模型的
OBJECT_DETECTION
。
-
-
max_objects — 僅當 model_type 為時才適用
OBJECT_DETECTION
。由電腦視覺模型偵測到的最大物件數 (依可信度分數排序)。任何依可信度分數排名低於頂部 max_objects 的物件都會被篩選掉。預設為3
。 -
context—僅當模型類型為時適用。
OBJECT_DETECTION
它指示偵測到的物件邊界方框周圍區域是否被基線映像遮罩。有效值是0
遮罩所有內容,或者1
什麼都不遮罩。預設值為 1。 -
iou_threshold — 僅適用於
model_type
此情況OBJECT_DETECTION
。用於評估針對原始偵測的預測與 union (IOU) 量度的最小交集。高度IOU量對應於預測和地面真值檢測框之間的大重疊。預設為0.5
。 -
num_segments ー (選擇性) 一個整數,用於決定要在輸入映像中標示的近似區段數。影像的每個區段都被視為一個特徵,並針對每個區段計算局部SHAP值。預設為
20
。 -
segment_compactness — (選擇性) 整數,用於決定由 scikit-image slic
方法所產生之映像區段的形狀和大小。預設為 5
。
-
-
-
pdp-包括此方法來計算部分依賴圖()PDPs。如需要產生的分析組態範例PDPs,請參閱 計算部分依賴繪圖 () PDPs
-
功能—如果未請求該
shap
方法,則為強制性。用於計算和PDP繪圖的特徵名稱或索引陣列。 -
top_k_ feature — (選擇性) 指定用於產生繪圖的頂部特徵數目。PDP如果
features
未提供,但要求該shap
方法,則「 SageMaker 澄清」處理工作會根據其SHAP屬性選擇頂部圖徵。預設為10
。 -
grid_resolution—要將數值範圍分割成的儲存貯體數目。這會指定PDP繪圖的格線粒度。
-
-
不對稱狀況 _shapley_value — 如果您想要計算時間序列預測模型的無法解釋指標,請包含此方法。「 SageMaker 澄清」處理工作支援非對稱的沙普利值演算法。不對稱沙普利值是沙普利值的一種變體,它會降低對稱公理。如需詳細資訊,請參閱不對稱 Shapley 值:將因果知識納入模型
無關的解釋能力。使用這些值來決定功能對預測結果的貢獻方式。非對稱 Shapley 值會考慮預測模型作為輸入的時間序列資料的暫時相依性。 該算法包括以下參數:
方向 — 可用類型有
chronological
anti_chronological
、和bidirectional
。時間結構可以按時間順序或反時間順序進行導航,或兩者兼而有之。按時間順序排列的說明是透過從第一次步驟開始反覆加入資訊而建立的。反時間順序說明會新增從最後一個步驟開始向後移動的資訊。在存在時近偏差的情況下,後者的順序可能更合適,例如用於預測股票價格。粒度 — 要使用的說明粒度。可用的粒度選項如下所示:
時間明智的 —
timewise
解釋價格低廉,只提供有關特定時間步驟的信息,例如弄清楚過去的第 n 天的信息有多少促成了 future 第 m 天的預測。產生的屬性不會單獨解釋靜態協變數,也不會區分目標和相關時間序列。fine_ file —
fine_grained
解釋在計算上更加密集,但提供了輸入變量的所有屬性的完整細分。該方法計算近似解釋以減少運行時間。如需詳細資訊,請參閱下列參數num_samples
。注意
fine_grained
解釋只支持chronological
順序。
num_sample — (選擇性) 此引數是解釋的
fine_grained
必要引數。數字越高,近似值越精確。此數字應與輸入特徵的維度一起縮放。經驗法則是將此變量設置為(1 + max(相關時間序列的數量,靜態共變數的數量))^ 2,如果結果不是太大。baseline — (選擇性) 用來取代對應資料集 (也稱為背景資料) out-of-coalition 值的基準配置。下面的代碼片段顯示了基準配置的示例:
{ "related_time_series": "zero", "static_covariates": {
<item_id_1>
: [0, 2],<item_id_2>
: [-1, 1] }, "target_time_series": "zero" }對於暫時資料 (例如目標時間序列或相關時間序列),基準線值類型可以是下列其中一個值:
zero
— out-of-coalition 將所有值取代為 0.0。mean
— 所有 out-of-coalition 值都會取代為時間序列的平均值。
對於靜態協變數,只有在模型要求取得靜態共變數值時才應提供基準線項目,在此情況下,此欄位為必要欄位。應以清單形式為每個項目提供基準線。例如,如果您有一個具有兩個靜態協變數的資料集,則基準配置可能如下所示:
"static_covariates": {
<item_id_1>
: [1, 1],<item_id_2>
: [0, 1] }在前面的例子中,
<item_id_1>
以及<item_id_2>
是資料集中的項目 ID。
-
report — (選用) 使用此物件可自訂分析報告。時間序列說明工作不支援此參數。分析結果中有三份相同報告副本:Jupyter 筆記本報表、報告和HTMLPDF報告。此物件具有下列參數:
-
name—報表檔案的檔案名稱。例如,如果
name
是MyReport
,則報告檔案為MyReport.ipynb
MyReport.html
、和MyReport.pdf
。預設為report
。 -
title — (選用) 報表的標題字串。預設為
SageMaker Analysis Report
。
-
-
-
predictor—如果分析需要來自模型的預測,則需要此選項。例如,當要求
shap
、asymmetric_shapley_value
pdp
、或post_training_bias
方法時,不會提供預測的標籤做為輸入資料集的一部分。以下是要搭配使用的參數predictor
:-
模型名稱-由建立的 SageMaker 模型名稱。CreateModelAPI如果您指定
model_name
而不是 endpoint_name,則「 SageMaker 澄清」處理工作會以模型名稱 (稱為陰影端點) 建立暫時端點,並從端點取得預測結果。運算完成後,任務會刪除陰影端點。如果模型是多模型,則必須指定target_model
參數。若要取得有關多模型端點的更多資訊,請參閱在單一端點後方的單一容器託管多個模型。 -
endpoint_name_prefix — (選擇性) 陰影端點的自訂名稱字首。如果您提供
model_name
而不是endpoint_name
,則是用。例如,如果要透過端點名稱限制端點存取,則提供endpoint_name_prefix
。前綴必須與EndpointName模式匹配,並且其最大長度為23
。預設為sm-clarify
。 -
initial_instance_count—指定陰影端點的執行個體數目。如果您提供 model_name 而不是 endpoint_name,則需要此選項。的值
initial_instance_count
可以與工作不同,但我們建議使用 1:1 的比例。InstanceCount -
instance_type—指定陰影端點的執行個體類型。如果您提供
model_name
而不是endpoint_name
,則需要此選項。作為一個範例,instance_type
可以設定為 “ml.m5.large”。在某些情況下,instance_type
的指定值有助於減少模型推論時間。例如,若要有效執行,自然語言處理模型和電腦視覺模型通常需要圖形處理單元 (GPU) 執行個體類型。 -
accelerator_type — (選擇性) 指定要附加至陰影端點的 Elastic Inference (EI) 加速器類型。如果您為
accelerator_type
提供model_name
,而不是endpoint_name
,則適用。accelerator_type
範例值為ml.eia2.large
。預設為不使用加速器。 -
端點名稱 — 由建立的 SageMaker 端點名稱。CreateEndpointAPI如果提供,
endpoint_name
優先於model_name
參數。使用現有端點減少陰影端點啟動程序的時間,但也可能導致該端點的負載大幅增加。此外,某些分析方法 (例如shap
和pdp
) 會產生傳送至端點的合成資料集。這可能會導致端點的指標或擷取的資料被合成資料污染,這可能無法準確反映真實世界的使用情況。由於這些原因,通常不建議使用現有的生產端點進行 SageMaker 澄清分析。 -
目標模型 — 傳遞給的 TargetModel 參數的字串值。 SageMaker InvokeEndpointAPI如果您的模型 (由 model_name 參數指定) 或端點 (由 endpoint_name 參數指定) 為多模型,則需要此選項。若要取得有關多模型端點的更多資訊,請參閱在單一端點後方的單一容器託管多個模型。
-
custom_attributes — (選用) 字串可讓您提供有關提交至端點之推論請求的其他資訊。字串值會傳遞至的
CustomAttributes
參數 SageMaker InvokeEndpointAPI。 -
content_type—用於從端點取得預測的模型輸入格式。如果有提供,則會將其傳遞至的
ContentType
參數 SageMaker InvokeEndpointAPI。-
對於電腦視覺解釋性,有效值為
image/jpeg
、image/png
或application/x-npy
。如content_type
未提供,則預設值為image/jpeg
。 對於時間序列預測的解釋性,有效值為
application/json
。-
對於其他類型的解釋性,有效值為
text/csv
、application/jsonlines,
和application/json
。如果content_type
是,則需要的dataset_type
值application/x-parquet
。否則content_type
預設值為dataset_type
參數。
-
-
accept_type—用於從端點取得預測的模型輸出格式。的值
accept_type
會傳遞至的Accept
參數 SageMaker InvokeEndpointAPI。-
對於計算機視覺解釋性,如果
model_type
是「OBJECT_DETECTION」,則accept_type
默認為application/json
。 對於時間序列預測的解釋性,有效值為
application/json
。-
對於其他類型的解釋性,有效值為
text/csv
、application/jsonlines
和application/json
。如果accept_type
的值未提供,則accept_type
預設為content_type
參數的值。
-
-
content_template—用於從資料集記錄建構模型輸入的範本字串。只有在
content_type
參數值為application/jsonlines
或application/json
時,才會使用且需要content_template
參數。當
content_type
參數為時application/jsonlines
,範本應該只有一個預留位置$features
,在執行期會由功能清單取代。例如,如果樣板為"{\"myfeatures\":$features}"
,且記錄具有三個數值圖徵值:2
和1
3
,則記錄將作為 JSON Line 傳送至模型{"myfeatures":[1,2,3]}
。如果
content_type
是application/json
,範本則可以有預留位置$record
或records
。如果預留位置為record
,則會將單一記錄取代為已套用record_template
的範本記錄。在此情況下,一次只會將單一記錄傳送至模型。如果預留位置為$records
,則記錄會由記錄清單取代,每筆記錄都有提供的範本record_template
。 -
record_template—一個範本字串,用於從資料集執行個體建構模型輸入的每個記錄。它僅在
content_type
是application/json
時使用和需要。範本字串可能包含下列其中一項:-
由功能值陣列取代的預留位置
$features
參數。其他可選預留位置可以取代$feature_names
中的功能欄標題名稱。此可選的預留位置將替換為功能名稱的陣列。 -
只有一個預留位置
$features_kvp
,由鍵值對、功能名稱和功能值取代。 -
headers
模型組態中的一個功能。例如,由預留位置語法"${A}"
註記的功能名稱A
,將由A
的功能值取代。
record_template
的值用於content_template
建構模型輸入。以下有一個顯示如何使用內容和記錄範本構建模型輸入的組態範例。在下列程式碼範例中,標題和功能定義如下。
-
`headers`:["A", "B"]
-
`features`:[[0,1], [3,4]]
範例模型輸入如下。
{ "instances": [[0, 1], [3, 4]], "feature_names": ["A", "B"] }
以下是用來建構先前的範例模型輸入的範例
content_template
和record_template
參數值。-
content_template: "{\"instances\": $records, \"feature_names\": $feature_names}"
-
record_template: "$features"
在下列程式碼範例中,標題和功能定義如下。
[ { "A": 0, "B": 1 }, { "A": 3, "B": 4 }, ]
以下是用來建構先前的範例模型輸入的範例
content_template
和record_template
參數值。-
content_template: "$records"
-
record_template: "$features_kvp"
以下是建構先前範例模型輸入的替代程式碼範例。
-
content_template: "$records"
-
record_template: "{\"A\": \"${A}\", \"B\": \"${B}\"}"
在下列程式碼範例中,標題和功能定義如下。
{ "A": 0, "B": 1 }
上面要構建的範例 content_template 和 record_template 參數值:先前的範例模型輸入如下。
-
content_template: "$record"
-
record_template: "$features_kvp"
如需更多範例,請參閱時間序列資料的端點要求。
-
-
label — (選用) 從零開始的整數索引或JMESPath運算式字串,用於從模型輸出擷取預測標籤以進行偏差分析。如果模型是多類別,且
label
參數從模型輸出中擷取所有預測標籤,則適用以下內容。時間序列不支援此功能。-
需要
probability
參數才能從模型輸出中獲取相應的機率 (或分數)。 -
選擇最高分的預測標籤。
label
的值取決於 accept_type 參數的值,如下所示。-
如果
accept_type
是text/csv
,則label
為模型輸出中任何預測標籤之索引。 -
如果
accept_type
是application/jsonlines
或application/json
,則label
是套用至模型輸出以取得預測標籤的JMESPath運算式。
-
-
label_headers — (選擇性) 標籤可以在資料集中使用的值陣列。如果請求偏差分析,則還需要該
probability
參數從模型輸出中獲取相應的機率值 (分數),並選擇最高分的預測標籤。如果請求解釋性分析,則使用標籤標題來美化分析報告。電腦視覺解釋性需要label_headers
的值。例如,對於多類別分類問題,如果標籤有三個可能的值bird
、cat
和dog
,則label_headers
應設定為["bird","cat","dog"]
。 -
概率 — (選用) 從零開始的整數索引或JMESPath運算式字串,用來擷取可能性 (分數) 以進行解釋性分析 (但不適用於時間序列可解釋性),或選擇用於偏差分析的預測標籤。
probability
的值取決於accept_type
參數的值,如下所示。-
如果
accept_type
是text/csv
,則probability
為模型輸出中機率 (分數) 的索引。如果probability
未提供,則會將整個模型輸出視為機率 (分數)。 -
如果
accept_type
是 JSON data(application/jsonlines
或application/json
),則probability
應該是用於從模型輸出中提取概率(分數)的JMESPath表達式。
-
-
預測器配置-(可選)僅用於時間序列的解釋性。用來指示 SageMaker 澄清處理器如何從URI中
dataset_uri
以 S3 形式傳遞的資料正確剖析資料。預測-用於提取預測結果的JMESPath表達式。
-
範例分析組態檔案
以下各節包含CSV格式、JSON線條格式、自然語言處理 (NLP)、電腦視覺 (CV) 和時間序列 (TS) 解釋資料的範例分析組態檔案。
下列範例說明如何以格式設定表CSV格式資料集的偏差和解釋性分析。在這些範例中,內送資料集具有四個功能資料欄,以及一個二進位標籤資料欄Target
。資料集的檔案內容如下。1
的標籤值表示正值結果。資料集是由處dataset
理輸入提供給 SageMaker 澄清工作。
"Target","Age","Gender","Income","Occupation" 0,25,0,2850,2 1,36,0,6585,0 1,22,1,1759,1 0,48,0,3446,1 ...
以下各節說明如何計算訓練前和訓練後偏差指標、SHAP值和部分相依性繪圖 (PDPs),以格式顯示資料集的功能重要性。CSV
運算所有訓練前偏差指標
此範例組態顯示如何測量先前的範例資料集是否偏向 Gender
值為 0
的範例。下列分析設定會指示「 SageMaker 澄清」處理工作計算資料集的所有預先訓練偏差指標。
{ "dataset_type": "text/csv", "label": "Target", "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" } } }
運算所有訓練後偏差指標
您可以在訓練前運算訓練前偏差指標。但是,您必須擁有訓練好的模型才能運算訓練後的偏差指標。下列範例輸出來自於以CSV格式輸出資料的二進位分類模型。在此範例輸出中,每一列都包含兩欄。首欄包含預測標籤,第二欄包含該標籤的機率值。
0,0.028986845165491 1,0.825382471084594 ...
下列組態範例會指示「 SageMaker 澄清」處理工作,使用資料集和模型輸出的預測來計算所有可能的偏差量度。在此範例中,模型會部署至 SageMaker 端點your_endpoint
。
注意
在下列範例程式碼中,未設定和參數 content_type
和 accept_type
。因此,它們會自動使用參數 dataset_type 的值,也就是 text/csv
。
{ "dataset_type": "
text/csv
", "label": "Target
", "label_values_or_threshold":[1]
, "facet": [ { "name_or_index": "Gender
", "value_or_threshold":[0]
} ], "methods": { "pre_training_bias": { "methods": "all
" }, "post_training_bias": { "methods": "all
" } }, "predictor": { "endpoint_name": "your_endpoint
", "label":0
} }
計算SHAP值
下列範例分析組態指示工作計算將欄指定為標籤,將所有其他欄指定為特徵的SHAP值。Target
{ "dataset_type": "
text/csv
", "label": "Target
", "methods": { "shap": { "num_clusters":1
} }, "predictor": { "endpoint_name": "your_endpoint
", "probability":1
} }
在此範例中,會省略SHAPbaseline
參數,且num_clusters
參數的值為1
。這會指示 SageMaker 澄清處理器計算一個SHAP基準樣本。在此範例中,機率設定為 1
。這會指示「 SageMaker 澄清」處理工作從模型輸出的第二欄擷取機率分數 (使用從零開始的索引)。
計算部分依賴繪圖 () PDPs
下列範例顯示如何使用檢視分析報告中Income
特徵的重要性PDPs。報表參數會指示「 SageMaker 澄清」處理工作產生報表。任務完成後,產生的報告會以 report.pdf 的形式儲存至 analysis_result
位置。grid_resolution
參數會將功能值的範圍劃分為 10
儲存貯體。在下列範例中指定的參數一起指示「 SageMaker 澄清」處理工作產生一個報表,其中包含 x 軸上Income
具有10
區段的PDP圖形。y 軸將顯示對 Income
預測的邊際影響。
{ "dataset_type": "text/csv", "label": "Target", "methods": { "pdp": { "features": ["
Income
"], "grid_resolution":10
}, "report": { "name": "report
" } }, "predictor": { "endpoint_name": "your_endpoint
", "probability":1
}, }
運算偏差指標和功能重要性
您可以將之前的組態範例中,所有方法合併為單一分析組態檔案,然後透過單一任務進行全部運算。下列範例顯示結合所有步驟的分析組態。
在此範例中,probability
參數設定為 1
,指出機率包含在第二欄中 (使用從零開始的索引)。但是,由於偏差分析需要預測標籤,因此 probability_threshold
參數設定為 0.5
,將機率分數轉換為二進位標籤。在此範例中,部分相依繪圖 pdp
方法的 top_k_features
參數設定為 2
。這會指示「 SageMaker 澄清」處理工作計算具有最大全域值之頂層圖2
徵的部分相依性繪圖 (PDPs)。SHAP
{ "dataset_type": "text/csv", "label": "
Target
", "probability_threshold":0.5
, "label_values_or_threshold": [1
], "facet": [ { "name_or_index": "Gender
", "value_or_threshold": [0
] } ], "methods": { "pre_training_bias": { "methods": "all
" }, "post_training_bias": { "methods": "all
" }, "shap": { "num_clusters":1
}, "pdp": { "top_k_features":2
, "grid_resolution":10
}, "report": { "name": "report
" } }, "predictor": { "endpoint_name": "your_endpoint
", "probability":1
} }
您可以使用model_name
參數將模型的名稱提供給 SageMaker 澄清處理工作,而不是將 SageMaker 模型部署到端點。下列範例示範如何指定名為 your_model
的模型。 SageMaker 澄清處理工作將使用組態建立陰影端點。
{ ... "predictor": { "model_name": "
your_model
", "initial_instance_count":1
, "instance_type": "ml.m5.large
", "probability":1
} }
下列範例說明如何設定 Lines 格式的表格資料集的偏差分析和解釋性JSON分析。在這些範例中,內送資料集具有與上一節相同的資料,但它們採用 L SageMaker JSON ines 密集格式。每一行都是有效的JSON物件。主要 “特徵” 指向特徵值的陣列,主要 “標籤” 指向 Ground Truth 標籤。該數據集由「數據集」處理輸入提供給 SageMaker 澄清工作。若要取得有關JSON線的更多資訊,請參閱JSONLINES請求格式。
{"Features":[25,0,2850,2],"Label":0} {"Features":[36,0,6585,0],"Label":1} {"Features":[22,1,1759,1],"Label":1} {"Features":[48,0,3446,1],"Label":0} ...
以下各節說明如何計算訓練前和訓練後偏差指標、SHAP值和部分相依性繪圖 (PDPs),以 Lines 格式顯示資料集的特徵重要性。JSON
運算訓練前的偏向指標
指定標籤、功能、格式和方法,以測量 Gender
值為0
的訓練前偏差指標。在下列範例中,headers
參數會先提供功能名稱。標籤名稱最後提供。按照慣例,最後一個標題是標籤標題。
features
參數設定為JMESPath表示式「功能」,以便 Cleven 處 SageMaker 理工作可以從每個記錄中萃取圖徵陣列。該label
參數設置為JMESPath表達式「標籤」,以便 SageMaker 澄清處理工作可以從每個記錄中提取地面真值標籤。使用面向名稱來指定敏感屬性,如下所示。
{ "dataset_type": "
application/jsonlines
", "headers": ["Age","Gender","Income","Occupation","Target"
], "label": "Label
", "features": "Features
", "label_values_or_threshold": [1
], "facet": [ { "name_or_index": "Gender
", "value_or_threshold": [0
] } ], "methods": { "pre_training_bias": { "methods": "all
" } } }
運算所有偏差指標
您必須擁有訓練好的模型,才能運算訓練後的偏差指標。下列範例來自二進位分類模型,該模型會以範例的格式輸出 L JSON ines 資料。模型輸出的每一行都是一個有效的JSON對象。鍵predicted_label
指向預測標籤,鍵probability
指向機率值。
{"predicted_label":0,"probability":0.028986845165491} {"predicted_label":1,"probability":0.825382471084594} ...
您可以將模型部署到名為的 SageMaker 端點your_endpoint
。下列範例分析設定會指示「 SageMaker 澄清」處理工作計算資料集和模型的所有可能偏差量度。在此範例中,參數 content_type
和 accept_type
未設定。因此,它們會自動設定為使用參數 dataset_type 的值,也就是 application/jsonlines
。「 SageMaker 澄清」處理工作使用content_template
參數來構成模型輸入,方法是以特徵陣列取代$features
預留位置。
{ "dataset_type": "
application/jsonlines
", "headers": ["Age","Gender","Income","Occupation","Target"
], "label": "Label
", "features": "Features
", "label_values_or_threshold": [1
], "facet": [ { "name_or_index": "Gender
", "value_or_threshold": [0
] } ], "methods": { "pre_training_bias": { "methods": "all
" }, "post_training_bias": { "methods": "all
" } }, "predictor": { "endpoint_name": "your_endpoint
", "content_template": "{\"Features\":$features
}", "label": "predicted_label
" } }
計算SHAP值
因為SHAP分析不需要地面真值標籤,所以會省略label
參數。在此範例中,也會省略 headers
參數。因此,「 SageMaker 澄清」處理工作必須使用一般名稱 (例如column_0
或column_1
特徵標頭) 以及label0
標籤標頭來產生預留位置。您可以指定 headers
和 a label
的值,以提高分析結果的可讀性。由於概率參數設置為JMESPath表達式probability
,概率值將從模型輸出中提取出來。以下是計算SHAP值的範例。
{ "dataset_type": "
application/jsonlines
", "features": "Features
", "methods": { "shap": { "num_clusters
": 1 } }, "predictor": { "endpoint_name": "your_endpoint
", "content_template": "{\"Features\":$features}
", "probability": "probability
" } }
計算部分依賴繪圖 () PDPs
下面的例子演示了如何查看「收入」上的重要性PDP。在此範例中,不會提供功能標題。因此,pdp
方法的 features
參數必須使用從零開始的索引來參考功能資料欄的位置。grid_resolution
參數會將功能值的範圍劃分為 10
儲存貯體。範例中的參數共同指示「 SageMaker 澄清」處理工作產生一個報表,其中包含 x 軸上含Income
有10
區段的PDP圖形。y 軸將顯示對 Income
預測的邊際影響。
{ "dataset_type": "
application/jsonlines
", "features": "Features
", "methods": { "pdp": { "features": [2
], "grid_resolution":10
}, "report": { "name": "report
" } }, "predictor": { "endpoint_name": "your_endpoint
", "content_template": "{\"Features\":$features}
", "probability": "probability
" } }
運算偏差指標和功能重要性
您可以將所有先前的方法合併為一個分析組態檔案,然後透過單一任務來運算它們。下列範例顯示結合所有步驟的分析組態。在此範例中,已設定 probability
參數。但是由於偏差分析需要預測標籤,因此 probability_threshold
參數被設定為 0.5
,將機率分數轉換為二進制標籤。在此範例中,pdp
方法的 top_k_features
參數設定為 2
。這會指示「 SageMaker 澄清」處理工作計算PDPs具有最大全域SHAP值的主要圖2
徵。
{ "dataset_type": "
application/jsonlines
", "headers": ["Age","Gender","Income","Occupation","Target"
], "label": "Label
", "features": "Features
", "probability_threshold":0.5
, "label_values_or_threshold": [1
], "facet": [ { "name_or_index": "Gender
", "value_or_threshold": [0
] } ], "methods": { "pre_training_bias": { "methods": "all
" }, "post_training_bias": { "methods": "all
" }, "shap": { "num_clusters":1
}, "pdp": { "top_k_features":2
, "grid_resolution":10
}, "report": { "name": "report
" } }, "predictor": { "endpoint_name": "your_endpoint
", "content_template": "{\"Features\":$features}
", "probability": "probability
" } }
下列範例說明如何以格式設定表JSON格式資料集的偏差和解釋性分析。在這些範例中,內送資料集具有與上一節相同的資料,但它們是 SageMaker JSON密集格式。若要取得有關JSON線的更多資訊,請參閱JSONLINES請求格式。
整個輸入請求是有效的,JSON其中外部結構是一個列表,每個元素是一個記錄的數據。在每個記錄中,關鍵 Features
指向功能值的陣列,並且關鍵 Label
指向 Ground Truth 標籤。資料集是由處dataset
理輸入提供給 SageMaker 澄清工作。
[ {"Features":[25,0,2850,2],"Label":0}, {"Features":[36,0,6585,0],"Label":1}, {"Features":[22,1,1759,1],"Label":1}, {"Features":[48,0,3446,1],"Label":0}, ... ]
以下各節說明如何計算訓練前和訓練後偏差量度量、SHAP值和部分依賴性繪圖 (PDPs),以 Lines 格式顯示資料集的特徵重要性。JSON
運算訓練前的偏向指標
指定標籤、功能、格式和方法,以測量 Gender
值為0
的訓練前偏差指標。在下列範例中,headers
參數會先提供功能名稱。標籤名稱最後提供。對於JSON數據集,最後一個標題是標籤頭。
features
參數設定為擷取 2D 陣列或矩陣的JMESPath運算式。此矩陣中的每一列都必須包含每筆記錄 Features
的清單。該label
參數設置為提取地面真值標籤列JMESPath表的表達式。此清單中的每個元素都必須包含記錄的標籤。
使用面向名稱來指定敏感屬性,如下所示。
{ "dataset_type": "application/json", "headers": ["Age","Gender","Income","Occupation","Target"], "label": "[*].Label", "features": "[*].Features", "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" } } }
運算所有偏差指標
您必須擁有訓練好的模型,才能運算訓練後的偏差指標。下列程式碼範例來自二進位分類模型,該模型會以範例的格式輸出JSON資料。在範例中,predictions
下的每個元素都是記錄的預測輸出。範例程式碼包含指向預測標籤的鍵 predicted_label
,以及指向機率值的鍵 probability
。
{ "predictions": [ {"predicted_label":0,"probability":0.028986845165491}, {"predicted_label":1,"probability":0.825382471084594}, ... ] }
您可以將模型部署到名為的 SageMaker 端點your_endpoint
。
在下列範例中,未設定 content_type
和 accept_type
參數。因此,content_type
和 accept_type
自動設定為使用參數 dataset_type
值,即 application/json
。接著,「 SageMaker 澄清」處理工作會使用content_template
參數來構成模型輸入。
在下列範例中,模型輸入是以記錄陣列取代 $records
預留位置所組構成。然後,record_template
參數會組成每個記錄的JSON結構,並以每個記錄的功能陣列取代$features
預留位置。
下列範例分析設定會指示「 SageMaker 澄清」處理工作計算資料集和模型的所有可能偏差量度。
{ "dataset_type": "application/json", "headers": ["Age","Gender","Income","Occupation","Target"], "label": "[*].Label", "features": "[*].Features", "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" }, "post_training_bias": { "methods": "all" } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "$records", "record_template": "{\"Features\":$features}", "label": "predictions[*].predicted_label" } }
計算SHAP值
您不需要指定用於SHAP分析的標籤。在下列範例中,未指定 headers
參數。因此,「 SageMaker 澄清」處理工作將會使用一般名稱 (例如column_0
或column_1
特徵標頭) 以及label0
標籤標頭產生預留位置。您可以指定 headers
和 a label
的值,以提高分析結果的可讀性。
在下列組態範例中,概率參數設定為從每筆記錄的每個預測中擷取機率的JMESPath運算式。以下是計算SHAP值的範例。
{ "dataset_type": "application/json", "features": "[*].Features", "methods": { "shap": { "num_clusters": 1 } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "$records", "record_template": "{\"Features\":$features}", "probability": "predictions[*].probability" } }
計算部分依賴繪圖 () PDPs
下列範例說明如何在中檢視特徵重要性PDPs。在此範例中,不提供功能標題。因此,pdp
方法的 features
參數必須使用從零開始的索引來參考功能資料欄的位置。grid_resolution
參數會將功能值的範圍劃分為 10
儲存貯體。
下列範例中的參數共同指示「 SageMaker 澄清」處理工作產生一個報表,其中包含 x 軸上含Income
有10
區段的PDP圖形。y 軸顯示對預測的 Income
邊際影響。
以下配置示例顯示了如何查看Income
上的重要性PDPs。
{ "dataset_type": "application/json", "features": "[*].Features", "methods": { "pdp": { "features": [2], "grid_resolution": 10 }, "report": { "name": "report" } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "$records", "record_template": "{\"Features\":$features}", "probability": "predictions[*].probability" } }
運算偏差指標和功能重要性
您可以將所有之前的組態方法合併為單一分析組態檔案,然後透過單一任務進行運算。下列範例顯示結合所有步驟的分析組態。
在此範例中,已設定 probability
參數。因為偏差分析需要預測標籤,所以 probability_threshold
參數設定為 0.5
,用於將機率分數轉換為二進位標籤。在此範例中,pdp
方法的 top_k_features
參數設定為 2
。這會指示「 SageMaker 澄清」處理工作計算PDPs具有最大全域SHAP值的主要圖2
徵。
{ "dataset_type": "application/json", "headers": ["Age","Gender","Income","Occupation","Target"], "label": "[*].Label", "features": "[*].Features", "probability_threshold": 0.5, "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" }, "post_training_bias": { "methods": "all" }, "shap": { "num_clusters": 1 }, "pdp": { "top_k_features": 2, "grid_resolution": 10 }, "report": { "name": "report" } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "$records", "record_template": "{\"Features\":$features}", "probability": "predictions[*].probability" } }
下列範例顯示用於計算自然語言處理的特徵重要性的分析組態檔案 (NLP)。在此範例中,內送資料集是格式的表CSV格式資料集,其中包含一個二進位標籤資料行和兩個功能資料行,如下所示。資料集是由dataset
處理輸入參數提供給 SageMaker 澄清工作。
0,2,"They taste gross" 1,3,"Flavor needs work" 1,5,"Taste is awful" 0,1,"The worst" ...
在此範例中,在先前的資料集上訓練了二進制分類模型。該模型接受CSV數據,並在和之間輸出單個分數 0
1
,如下所示。
0.491656005382537 0.569582343101501 ...
該模型用於創建一個名為「your_ SageMaker model」的模型。以下分析組態顯示如何使用模型和資料集執行權杖化的解釋性分析。text_config
參數會啟動解NLP釋性分析。granularity
參數指示分析應該解析權杖。
在英語中,每個權杖都是一個單詞。下列範例也展示如何使用平均 SHAP「評比」為 4 來提供就地「基準線」執行個體。特殊的遮罩標記「[MASK]」用於替換「註釋」中的標記(單詞)。此範例也使用GPU端點執行個體類型來加速推論。
{ "dataset_type": "
text/csv
", "headers": ["Target","Rating","Comments"
] "label": "Target
", "methods": { "shap": { "text_config": { "granularity": "token
", "language": "english
" } "baseline": [[4,"[MASK]"
]], } }, "predictor": { "model_name": "your_nlp_model
", "initial_instance_count":1
, "instance_type": "ml.g4dn.xlarge
" } }
以下的範例顯示了一個分析組態檔案運算功能對電腦視覺的重要性。在此範例中,輸入資料集是由JPEG影像所組成。資料集是由dataset
處理輸入參數提供給 SageMaker 澄清工作。此範例顯示如何使用 SageMaker 影像分類模型來設定無法解釋分析。在這個例子中,一個名為的模型your_cv_ic_model
,已經訓練對輸入JPEG圖像的動物進行分類。
{ "dataset_type": "
application/x-image
", "methods": { "shap": { "image_config": { "model_type": "IMAGE_CLASSIFICATION
", "num_segments":20
, "segment_compactness":10
} }, "report": { "name": "report
" } }, "predictor": { "model_name": "your_cv_ic_model
", "initial_instance_count":1
, "instance_type": "ml.p2.xlarge
", "label_headers": ["bird","cat","dog"
] } }
如需影像分類的詳細資訊,請參閱影像分類 - MXNet。
在這個例子中,SageMaker 對象檢測模型your_cv_od_model
,訓練相同的JPEG圖像,以識別它們上的動物。以下的範例說明如何設定物件偵測模型的解釋性分析。
{ "dataset_type": "
application/x-image
", "probability_threshold":0.5
, "methods": { "shap
": { "image_config": { "model_type": "OBJECT_DETECTION
", "max_objects":3
, "context":1.0
, "iou_threshold":0.5
, "num_segments":20
, "segment_compactness":10
} }, "report": { "name": "report
" } }, "predictor": { "model_name": "your_cv_od_model
", "initial_instance_count":1
, "instance_type": "ml.p2.xlarge
", "label_headers": ["bird","cat","dog"
] } }
下列範例顯示用於計算時間序列 (TS) 之特徵重要性的分析組態檔案。在此範例中,傳入資料集是具有一組動態和靜態共變數功能的JSON格式的時間序列資料集。資料集是由資料集處理輸入參數提供給 SageMaker 澄清工作dataset_uri
。
[ { "item_id": "item1", "timestamp": "2019-09-11", "target_value": 47650.3, "dynamic_feature_1": 0.4576, "dynamic_feature_2": 0.2164, "dynamic_feature_3": 0.1906, "static_feature_1": 3, "static_feature_2": 4 }, { "item_id": "item1", "timestamp": "2019-09-12", "target_value": 47380.3, "dynamic_feature_1": 0.4839, "dynamic_feature_2": 0.2274, "dynamic_feature_3": 0.1889, "static_feature_1": 3, "static_feature_2": 4 }, { "item_id": "item2", "timestamp": "2020-04-23", "target_value": 35601.4, "dynamic_feature_1": 0.5264, "dynamic_feature_2": 0.3838, "dynamic_feature_3": 0.4604, "static_feature_1": 1, "static_feature_2": 2 }, ]
以下各節說明如何使用資料集的非對稱 Shapley 值演算法,計算預測模型的特徵屬性。JSON
計算時間序列預測模型的說明
下列範例分析組態會顯示工單用來計算時間序列預測模型說明的選項。
{ 'dataset_type': 'application/json', 'dataset_uri': 'DATASET_URI', 'methods': { 'asymmetric_shapley_value': { 'baseline': { "related_time_series": "zero", "static_covariates": { "item1": [0, 0], "item2": [0, 0] }, "target_time_series": "zero" }, 'direction': 'chronological', 'granularity': 'fine_grained', 'num_samples': 10 }, 'report': {'name': 'report', 'title': 'Analysis Report'} }, 'predictor': { 'accept_type': 'application/json', 'content_template': '{"instances": $records}', 'endpoint_name': 'ENDPOINT_NAME', 'content_type': 'application/json', 'record_template': '{ "start": $start_time, "target": $target_time_series, "dynamic_feat": $related_time_series, "cat": $static_covariates }', 'time_series_predictor_config': {'forecast': 'predictions[*].mean[:2]'} }, 'time_series_data_config': { 'dataset_format': 'timestamp_records', 'item_id': '[].item_id', 'related_time_series': ['[].dynamic_feature_1', '[].dynamic_feature_2', '[].dynamic_feature_3'], 'static_covariates': ['[].static_feature_1', '[].static_feature_2'], 'target_time_series': '[].target_value', 'timestamp': '[].timestamp' } }
時間序列解釋配置
上述範例會使用 asymmetric_shapley_value
in methods
來定義時間序列無法解釋的引數,例如基準線、方向、粒度和樣本數目。基準線值會針對所有三種類型的資料設定:相關時間序列、靜態協變數和目標時間序列。這些欄位會指示「 SageMaker 澄清處理器」一次計算一個項目的特徵屬性。
預測器組態
您可以使用JMESPath語法完全控制 Cline 處理 SageMaker 器傳送的承載結構。在前面的例子中,predictor
配置指示澄清將記錄彙總到'{"instances": $records}'
,其中每個記錄都使用示例record_template
中給出的參數來定義。請注意$start_time
,$target_time_series
$related_time_series
、和$static_covariates
是用於將資料集值對應到端點要求值的內部 Token。
同樣地,forecast
中的屬性用time_series_predictor_config
於從端點回應擷取模型預測。例如,您的端點批處理響應可能是以下內容:
{ "predictions": [ {"mean": [13.4, 3.6, 1.0]}, {"mean": [23.0, 4.7, 3.0]}, {"mean": [3.4, 5.6, 2.0]} ] }
假設您指定下列時間序列預測器組態:
'time_series_predictor_config': {'forecast': 'predictions[*].mean[:2]'}
預測值的剖析方式如下:
[ [13.4, 3.6], [23.0, 4.7], [3.4, 5.6] ]
資料配置
使用time_series_data_config
屬性可指示 Cleven 處理器正確剖析資料,從中以 S3 URI 形式傳遞的資料。 SageMaker dataset_uri