评估 AutoML 预测模型

本页面介绍如何使用模型评估指标来评估 AutoML 预测模型。这些指标定量衡量模型在测试集上的表现。如何解读和使用这些指标取决于您的业务需求和模型训练所要解决的问题。例如,假正例的容忍度可能低于假负例,反之亦然。这些问题会影响您重点关注的指标。

准备工作

在评估模型之前,您必须训练模型并等待训练完成。

使用控制台或 API 检查训练作业的状态。

  1. 在 Google Cloud 控制台的 Vertex AI 部分中,前往训练页面。

    前往“训练”页面

  2. 如果训练作业的状态为“训练中”,则必须继续等待训练作业完成。如果训练作业的状态为“已完成”,则可以开始进行模型评估。

选择与您的语言或环境对应的标签页:

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:存储模型的区域。
  • PROJECT:您的项目 ID
  • TRAINING_PIPELINE_ID:训练流水线的 ID。

HTTP 方法和网址:

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

如需发送请求,请选择以下方式之一:

执行以下命令:

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 方法和网址:

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

如需发送请求,请选择以下方式之一:

执行以下命令:

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 到无穷大之间;值越低表示模型质量越高。
    如果目标列包含任何为 0 的值,则 MAPE 不会显示。在这种情况下,MAPE 未经定义。
  • RMSE:均方根误差是目标值与预测值之间的平均平方差的平方根。RMSE 对离群值比 MAE 更敏感,因此如果您担心大的误差,那么 RMSE 可能是一个更有用的评估指标。 与 MAE 类似,值越小表示模型质量越高(0 表示完美的预测模型)。
  • RMSLE:均方根对数误差指标与 RMSE 类似,不同的是它使用预测值和实际值加 1 的自然对数。RMSLE 对预测不足的罚分比过度预测更重。如果您不希望对大预测值误差的罚分比对小预测值的更重,则此指标也非常适合您的需求。此指标的范围在零到无穷大之间;值越小表示模型质量越高。只有当所有标签值和预测值均为非负值时,才会返回 RMSLE 评估指标。
  • r^2:r 平方 (r^2) 是标签值与预测值之间的皮尔逊相关系数的平方,该指标的范围介于 0 到 1 之间。值越大,表示越接近回归线。
  • 分位数:百分比分位数,表示观察到的值将低于预测值的概率。例如,在 0.2 分位数处,观察到的值预计会比预测值低 20%。如果您为优化目标指定 minimize-quantile-loss,则 Vertex AI 会提供此指标。
  • 观察到的分位数:显示小于给定分位数的预测值 true 值的百分比。如果您为优化目标指定 minimize-quantile-loss,则 Vertex AI 会提供此指标。
  • 弹力 Pinball 损失:特定分位数的弹力 Pinball 损失。分值越低,表示给定分位数质量模型越高。如果您为优化目标指定 minimize-quantile-loss,则 Vertex AI 会提供此指标。
  • 模型特征归因:Vertex AI 显示每个特征对模型的影响程度。这些值是以每个特征的百分比形式提供的:百分比越高,特征对模型训练的影响就越大。应查看此信息,以确保所有最重要的特征对您的数据和业务问题都有所帮助。 如需了解详情,请参阅用于预测的特征归因

后续步骤