このページでは、AutoML の分類モデルと回帰モデルの評価方法について説明します。
Vertex AI では、モデルのパフォーマンスを判定するためのモデル評価指標(適合率や再現率の指標など)が提供されます。Vertex AI では、評価指標の計算にテストセットが使用されます。
始める前に
モデルを評価する前に、モデルをトレーニングする必要があります。
モデル評価指標の使い方
モデル評価指標は、テストセットに対するモデルのパフォーマンスを定量的に測定します。これらの評価指標をどのように解釈し、使用するかは、ビジネスニーズや、どのような問題をモデルのトレーニングで解決するかによって異なります。たとえば、偽陽性の許容範囲が偽陰性の許容範囲よりも低い場合もあれば、その逆の場合もあります。このような質問に対する答えは、どの指標を重視するかによって変わります。
評価指標の取得
モデルに関する評価指標の集合セットを取得できますが、目的によっては、特定のクラスやラベルに関する評価指標を取得することもできます。特定のクラスやラベルに関する評価指標は、評価スライスとも呼ばれます。以下のコンテンツでは、Google Cloud コンソールまたは API を使用して評価指標の集合セットと評価スライスを取得する方法を説明します。
Google Cloud コンソール
Google Cloud コンソールの [Vertex AI] セクションで、[モデル] ページに移動します。
[リージョン] プルダウンで、モデルが配置されているリージョンを選択します。
モデルの一覧からモデルをクリックすると、モデルの [評価] タブが開きます。
[評価] タブでは、モデルの評価指標の集合セット(平均適合率や再現率など)を確認できます。
モデルの目標に評価スライスが含まれる場合は、コンソールにラベルの一覧が表示されます。次の例に示すように、ラベルをクリックすると、そのラベルの評価指標を表示できます。
API
評価指標を取得するための API リクエストはデータ型や目標ごとに同じですが、その出力は異なります。以下のサンプルでは、同じリクエストが使用されていますが、レスポンスが異なっています。
集約型のモデル評価指標の取得
集約型のモデル評価指標は、モデル全体に関する情報を提供します。特定のスライスに関する情報を表示するには、モデル評価スライスを一覧表示します。
集約型のモデル評価指標を表示するには、projects.locations.models.evaluations.get
メソッドを使用します。
目標に応じて以下のタブを選択してください。
分類
Vertex AI は信頼度指標の配列を返します。各要素は、それぞれの confidenceThreshold
値(0 から最大 1)における評価指標を表示します。さまざまなしきい値を表示させることにより、その他の指標(適合率や再現率など)がしきい値によってどのように変化するか確認できます。
お使いの言語または環境に対応するタブを選択してください。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: モデルが保存されているリージョン。
- PROJECT: 実際のプロジェクト ID。
- MODEL_ID: モデルリソースの ID。
- PROJECT_NUMBER: プロジェクトに自動生成されたプロジェクト番号。
- EVALUATION_ID: モデル評価の ID(レスポンスに表示される)。
HTTP メソッドと URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
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"
PowerShell
次のコマンドを実行します。
$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 レスポンスが返されます。
Java
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Vertex AI Java API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。詳細については、Vertex AI Node.js API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Python をインストールまたは更新する方法については、Vertex AI SDK for Python をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
回帰
お使いの言語または環境に対応するタブを選択してください。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: モデルが保存されているリージョン。
- PROJECT: 実際のプロジェクト ID。
- MODEL_ID: モデルリソースの ID。
- PROJECT_NUMBER: プロジェクトに自動生成されたプロジェクト番号。
- EVALUATION_ID: モデル評価の ID(レスポンスに表示される)。
HTTP メソッドと URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
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"
PowerShell
次のコマンドを実行します。
$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 レスポンスが返されます。
Java
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Vertex AI Java API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。詳細については、Vertex AI Node.js API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Python をインストールまたは更新する方法については、Vertex AI SDK for Python をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
すべての評価スライスを一覧表示する(分類モデルのみ)
projects.locations.models.evaluations.slices.list
メソッドは、モデルのすべての評価スライスを一覧表示します。モデルの評価 ID が必要です。この ID は、評価指標の集合セットを表示する際に取得できます。
モデル評価スライスを使用すると、特定のラベルでのモデルのパフォーマンスを判断できます。value
フィールドは、指標の対象となるラベルを示します。
Vertex AI は信頼度指標の配列を返します。各要素は、それぞれの confidenceThreshold
値(0 から最大 1)における評価指標を表示します。さまざまなしきい値を表示させることにより、その他の指標(適合率や再現率など)がしきい値によってどのように変化するか確認できます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: モデルが配置されているリージョン。例:
us-central1
- PROJECT: 実際のプロジェクト ID。
- MODEL_ID: モデルの ID。
- EVALUATION_ID: リストする評価スライスを含むモデル評価の ID。
HTTP メソッドと URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
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/EVALUATION_ID/slices"
PowerShell
次のコマンドを実行します。
$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/EVALUATION_ID/slices" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
Java
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Vertex AI Java API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。詳細については、Vertex AI Node.js API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Python をインストールまたは更新する方法については、Vertex AI SDK for Python をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
単一のスライスに関する指標の取得
単一のスライスに関する評価指標を表示するには、projects.locations.models.evaluations.slices.get
メソッドを使用します。スライス ID が必要になります。これは、すべてのスライスを一覧表示するときに提供される ID です。次のサンプルは、すべてのデータ型と目標に適用されます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: モデルが配置されているリージョン。たとえば、us-central1 などです。
- PROJECT: 実際のプロジェクト ID。
- MODEL_ID: モデルの ID。
- EVALUATION_ID: 取得する評価スライスを含むモデル評価の ID。
- SLICE_ID: 取得する評価スライスの ID。
- PROJECT_NUMBER: プロジェクトに自動生成されたプロジェクト番号。
- EVALUATION_METRIC_SCHEMA_FILE_NAME: 戻り値となる評価指標を定義するスキーマ ファイルの名前(
classification_metrics_1.0.0
など)。
HTTP メソッドと URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices/SLICE_ID
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
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/EVALUATION_ID/slices/SLICE_ID"
PowerShell
次のコマンドを実行します。
$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/EVALUATION_ID/slices/SLICE_ID" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
Java
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Vertex AI Java API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。詳細については、Vertex AI Node.js API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Python をインストールまたは更新する方法については、Vertex AI SDK for Python をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
モデル評価の指標
Vertex AI からは、適合率、再現率、信頼度しきい値など、さまざまな評価指標が返されます。返される評価指標は、モデルの目標によって異なります。たとえば、画像分類モデルと画像オブジェクト検出モデルでは、異なる評価指標が返されます。
Vertex AI から各目標に対して提供される評価指標は、スキーマ ファイルによって決まります。
スキーマ ファイルは、Cloud Storage 上の gs://google-cloud-aiplatform/schema/modelevaluation/ からダウンロードできます。
評価指標は次のとおりです。
分類
- AuPRC: 適合率 / 再現率(PR)曲線の下の領域の面積。平均適合率とも呼ばれます。この値は範囲が 0~1 で、値が高いほど高品質のモデルであることを示します。
- AuROC: 受信者操作特性曲線の下の面積。この範囲は 0~1 で、値が高いほど高品質のモデルであることを示します。
- ログ損失: モデル予測とターゲット値の間のクロス エントロピー。この範囲はゼロから無限大までで、値が小さいほど高品質のモデルであることを示します。
- 信頼度しきい値: 返される予測を仕分ける信頼度のスコア。モデルはこの値以上の予測を返します。信頼度しきい値が高いほど、適合率は向上しますが、再現率は低くなります。Vertex AI は、さまざまなしきい値に対する信頼指標を返し、しきい値が適合率と再現率にどのように影響するかを示します。
- 再現率: このクラスの予測のうち、モデルが正しく予測した割合。真陽性率とも呼ばれます。
- 再現率 1: 予測スコアが最も高く、各サンプルの信頼度のしきい値を下回らないラベルのみを考慮した場合の再現率(真陽性率)。
- 適合率: モデルによって生成された分類予測のうち正しい分類であった割合。
- 適合率 1: 予測スコアが最も高く、各サンプルの信頼度のしきい値を下回らないラベルのみを考慮した場合の適合率。
- F1 スコア: 適合率と再現率の調和平均。適合率と再現率のバランスを求めていて、クラス分布が不均一な場合、F1 は有用な指標となります。
- F1 スコア 1: 再現率 1 と適合率 1 の調和平均です。
- 真陰性数: モデルが陰性クラスを正しく予測した回数。
- 真陽性数: モデルが陽性クラスを正しく予測した回数。
- 偽陰性数: モデルが陰性クラスを誤って予測した回数。
- 偽陽性数: モデルが陽性クラスを誤って予測した回数。
- 偽陽性率: すべての予測結果のうち、陽性の予測が間違っていた割合。
- 偽陽性率 1: 予測スコアが最も高く、各サンプルの信頼度のしきい値を下回らないラベルのみを考慮した場合の偽陽性率。
- 混同行列: 混同行列は、モデルによる予測のうち正しい予測の頻度を示します。間違った予測結果に対しては、代わりに、モデルが予測した内容を表示します。混同行列は、モデルが 2 つの結果を「混同」している場所を把握するのに役立ちます。
- モデル特徴アトリビューション: Vertex AI によって、各特徴量がモデルに及ぼす影響が示されます。値は、各特徴量の割合で表します。割合が高いほど、その特徴量はモデルのトレーニングに大きく影響します。この情報を確認して、特に重要な特徴量すべてがデータとビジネスの問題に対して適切であることを確認してください。詳細については、分類と回帰の特徴アトリビューションをご覧ください。
回帰
- MAE: 平均絶対誤差(MAE)とは、ターゲット値と予測値との間の平均絶対差のことです。この指標の範囲はゼロから無限大までで、値が小さいほど高品質のモデルであることを示します。
- RMSE: 二乗平均平方根誤差(RMSE)とは、ターゲット値と予測値の平均二乗誤差の平方根です。RMSE は MAE よりも外れ値の影響を受けやすいため、大きな誤差が心配な場合は RMSE のほうがより便利な評価指標といえます。MAE と同様に、値が小さいほど高品質のモデルであることを示します(0 は完全な予測因子を表します)。
- RMSLE: 二乗平均対数平方誤差の指標は、RMSE と似ていますが、予測値と実測値に 1 を加えた自然対数を使用する点が異なります。RMSLE は、過剰予測よりも過小予測に重いペナルティを与えます。小さい予測値の差よりも大きい予測値の差のペナルティが重くならないようにする場合にも、この指標を使用することをおすすめします。この指標の範囲はゼロから無限大までで、値が小さいほど高品質のモデルであることを示します。RMSLE 評価指標は、すべてのラベルと予測値が負でない場合にのみ返されます。
- r^2: r 2 乗(r^2)は、ラベルと予測値間のピアソン相関係数の 2 乗です。この指標の範囲は 0~1 です。値が大きいほど、回帰直線に近いことを示します。
-
MAPE: 平均絶対誤差率(MAPE)は、ラベルと予測値の間の平均絶対パーセント誤差です。この指標の範囲はゼロから無限大までで、値が低いほど高品質のモデルであることを示します。
ターゲット列に 0 の値が含まれている場合、MAPE は表示されません。この場合、MAPE は未定義です。 - モデル特徴アトリビューション: Vertex AI によって、各特徴量がモデルに及ぼす影響が示されます。値は、各特徴量の割合で表します。割合が高いほど、その特徴量はモデルのトレーニングに大きく影響します。この情報を確認して、特に重要なすべての特徴量がデータとビジネスの問題に対して適切であることを確認してください。詳細については、分類と回帰の特徴アトリビューションをご覧ください。
次のステップ
分類モデルまたは回帰モデルで予測を行う準備ができたら、次の 2 つのオプションがあります。
さらに、次のことが可能です。
- モデルのアーキテクチャを表示する。
- モデルのエクスポート方法を確認する。