SageMaker XGBoost のデバッガーインタラクティブレポート - Amazon SageMaker

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

SageMaker XGBoost のデバッガーインタラクティブレポート

Debugger によって自動生成されたトレーニングレポートを受け取ります。デバッガーレポートは、トレーニングジョブに関するインサイトを提供し、モデルのパフォーマンスを向上させるための推奨事項を提案します。

注記

デバッガーレポートは、トレーニングジョブの実行中またはジョブの終了後にダウンロードできます。トレーニング中、デバッガーは現在のルールの評価ステータスを反映したレポートを同時に更新します。完全なデバッガーレポートは、トレーニングジョブが完了した後にのみダウンロードできます。

重要

レポートでは、プロットや推奨事項は情報提供を目的として提供されており、決定的なものではありません。お客様は情報を独自に評価する責任を負うものとします。

SageMaker デバッガー XGBoost トレーニングレポート

SageMaker XGBoost トレーニングジョブの場合、デバッガーCreateXgboostReportルールを使用して、トレーニングの進行状況と結果の包括的なトレーニングレポートを受信します。このガイドに従って、XGBoost 推定器の構築時にCreateXgboostReportルールを指定し、Amazon SageMaker Python SDK または Amazon S3 コンソールを使用してレポートをダウンロードし、トレーニング結果に関するインサイトを取得します。

重要

レポートでは、プロットや推奨事項は情報提供を目的として提供されており、決定的なものではありません。お客様は情報を独自に評価する責任を負うものとします。

デバッガー XGBoost レポートルールを使用して XGBoost 推定器を構築する SageMaker

CreateXgboostReport ルールは、トレーニングジョブから次の出力テンソルを収集します。

  • hyperparameters - 最初のステップで保存します。

  • metrics - 5 ステップごとに損失と精度を保存します。

  • feature_importance - 5 ステップごとに保存します。

  • predictions - 5 ステップごとに保存します。

  • labels - 5 ステップごとに保存します。

出力テンソルはデフォルトの S3 バケットに保存されます。例えば s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/debug-output/ です。

XGBoost トレーニングジョブの SageMaker 推定器を構築するときは、次のサンプルコードに示すようにルールを指定します。

