分析結果 - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

分析結果

SageMaker Clarify 処理ジョブが完了したら、出力ファイルをダウンロードして検査するか、 SageMaker Studio Classic で結果を視覚化できます。次のトピックでは、バイアス分析、分析、SHAPコンピュータビジョンの説明可能性分析、部分依存プロット (PDPs) 分析によって生成されるスキーマやレポートなど、 SageMaker Clarify が生成する分析結果について説明します。設定分析に複数の分析を計算するパラメータが含まれている場合、その結果は 1 つの分析と 1 つのレポートファイルに集約されます。

SageMaker Clarify 処理ジョブ出力ディレクトリには、次のファイルが含まれています。

  • analysis.json – バイアスメトリクスと特徴量の重要度をJSON形式で含むファイル。

  • report.ipynb — バイアスメトリクスと特徴量需要度を視覚化するのに役立つコードを含む静的ノートブック。

  • explanations_shap/out.csv — 作成され、特定の分析設定に基づいて自動的に生成されたファイルを格納するディレクトリ。例えば、 save_local_shap_valuesパラメータをアクティブ化すると、インスタンスごとのローカルSHAP値が explanations_shap ディレクトリに保存されます。別の例として、 にSHAPベースラインパラメータの値が含まれanalysis configurationていない場合、 SageMaker Clarify の説明可能性ジョブは入力データセットをクラスター化してベースラインを計算します。次に、生成されたベースラインをディレクトリに保存します。

詳細については、以下のセクションを参照してください。

バイアス分析

Amazon SageMaker Clarify は、 で説明されている用語Amazon SageMaker Clarify のバイアスと公平性に関する用語を使用して、バイアスと公平性について説明します。

分析ファイルのスキーマ

分析ファイルは JSON 形式であり、トレーニング前バイアスメトリクスとトレーニング後バイアスメトリクスの 2 つのセクションに分かれています。トレーニング前とトレーニング後のバイアスメトリクスのパラメータは次のとおりです。

  • pre_training_bias_metrics — トレーニング前のバイアスメトリクスのパラメータ。詳細については、「トレーニング前のバイアスメトリクス」と「分析設定ファイル」を参照してください。

    • label — 分析設定の label パラメータによって定義されるグラウンドトゥルースラベル名。

    • label_value_or_threshold — 分析設定の label_values_or_threshold パラメータによって定義されるラベル値または間隔を含む文字列。例えば、二項分類問題に値 1 を指定した場合、文字列は 1 になります。多クラス問題で複数の値 [1,2] を指定した場合、文字列は 1,2 になります。リグレッション問題にしきい値 40 を指定すると、文字列は (40, 68] のような内部文字列になります。ここで、68 は入力データセット内のラベルの最大値です。

    • facets — このセクションには複数のキーと値のペアが含まれており、キーはファセット設定の name_or_index パラメータで定義されたファセット名に対応し、値はファセットオブジェクトの配列です。 オブジェクトには次のメンバーがあります。

      • value_or_threshold — ファセット設定の value_or_threshold パラメータによって定義されるファセット値または間隔を含む文字列。

      • metrics — セクションにはバイアスメトリクス要素の配列が含まれ、各バイアスメトリクス要素には次の属性があります。

        • name — バイアスメトリクスのショートネーム。例えば、CI と指定します。

        • description — バイアスメトリクスのフルネーム。例えば、Class Imbalance (CI) と指定します。

        • value – バイアスメトリクス値。バイアスメトリクスが特定の理由で計算されない場合は 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 Clarify 処理ジョブは、カーネルSHAPアルゴリズムを使用して特徴量属性を計算します。 SageMaker Clarify 処理ジョブは、ローカル値とグローバルSHAP値の両方を生成します。これらは、モデル予測に対する各特徴量の寄与度を判断するのに役立ちます。ローカルSHAP値は個々のインスタンスの特徴の重要度を表し、グローバルSHAP値はデータセット内のすべてのインスタンスのローカルSHAP値を集計します。SHAP 値とその解釈方法の詳細については、「」を参照してくださいShapley 値を使用する特徴属性

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 は各トークンの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 の命名規則に従って特徴量名にアンダースコアが追加され、その後にターゲット変数の名前が続きます。

多クラスの問題では、最初にヘッダーの特徴量名が変わり、次にラベルが変わります。例えば、ヘッダー内の 2 つの特徴量 F1, F2 と 2 つのクラス L1L2 は 、F1_L1F2_L1F1_L2F2_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 説明可能性分析のために、1 つのコンピューティングインスタンスが使用されている場合、 SageMaker Clarify 処理ジョブはローカルSHAP値を という名前の JSON Lines ファイルに保存しますexplanations_shap/out.jsonl。複数のコンピューティングインスタンスを使用する場合、ローカルSHAP値は explanations_shap ディレクトリ内の複数の JSON Lines ファイルに保存されます。

ローカルSHAP値を含む各ファイルには複数のデータ行があり、各行は有効なJSONオブジェクトです。JSON オブジェクトには次の属性があります。

  • 説明 – 1 つのインスタンスのカーネルSHAP説明の配列を含む分析ファイルのセクション。配列の各要素には次のメンバーがあります。

    • feature_name — headers 設定によって提供される特徴量のヘッダー名。

    • data_type – SageMaker Clarify 処理ジョブによって推測される特徴量タイプ。テキスト特徴量の有効な値にはnumericalcategoricalfree_text (テキスト特徴量の場合) があります。

    • attributions — 特徴量固有の属性オブジェクトの配列。テキスト特徴量には、granularity 設定で定義された単位ごとに複数の属性オブジェクトを含めることができます。属性オブジェクトには以下のメンバーがあります。

      • attribution — クラス固有の確率値の配列。

      • description — (テキスト特徴量の場合) テキスト単位の説明。

        • partial_text – SageMaker Clarify 処理ジョブによって説明されるテキストの一部。

        • start_idx — 部分テキストフラグメントの先頭を示す配列位置を識別する 0 から始まるインデックスです。

