AutoML 予測モデルを評価する

このページでは、モデル評価指標を使用して AutoML 予測モデルを評価する方法について説明します。これらの指標は、テストセットに対するモデルのパフォーマンスを定量的に測定します。これらの評価指標をどのように解釈し、使用するかは、ビジネスニーズや、どのような問題をモデルのトレーニングで解決するかによって異なります。たとえば、偽陽性の許容範囲が偽陰性の許容範囲よりも低い場合もあれば、その逆の場合もあります。このような質問に対する答えは、どの指標を重視するかによって変わります。

始める前に

モデルを評価するには、事前にモデルをトレーニングし、トレーニングが完了するまで待つ必要があります。

コンソールまたは API を使用して、トレーニング ジョブのステータスを確認します。

  1. Google Cloud コンソールの Vertex AI セクションで、[トレーニング] ページに移動します。

    [トレーニング] ページに移動

  2. トレーニング ジョブのステータスが「トレーニング」の場合は、トレーニング ジョブが完了するまで待機する必要があります。トレーニング ジョブのステータスが「終了」の場合、モデルの評価を開始できます。

お使いの言語または環境に対応するタブを選択してください。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: モデルが保存されているリージョン。
  • PROJECT: 実際のプロジェクト ID
  • TRAINING_PIPELINE_ID: トレーニング パイプラインの ID。

HTTP メソッドと URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines/TRAINING_PIPELINE_ID

リクエストを送信するには、次のいずれかのオプションを選択します。

curlPowerShell

次のコマンドを実行します。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines/TRAINING_PIPELINE_ID"

次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines/TRAINING_PIPELINE_ID" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

  If the model is still being trained:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/trainingPipelines/TRAINING_PIPELINE_ID", ... "modelToUpload": { "displayName": "MODEL_DISPLAY_NAME" }, "state": "PIPELINE_STATE_RUNNING", ... } If the model training is complete:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/trainingPipelines/TRAINING_PIPELINE_ID", ... "modelToUpload": { "name": "projects/PROJECT_NUMBER/locations/LOCATION/models/MODEL_ID", "displayName": "MODEL_DISPLAY_NAME", "versionID": "1" }, "state": "PIPELINE_STATE_SUCCEEDED", ... }

評価指標の取得

モデルの評価指標の集合セットを取得できます。以下のコンテンツでは、Google Cloud コンソールまたは API を使用してこれらの指標を取得する方法について説明します。

  1. Google Cloud コンソールの [Vertex AI] セクションで、[モデル] ページに移動します。

    [モデル] ページに移動

  2. [リージョン] プルダウンで、モデルが配置されているリージョンを選択します。

  3. モデルのリストからモデルを選択します。

  4. モデルのバージョン番号を選択します。

  5. [評価] タブでは、モデルの集計評価指標を表示できます。

集約型のモデル評価指標を表示するには、projects.locations.models.evaluations.get メソッドを使用します。

お使いの言語または環境に対応するタブを選択してください。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: モデルが保存されているリージョン。
  • PROJECT: 実際のプロジェクト ID
  • MODEL_ID: モデルリソースの ID。MODEL_ID は、モデルのトレーニングが正常に完了した後、トレーニング パイプラインに表示されます。MODEL_ID を取得するには、始める前にをご覧ください。

HTTP メソッドと URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations

リクエストを送信するには、次のいずれかのオプションを選択します。

curlPowerShell

次のコマンドを実行します。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations"

次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "modelEvaluations": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID",
      "metricsSchemaUri": "gs://google-cloud-aiplatform/schema/modelevaluation/forecasting_metrics_1.0.0.yaml",
      "metrics": {
        "rootMeanSquaredError": 719.0045,
        "meanAbsoluteError": 487.0792,
        "meanAbsolutePercentageError": "Infinity",
        "rSquared": 0.8837288,
        "rootMeanSquaredLogError": "NaN",
        "quantileMetrics": [
          {
            "quantile": 0.2,
            "scaledPinballLoss": 157.34422,
            "observedQuantile": 0.15918367346938775
          },
          {
            "quantile": 0.5,
            "scaledPinballLoss": 243.5396,
            "observedQuantile": 0.45551020408163267
          },
          {
            "quantile": 0.8,
            "scaledPinballLoss": 175.39418,
            "observedQuantile": 0.81183673469387752
          }
        ]
      },
      "createTime": "2021-04-13T01:00:54.091953Z"
    }
  ]
}

モデル評価の指標

Vertex AI から各目標に対して提供される評価指標は、スキーマ ファイルによって決まります。

スキーマ ファイルは、Cloud Storage の gs://google-cloud-aiplatform/schema/modelevaluation/ で表示、ダウンロードできます。

予測モデルの評価指標は次のとおりです。

  • MAE: 平均絶対誤差(MAE)とは、ターゲット値と予測値との間の平均絶対差のことです。この指標の範囲はゼロから無限大までで、値が小さいほど高品質のモデルであることを示します。
  • MAPE: 平均絶対誤差率(MAPE)は、ラベルと予測値の間の平均絶対パーセント誤差です。この指標の範囲はゼロから無限大までで、値が低いほど高品質のモデルであることを示します。
    ターゲット列に 0 の値が含まれている場合、MAPE は表示されません。この場合、MAPE は未定義です。
  • RMSE: 二乗平均平方根誤差(RMSE)とは、ターゲット値と予測値の平均二乗誤差の平方根です。RMSE は MAE よりも外れ値の影響を受けやすいため、大きな誤差が心配な場合は RMSE のほうがより便利な評価指標といえます。MAE と同様に、値が小さいほど高品質のモデルであることを示します(0 は完全な予測因子を表します)。
  • RMSLE: 二乗平均対数平方誤差の指標は、RMSE と似ていますが、予測値と実測値に 1 を加えた自然対数を使用する点が異なります。RMSLE は、過剰予測よりも過小予測に重いペナルティを与えます。小さい予測値の差よりも大きい予測値の差のペナルティが重くならないようにする場合にも、この指標を使用することをおすすめします。この指標の範囲はゼロから無限大までで、値が小さいほど高品質のモデルであることを示します。RMSLE 評価指標は、すべてのラベルと予測値が負でない場合にのみ返されます。
  • r^2: r 2 乗(r^2)は、ラベルと予測値間のピアソン相関係数の 2 乗です。この指標の範囲は 0~1 です。値が大きいほど、回帰直線に近いことを示します。
  • 分位数: 観測値が予測値を下回る可能性を表すパーセント分位数です。たとえば、0.2 分位数は、観測値が予測値よりも低くなる可能性が 20% であることを示します。最適化目標に minimize-quantile-loss を指定した場合、Vertex AI からこの指標が提供されます。
  • 観測された分位数: 特定の分位数について、実際の値が予測値を下回った割合を示します。最適化目標に minimize-quantile-loss を指定した場合、Vertex AI からこの指標が提供されます。
  • スケールド ピンボールロス: 特定の分位数における、スケーリングされたピンボールロス。値が小さいほど、該当の分位数において高品質のモデルであることを示します。最適化目標に minimize-quantile-loss を指定した場合、Vertex AI からこの指標が提供されます。
  • モデル特徴アトリビューション: Vertex AI によって、各特徴量がモデルに及ぼす影響が示されます。値は、各特徴量の割合で表します。割合が高いほど、その特徴量はモデルのトレーニングに大きく影響します。この情報を確認して、特に重要なすべての特徴量がデータとビジネスの問題に対して適切であることを確認してください。詳細については、予測の特徴アトリビューションをご覧ください。

次のステップ