Using the SageMaker generic estimator
import boto3 import sagemaker from sagemaker.estimator import Estimator from sagemaker import image_uris from sagemaker.debugger import Rule, rule_configs rules=[ Rule.sagemaker(rule_configs.create_xgboost_report()) ] region = boto3.Session().region_name xgboost_container=sagemaker.image_uris.retrieve("xgboost", region, "1.2-1") estimator=Estimator( role=sagemaker.get_execution_role() image_uri=xgboost_container, base_job_name="debugger-xgboost-report-demo", instance_count=1, instance_type="ml.m5.2xlarge", # Add the Debugger XGBoost report rule rules=rules ) estimator.fit(wait=False)

デバッガー XGBoost トレーニングレポートをダウンロードする

トレーニングジョブの実行中、または Amazon Python SDK と AWS Command Line Interface (CLI) を使用してジョブが終了した後に、デバッガー XGBoost トレーニングレポートをダウンロードします。 SageMaker

Download using the SageMaker Python SDK and AWS CLI
  1. 現在のジョブのデフォルトの S3 出力基本 URI をチェックします。

    estimator.output_path
  2. 現在のジョブの名前をチェックします。

    estimator.latest_training_job.job_name
  3. デバッガー XGBoost レポートは、<default-s3-output-base-uri>/<training-job-name>/rule-output に保存されます。ルールの出力パスを次のように設定します。

    rule_output_path = estimator.output_path + "/" + estimator.latest_training_job.job_name + "/rule-output"
  4. レポートが生成されているかどうかをチェックするには、--recursive オプションを付けて aws s3 ls を使い、rule_output_path の下にディレクトリとファイルを再帰的にリストします。

    ! aws s3 ls {rule_output_path} --recursive

    これにより、CreateXgboostReportProfilerReport-1234567890 という名前の自動生成されたフォルダにファイルの完全なリストが返されます。XGBoost トレーニングレポートは CreateXgboostReport に保存され、プロファイリングレポートは ProfilerReport-1234567890 フォルダに保存されます。XGBoost トレーニングジョブでデフォルトで生成されるプロファイリングレポートの詳細については、「SageMaker デバッガープロファイリングレポート」を参照してください。

    ルール出力の例。

    xgboost_report.html は、デバッガーによって自動生成された XGBoost トレーニングレポートです。xgboost_report.ipynb は、トレーニング結果をレポートにまとめるために使用される Jupyter ノートブックです。ノートブックを使って、すべてのファイルをダウンロードし、HTML レポートファイルを参照し、レポートを変更できます。

  5. aws s3 cp を使ってファイルを再帰的にダウンロードします。次のコマンドは、すべてのルール出力ファイルを現在の作業ディレクトリの下にある ProfilerReport-1234567890 フォルダに保存します。

    ! aws s3 cp {rule_output_path} ./ --recursive
    ヒント

    Jupyter ノートブックサーバーを使っている場合は、!pwd を実行して現在の作業ディレクトリを確認します。

  6. /CreateXgboostReport ディレクトリで、xgboost_report.html を開きます。を使用している場合は JupyterLab、信頼 HTML を選択して、自動生成されたデバッガートレーニングレポートを表示します。

    ルール出力の例。
  7. xgboost_report.ipynb ファイルを開いて、レポートがどのように生成されているか検証します。Jupyter ノートブックファイルを使って、トレーニングレポートをカスタマイズして拡張できます。

Download using the Amazon S3 console
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/s3/ で Amazon S3 コンソールを開きます。

  2. 基本の S3 バケットを検索します。例えば、基本のジョブ名を指定していない場合、基本の S3 バケット名は、sagemaker-<region>-111122223333 という形式になります。[Find bucket by name] (名前でバケットを検索) フィールドから基本の S3 バケットを調べます。

    Amazon S3 コンソールの [Find bucket by name] (名前でバケットを検索) フィールド。
  3. 基本の S3 バケットで、[Find objects by prefix] (プレフィックスでオブジェクトを検索) にジョブ名のプレフィックスを入力してトレーニングジョブ名を調べ、トレーニングジョブ名を選択します。

    Amazon S3 コンソールの [Find objects by prefix] (プレフィックスでオブジェクトを検索) フィールド。
  4. トレーニングジョブの S3 バケットで、rule-output/ サブフォルダを選択します。デバッガーで収集されたトレーニングデータ用の 3 つのサブフォルダ (debug-output/profiler-output/rule-output/) があります。

    ルール出力の S3 バケット URI の例。
  5. rule-output/ フォルダで、CreateXgboostReport/ フォルダを選択します。このフォルダには、xbgoost_report.html (html で自動生成されたレポート) と xbgoost_report.ipynb (レポートの生成に使用されるスクリプトを含む Jupyter ノートブック) が含まれています。

  6. xbgoost_report.html ファイルを選択し、[Download actions] (ダウンロードアクション) を選択してから、[Download] (ダウンロード) を選択します。

    ルール出力の S3 バケット URI の例。
  7. ダウンロードした xbgoost_report.html ファイルをウェブブラウザで開きます。

デバッガー XGBoost トレーニングレポートのチュートリアル

このセクションでは、デバッガー XGBoost トレーニングレポートについて具体的に説明します。レポートは、出力テンソル正規表現に応じて自動的にまとめられ、バイナリ分類、複数クラス分類、回帰のトレーニングジョブのタイプが認識されます。

重要

レポートでは、プロットと推奨事項は情報提供のために提供され、決定的ではありません。お客様は情報を独自に評価する責任を負うものとします。

データセットの正解ラベルの分布

このヒストグラムは、元のデータセット内のラベル付けされたクラス (分類用) または値 (回帰用) の分布を示しています。データセットの歪みは、不正確さの原因となる可能性があります。この視覚化は、バイナリ分類、複数クラス分類、回帰のモデルタイプに使用できます。

データセットグラフの正解ラベルの分布の例。

損失対ステップグラフ

これは、トレーニングステップ全体でのトレーニングデータと検証データにおける損失の進行を示す折れ線グラフです。損失は、平均二乗誤差など、目的関数で定義したものです。このプロットから、モデルがオーバーフィットかアンダーフィットかを判断できます。このセクションでは、オーバーフィットおよびアンダーフィット問題の解決方法の決定に使えるインサイトも提供します。この視覚化は、バイナリ分類、複数クラス分類、回帰のモデルタイプに使用できます。

損失対ステップグラフの例。

特徴の重要度

特徴の重要度の視覚化には、ウェイト、ゲイン、カバレッジという 3 つの異なるタイプが用意されています。それぞれの詳細な定義については、レポートで説明しています。特徴の重要度の視覚化により、トレーニングデータセット内のどの特徴が予測に貢献したかがわかります。特徴の重要度の視覚化は、バイナリ分類、複数クラス分類、回帰のモデルタイプで使用できます。

特徴の重要度グラフの例。

混同行列

この視覚化は、バイナリ分類モデルと複数クラス分類モデルにのみ適用されます。精度だけではモデルのパフォーマンスを評価するのに十分ではないことがあります。ヘルスケアや不正検出などの一部のユースケースでは、偽陽性率と偽陰性率を知ることも重要です。混同行列は、モデルのパフォーマンスを評価するための追加のディメンションを提供します。

混同行列の例。

混同行列の評価

このセクションでは、モデルの適合率、再現率、F1 スコアに関するマイクロ、マクロ、加重メトリクスについて、より多くのインサイトを提供します。

混同行列の評価。

反復における各対角要素の正解率

この視覚化は、バイナリ分類モデルと複数クラス分類モデルにのみ適用されます。これは、各クラスのトレーニングステップ全体を通して、混同行列の対角値をプロットした折れ線グラフです。このプロットは、トレーニングステップ全体を通じて、各クラスの精度がどのように進歩するかを示します。このプロットから、パフォーマンスの低いクラスを特定できます。

反復グラフにおける各対角要素の正解率の例。

受信者操作特性曲線

この視覚化は、バイナリ分類モデルにのみ適用されます。受信者操作特性曲線は、バイナリ分類モデルのパフォーマンスを評価するために一般的に使用されます。曲線の Y 軸は真陽性率 (TPF)、X 軸は偽陽性率 (FPR) です。プロットには、曲線下面積 (AUC) の値も表示されます。AUC 値が大きいほど、分類器の予測度が高くなります。また、ROC 曲線を使って TPR と FPR の間のトレードオフを理解し、ユースケースに最適な分類しきい値を特定することもできます。分類しきい値を調整することで、モデルの動作を調整し、いずれかのタイプのエラー (FP/FN) を減らすことができます。

受信者操作特性曲線グラフの例。

最後に保存したステップでの残差の分布

この視覚化は、デバッガーがキャプチャする最後のステップの残差分布を示す縦棒グラフです。この視覚化では、残差分布がゼロを中心とする正規分布に近いかどうかをチェックできます。残差が歪んでいる場合、特徴はラベルを予測するのに十分ではない可能性があります。

最後に保存したステップグラフでの残差の分布の例。

反復におけるラベルビンあたりの絶対検証エラー

この視覚化は、回帰モデルにのみ適用されます。実際のターゲット値は 10 間隔に分割されます。この視覚化では、トレーニングステップ全体で、各間隔の検証エラーがどのように進行するかをラインプロットで表示します。絶対検証エラーは、検証時の予測値と実際値の差の絶対値です。この視覚化から、パフォーマンスの低い間隔を特定できます。

反復グラフにおけるラベルビンごとの絶対検証エラーの例。