以下は、ローカルSHAP値ファイルからの 1 行の例で、読みやすさを高めるために美化されています。

{ "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の値を示しています。

上位 4 つの特徴量のターゲット変数に対して計算されたグローバルSHAP値の水平棒グラフ。

コンピュータービジョン (CV) の説明可能性分析

SageMaker Clarify コンピュータビジョンの説明可能性は、画像で構成されるデータセットを取得し、各画像をスーパーピクセルのコレクションとして扱います。分析後、 SageMaker Clarify 処理ジョブは画像のデータセットを出力します。各画像にはスーパーピクセルのヒートマップが表示されます。

次の例は、左側の入力速度制限記号を示し、右側のヒートマップはSHAP値の大きさを示しています。これらのSHAP値は、ドイツのトラフィックサイン を認識するようにトレーニングされたイメージ認識 Resnet-18 モデルによって計算されました。 https://benchmark.ini.rub.de/gtsrb_news.htmlGerman Traffic Sign Recognition Benchmark (GTSRB) データセットは、紙の Man vs. Computer: Benchmarking machine learning algorithms for traffic sign recognition で提供されています。出力例で、正の値が大きいということはスーパーピクセルがモデル予測と強い正の相関関係にあることを示しています。負の値が大きいということはスーパーピクセルがモデル予測と強い負の相関関係にあることを示します。ヒートマップに表示されるSHAP値の絶対値が大きいほど、スーパーピクセルとモデル予測の関係は強くなります。

Resnet-18 モデルからの速度制限記号とSHAP結果のヒートマップの入力イメージ。

詳細については、サンプルノートブック SageMaker 「Clarify を使用した画像分類の説明」と「Amazon SageMaker Clarify を使用したオブジェクト検出モデルの説明」を参照してください。

部分依存プロット (PDPs) 分析

部分依存プロットは、対象の一連の入力特徴量に対する予測ターゲットレスポンスの依存性を示します。これらは、他のすべての入力特徴量の値よりも周辺化され、補完特徴量と呼ばれます。直感的に、部分依存をターゲットレスポンスとして解釈できます。これは、対象の各入力特徴量の関数として期待されます。

分析ファイルのスキーマ

PDP 値は、 pdpメソッドの分析ファイルの explanationsセクションに保存されます。explanations 用のパラメータは次のとおりです。

  • explanations — 特徴量重要度の分析結果を含む分析ファイルのセクション。

    • pdp – 1 つのインスタンス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 — モデル予測の配列。配列の各要素は、モデルの出力内の 1 つのクラスに対応する予測の配列です。

        label_headerslabel_headers 設定によって提供されるラベルヘッダー。

      • error – 特定の理由で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 グラフは x 軸feature_valuesに沿ってプロットされ、y 軸model_predictionsに沿ってプロットされます。多クラスモデルの場合、model_predictions は配列であり、この配列の各要素はモデル予測クラスのいずれかに対応します。

以下は、特徴量 のPDPグラフの例ですAge。出力例では、 はバケットにグループ化された特徴量値の数PDPを示します。バケット数は grid_resolution によって決まります。特徴量値のバケットはモデル予測と照合してプロットされます。この例では、特徴量値が高いほどモデル予測値は同じになります。

10 個の一意のグリッド ポイントの feature_values に対してモデル予測がどのように変化するかを示す折れ線グラフ。

非対称シャプリー値

SageMaker Clarify 処理ジョブは、非対称 Shapley 値アルゴリズムを使用して、時系列予測モデルの説明属性を計算します。このアルゴリズムは、予測された予測に対する各ステップの入力特徴量の寄与度を決定します。

非対称 Shapley 値分析ファイルのスキーマ

非対称 Shapley 値の結果は Amazon S3 バケットに保存されます。このバケットの場所は、分析ファイルのセクションの説明に記載されています。このセクションでは、特徴量の重要度分析結果について説明します。非対称 Shapley 値分析ファイルには、次のパラメータが含まれています。

  • asymmetric_shapley_value — 以下を含む、説明ジョブの結果に関するメタデータを含む分析ファイルのセクション。

    • explanation_results_path — 説明結果を含む Amazon S3 の場所

    • direction — の設定値のユーザー提供の設定 direction

    • 粒度 — の設定値のユーザー提供の設定 granularity

次のスニペットは、サンプル分析ファイル内の前述のパラメータを示しています。

{ "version": "1.0", "explanations": { "asymmetric_shapley_value": { "explanation_results_path": EXPLANATION_RESULTS_S3_URI, "direction": "chronological", "granularity": "timewise", } } }

以下のセクションでは、説明結果構造が 設定granularityの の値にどのように依存するかについて説明します。

時間単位の粒度

粒度が の場合timewise、出力は次の構造で表されます。scores 値は、各タイムスタンプの属性を表します。offset 値は、ベースラインデータに対するモデルの予測を表し、データを受信しない場合のモデルの動作を記述します。

次のスニペットは、2 つの時間ステップの予測を行うモデルの出力例を示しています。したがって、すべての属性は、最初のエントリが最初の予測時間ステップを参照する 2 つの要素のリストです。

{ "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_grainedoffset 値は、前のセクションで説明したのと同じ意味を持ちます。アトリビューションは、ターゲット時系列および関連する時系列のタイムスタンプごとに、および利用可能な場合は静的共変量ごとに計算されます。

{ "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 Lines (.jsonl) 形式で保存されます。