<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="bigquery_v2.html">BigQuery API</a> . <a href="bigquery_v2.models.html">models</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#delete">delete(projectId, datasetId, modelId)</a></code></p>
<p class="firstline">Deletes the model specified by modelId from the dataset.</p>
<p class="toc_element">
  <code><a href="#get">get(projectId, datasetId, modelId)</a></code></p>
<p class="firstline">Gets the specified model resource by model ID.</p>
<p class="toc_element">
  <code><a href="#list">list(projectId, datasetId, maxResults=None, pageToken=None)</a></code></p>
<p class="firstline">Lists all models in the specified dataset. Requires the READER dataset role. After retrieving the list of models, you can get information about a particular model by calling the models.get method.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(projectId, datasetId, modelId, body=None)</a></code></p>
<p class="firstline">Patch specific fields in the specified model.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(projectId, datasetId, modelId)</code>
  <pre>Deletes the model specified by modelId from the dataset.

Args:
  projectId: string, Required. Project ID of the model to delete. (required)
  datasetId: string, Required. Dataset ID of the model to delete. (required)
  modelId: string, Required. Model ID of the model to delete. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(projectId, datasetId, modelId)</code>
  <pre>Gets the specified model resource by model ID.

Args:
  projectId: string, Required. Project ID of the requested model. (required)
  datasetId: string, Required. Dataset ID of the requested model. (required)
  modelId: string, Required. Model ID of the requested model. (required)

Returns:
  An object of the form:

    {
  &quot;bestTrialId&quot;: &quot;A String&quot;, # The best trial_id across all training runs.
  &quot;creationTime&quot;: &quot;A String&quot;, # Output only. The time when this model was created, in millisecs since the epoch.
  &quot;defaultTrialId&quot;: &quot;A String&quot;, # Output only. The default trial_id to use in TVFs when the trial_id is not passed in. For single-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, this is the best trial ID. For multi-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, this is the smallest trial ID among all Pareto optimal trials.
  &quot;description&quot;: &quot;A String&quot;, # Optional. A user-friendly description of this model.
  &quot;encryptionConfiguration&quot;: { # Custom encryption configuration (e.g., Cloud KMS keys). This shows the encryption configuration of the model data while stored in BigQuery storage. This field can be used with PatchModel to update encryption key for an already encrypted model.
    &quot;kmsKeyName&quot;: &quot;A String&quot;, # Optional. Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key.
  },
  &quot;etag&quot;: &quot;A String&quot;, # Output only. A hash of this resource.
  &quot;expirationTime&quot;: &quot;A String&quot;, # Optional. The time when this model expires, in milliseconds since the epoch. If not present, the model will persist indefinitely. Expired models will be deleted and their storage reclaimed. The defaultTableExpirationMs property of the encapsulating dataset can be used to set a default expirationTime on newly created models.
  &quot;featureColumns&quot;: [ # Output only. Input feature columns for the model inference. If the model is trained with TRANSFORM clause, these are the input of the TRANSFORM clause.
    { # A field or a column.
      &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
      &quot;type&quot;: { # The data type of a variable such as a function argument. Examples include: * INT64: `{&quot;typeKind&quot;: &quot;INT64&quot;}` * ARRAY: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} } * STRUCT&gt;: { &quot;typeKind&quot;: &quot;STRUCT&quot;, &quot;structType&quot;: { &quot;fields&quot;: [ { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} }, { &quot;name&quot;: &quot;y&quot;, &quot;type&quot;: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;DATE&quot;} } } ] } } # Optional. The type of this parameter. Absent if not explicitly specified (e.g., CREATE FUNCTION statement can omit the return type; in this case the output parameter does not have this &quot;type&quot; field).
        &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
        &quot;rangeElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the range&#x27;s elements, if type_kind = &quot;RANGE&quot;.
        &quot;structType&quot;: { # The representation of a SQL STRUCT type. # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
          &quot;fields&quot;: [ # Fields within the struct.
            # Object with schema name: StandardSqlField
          ],
        },
        &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any GoogleSQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
      },
    },
  ],
  &quot;friendlyName&quot;: &quot;A String&quot;, # Optional. A descriptive name for this model.
  &quot;hparamSearchSpaces&quot;: { # Hyperparameter search spaces. These should be a subset of training_options. # Output only. All hyperparameter search spaces in this model.
    &quot;activationFn&quot;: { # Search space for string and enum. # Activation functions of neural network models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;batchSize&quot;: { # Search space for an int hyperparameter. # Mini batch sample size.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;boosterType&quot;: { # Search space for string and enum. # Booster type for boosted tree models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;colsampleBylevel&quot;: { # Search space for a double hyperparameter. # Subsample ratio of columns for each level for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;colsampleBynode&quot;: { # Search space for a double hyperparameter. # Subsample ratio of columns for each node(split) for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;colsampleBytree&quot;: { # Search space for a double hyperparameter. # Subsample ratio of columns when constructing each tree for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;dartNormalizeType&quot;: { # Search space for string and enum. # Dart normalization type for boosted tree models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;dropout&quot;: { # Search space for a double hyperparameter. # Dropout probability for dnn model training and boosted tree models using dart booster.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;hiddenUnits&quot;: { # Search space for int array. # Hidden units for neural network models.
      &quot;candidates&quot;: [ # Candidates for the int array parameter.
        { # An array of int.
          &quot;elements&quot;: [ # Elements in the int array.
            &quot;A String&quot;,
          ],
        },
      ],
    },
    &quot;l1Reg&quot;: { # Search space for a double hyperparameter. # L1 regularization coefficient.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;l2Reg&quot;: { # Search space for a double hyperparameter. # L2 regularization coefficient.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;learnRate&quot;: { # Search space for a double hyperparameter. # Learning rate of training jobs.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;maxTreeDepth&quot;: { # Search space for an int hyperparameter. # Maximum depth of a tree for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;minSplitLoss&quot;: { # Search space for a double hyperparameter. # Minimum split loss for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;minTreeChildWeight&quot;: { # Search space for an int hyperparameter. # Minimum sum of instance weight needed in a child for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;numClusters&quot;: { # Search space for an int hyperparameter. # Number of clusters for k-means.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;numFactors&quot;: { # Search space for an int hyperparameter. # Number of latent factors to train on.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;numParallelTree&quot;: { # Search space for an int hyperparameter. # Number of parallel trees for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;optimizer&quot;: { # Search space for string and enum. # Optimizer of TF models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;subsample&quot;: { # Search space for a double hyperparameter. # Subsample the training data to grow tree to prevent overfitting for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;treeMethod&quot;: { # Search space for string and enum. # Tree construction algorithm for boosted tree models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;walsAlpha&quot;: { # Search space for a double hyperparameter. # Hyperparameter for matrix factoration when implicit feedback type is specified.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
  },
  &quot;hparamTrials&quot;: [ # Output only. Trials of a [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) model sorted by trial_id.
    { # Training info of a trial in [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models.
      &quot;endTimeMs&quot;: &quot;A String&quot;, # Ending time of the trial.
      &quot;errorMessage&quot;: &quot;A String&quot;, # Error message for FAILED and INFEASIBLE trial.
      &quot;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of trial.
      &quot;evaluationMetrics&quot;: { # Evaluation metrics of a model. These are either computed on all training data or just the eval data based on whether eval data was used during training. These are not present for imported models. # Evaluation metrics of this trial calculated on the test data. Empty in Job API.
        &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
          &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
            { # ARIMA model fitting metrics.
              &quot;aic&quot;: 3.14, # AIC.
              &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
              &quot;variance&quot;: 3.14, # Variance.
            },
          ],
          &quot;arimaSingleModelForecastingMetrics&quot;: [ # Repeated as there can be many metric sets (one for each model) in auto-arima and the large-scale case.
            { # Model evaluation metrics for a single ARIMA forecasting model.
              &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                &quot;aic&quot;: 3.14, # AIC.
                &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                &quot;variance&quot;: 3.14, # Variance.
              },
              &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
              &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
              &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
              &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
              &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
              },
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
              &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
                &quot;A String&quot;,
              ],
            },
          ],
          &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
            True or False,
          ],
          &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
            { # Arima order, can be used for both non-seasonal and seasonal parts.
              &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
              &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
              &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
            },
          ],
          &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
            &quot;A String&quot;,
          ],
          &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
            &quot;A String&quot;,
          ],
        },
        &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
            { # Confusion matrix for binary classification models.
              &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
              &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
              &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
              &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
              &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
              &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
              &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
              &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
              &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
            },
          ],
          &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
          &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
        },
        &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
          &quot;clusters&quot;: [ # Information for all clusters.
            { # Message containing the information about one cluster.
              &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
              &quot;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
              &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                { # Representative value of a single feature within the cluster.
                  &quot;categoricalValue&quot;: { # Representative value of a categorical feature. # The categorical feature value.
                    &quot;categoryCounts&quot;: [ # Counts of all categories for the categorical feature. If there are more than ten categories, we return top ten (by count) and return one more CategoryCount with category &quot;_OTHER_&quot; and count as aggregate counts of remaining categories.
                      { # Represents the count of a single category within the cluster.
                        &quot;category&quot;: &quot;A String&quot;, # The name of category.
                        &quot;count&quot;: &quot;A String&quot;, # The count of training samples matching the category within the cluster.
                      },
                    ],
                  },
                  &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                  &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                },
              ],
            },
          ],
          &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
          &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
        },
        &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
          &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
        },
        &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
            { # Confusion matrix for multi-class classification models.
              &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
              &quot;rows&quot;: [ # One row per actual label.
                { # A single row in the confusion matrix.
                  &quot;actualLabel&quot;: &quot;A String&quot;, # The original label of this row.
                  &quot;entries&quot;: [ # Info describing predicted label distribution.
                    { # A single entry in the confusion matrix.
                      &quot;itemCount&quot;: &quot;A String&quot;, # Number of items being predicted as this label.
                      &quot;predictedLabel&quot;: &quot;A String&quot;, # The predicted label. For confidence_threshold &gt; 0, we will also add an entry indicating the number of items under the confidence threshold.
                    },
                  ],
                },
              ],
            },
          ],
        },
        &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
          &quot;averageRank&quot;: 3.14, # Determines the goodness of a ranking by computing the percentile rank from the predicted confidence and dividing it by the original rank.
          &quot;meanAveragePrecision&quot;: 3.14, # Calculates a precision per user for all the items by ranking them and then averages all the precisions across all the users.
          &quot;meanSquaredError&quot;: 3.14, # Similar to the mean squared error computed in regression and explicit recommendation models except instead of computing the rating directly, the output from evaluate is computed against a preference which is 1 or 0 depending on if the rating exists or not.
          &quot;normalizedDiscountedCumulativeGain&quot;: 3.14, # A metric to determine the goodness of a ranking calculated from the predicted confidence by comparing it to an ideal rank measured by the original ratings.
        },
        &quot;regressionMetrics&quot;: { # Evaluation metrics for regression and explicit feedback type matrix factorization models. # Populated for regression models and explicit feedback type matrix factorization models.
          &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
          &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
          &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
          &quot;medianAbsoluteError&quot;: 3.14, # Median absolute error.
          &quot;rSquared&quot;: 3.14, # R^2 score. This corresponds to r2_score in ML.EVALUATE.
        },
      },
      &quot;hparamTuningEvaluationMetrics&quot;: { # Evaluation metrics of a model. These are either computed on all training data or just the eval data based on whether eval data was used during training. These are not present for imported models. # Hyperparameter tuning evaluation metrics of this trial calculated on the eval data. Unlike evaluation_metrics, only the fields corresponding to the hparam_tuning_objectives are set.
        &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
          &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
            { # ARIMA model fitting metrics.
              &quot;aic&quot;: 3.14, # AIC.
              &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
              &quot;variance&quot;: 3.14, # Variance.
            },
          ],
          &quot;arimaSingleModelForecastingMetrics&quot;: [ # Repeated as there can be many metric sets (one for each model) in auto-arima and the large-scale case.
            { # Model evaluation metrics for a single ARIMA forecasting model.
              &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                &quot;aic&quot;: 3.14, # AIC.
                &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                &quot;variance&quot;: 3.14, # Variance.
              },
              &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
              &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
              &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
              &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
              &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
              },
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
              &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
                &quot;A String&quot;,
              ],
            },
          ],
          &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
            True or False,
          ],
          &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
            { # Arima order, can be used for both non-seasonal and seasonal parts.
              &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
              &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
              &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
            },
          ],
          &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
            &quot;A String&quot;,
          ],
          &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
            &quot;A String&quot;,
          ],
        },
        &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
            { # Confusion matrix for binary classification models.
              &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
              &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
              &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
              &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
              &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
              &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
              &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
              &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
              &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
            },
          ],
          &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
          &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
        },
        &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
          &quot;clusters&quot;: [ # Information for all clusters.
            { # Message containing the information about one cluster.
              &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
              &quot;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
              &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                { # Representative value of a single feature within the cluster.
                  &quot;categoricalValue&quot;: { # Representative value of a categorical feature. # The categorical feature value.
                    &quot;categoryCounts&quot;: [ # Counts of all categories for the categorical feature. If there are more than ten categories, we return top ten (by count) and return one more CategoryCount with category &quot;_OTHER_&quot; and count as aggregate counts of remaining categories.
                      { # Represents the count of a single category within the cluster.
                        &quot;category&quot;: &quot;A String&quot;, # The name of category.
                        &quot;count&quot;: &quot;A String&quot;, # The count of training samples matching the category within the cluster.
                      },
                    ],
                  },
                  &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                  &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                },
              ],
            },
          ],
          &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
          &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
        },
        &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
          &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
        },
        &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
            { # Confusion matrix for multi-class classification models.
              &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
              &quot;rows&quot;: [ # One row per actual label.
                { # A single row in the confusion matrix.
                  &quot;actualLabel&quot;: &quot;A String&quot;, # The original label of this row.
                  &quot;entries&quot;: [ # Info describing predicted label distribution.
                    { # A single entry in the confusion matrix.
                      &quot;itemCount&quot;: &quot;A String&quot;, # Number of items being predicted as this label.
                      &quot;predictedLabel&quot;: &quot;A String&quot;, # The predicted label. For confidence_threshold &gt; 0, we will also add an entry indicating the number of items under the confidence threshold.
                    },
                  ],
                },
              ],
            },
          ],
        },
        &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
          &quot;averageRank&quot;: 3.14, # Determines the goodness of a ranking by computing the percentile rank from the predicted confidence and dividing it by the original rank.
          &quot;meanAveragePrecision&quot;: 3.14, # Calculates a precision per user for all the items by ranking them and then averages all the precisions across all the users.
          &quot;meanSquaredError&quot;: 3.14, # Similar to the mean squared error computed in regression and explicit recommendation models except instead of computing the rating directly, the output from evaluate is computed against a preference which is 1 or 0 depending on if the rating exists or not.
          &quot;normalizedDiscountedCumulativeGain&quot;: 3.14, # A metric to determine the goodness of a ranking calculated from the predicted confidence by comparing it to an ideal rank measured by the original ratings.
        },
        &quot;regressionMetrics&quot;: { # Evaluation metrics for regression and explicit feedback type matrix factorization models. # Populated for regression models and explicit feedback type matrix factorization models.
          &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
          &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
          &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
          &quot;medianAbsoluteError&quot;: 3.14, # Median absolute error.
          &quot;rSquared&quot;: 3.14, # R^2 score. This corresponds to r2_score in ML.EVALUATE.
        },
      },
      &quot;hparams&quot;: { # Options used in model training. # The hyperprameters selected for this trial.
        &quot;activationFn&quot;: &quot;A String&quot;, # Activation function of the neural nets.
        &quot;adjustStepChanges&quot;: True or False, # If true, detect step changes and make data adjustment in the input time series.
        &quot;approxGlobalFeatureContrib&quot;: True or False, # Whether to use approximate feature contribution method in XGBoost model explanation for global explain.
        &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
        &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of the sum of non-seasonal p and q.
        &quot;autoArimaMinOrder&quot;: &quot;A String&quot;, # The min value of the sum of non-seasonal p and q.
        &quot;autoClassWeights&quot;: True or False, # Whether to calculate class weights automatically based on the popularity of each label.
        &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
        &quot;boosterType&quot;: &quot;A String&quot;, # Booster type for boosted tree models.
        &quot;budgetHours&quot;: 3.14, # Budget in hours for AutoML training.
        &quot;calculatePValues&quot;: True or False, # Whether or not p-value test should be computed for this model. Only available for linear and logistic regression models.
        &quot;categoryEncodingMethod&quot;: &quot;A String&quot;, # Categorical feature encoding method.
        &quot;cleanSpikesAndDips&quot;: True or False, # If true, clean spikes and dips in the input time series.
        &quot;colorSpace&quot;: &quot;A String&quot;, # Enums for color space, used for processing images in Object Table. See more details at https://www.tensorflow.org/io/tutorials/colorspace.
        &quot;colsampleBylevel&quot;: 3.14, # Subsample ratio of columns for each level for boosted tree models.
        &quot;colsampleBynode&quot;: 3.14, # Subsample ratio of columns for each node(split) for boosted tree models.
        &quot;colsampleBytree&quot;: 3.14, # Subsample ratio of columns when constructing each tree for boosted tree models.
        &quot;dartNormalizeType&quot;: &quot;A String&quot;, # Type of normalization algorithm for boosted tree models using dart booster.
        &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
        &quot;dataSplitColumn&quot;: &quot;A String&quot;, # The column to split data with. This column won&#x27;t be used as a feature. 1. When data_split_method is CUSTOM, the corresponding column should be boolean. The rows with true value tag are eval data, and the false are training data. 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows (from smallest to largest) in the corresponding column are used as training data, and the rest are eval data. It respects the order in Orderable data types: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
        &quot;dataSplitEvalFraction&quot;: 3.14, # The fraction of evaluation data over the whole input data. The rest of data will be used as training data. The format should be double. Accurate to two decimal places. Default value is 0.2.
        &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
        &quot;decomposeTimeSeries&quot;: True or False, # If true, perform decompose time series and save the results.
        &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
        &quot;dropout&quot;: 3.14, # Dropout probability for dnn models.
        &quot;earlyStop&quot;: True or False, # Whether to stop early when the loss doesn&#x27;t improve significantly any more (compared to min_relative_progress). Used only for iterative training algorithms.
        &quot;enableGlobalExplain&quot;: True or False, # If true, enable global explanation during training.
        &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
        &quot;fitIntercept&quot;: True or False, # Whether the model should include intercept during model training.
        &quot;hiddenUnits&quot;: [ # Hidden units for dnn models.
          &quot;A String&quot;,
        ],
        &quot;holidayRegion&quot;: &quot;A String&quot;, # The geographical region based on which the holidays are considered in time series modeling. If a valid value is specified, then holiday effects modeling is enabled.
        &quot;holidayRegions&quot;: [ # A list of geographical regions that are used for time series modeling.
          &quot;A String&quot;,
        ],
        &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
        &quot;hparamTuningObjectives&quot;: [ # The target evaluation metrics to optimize the hyperparameters for.
          &quot;A String&quot;,
        ],
        &quot;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
        &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
        &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
          &quot;A String&quot;,
        ],
        &quot;instanceWeightColumn&quot;: &quot;A String&quot;, # Name of the instance weight column for training data. This column isn&#x27;t be used as a feature.
        &quot;integratedGradientsNumSteps&quot;: &quot;A String&quot;, # Number of integral steps for the integrated gradients explain method.
        &quot;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
        &quot;kmeansInitializationColumn&quot;: &quot;A String&quot;, # The column used to provide the initial centroids for kmeans algorithm when kmeans_initialization_method is CUSTOM.
        &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
        &quot;l1RegActivation&quot;: 3.14, # L1 regularization coefficient to activations.
        &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
        &quot;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
        &quot;labelClassWeights&quot;: { # Weights associated with each label class, for rebalancing the training data. Only applicable for classification models.
          &quot;a_key&quot;: 3.14,
        },
        &quot;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
        &quot;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
        &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
        &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
        &quot;maxParallelTrials&quot;: &quot;A String&quot;, # Maximum number of trials to run in parallel.
        &quot;maxTimeSeriesLength&quot;: &quot;A String&quot;, # The maximum number of time points in a time series that can be used in modeling the trend component of the time series. Don&#x27;t use this option with the `timeSeriesLengthFraction` or `minTimeSeriesLength` options.
        &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree models.
        &quot;minRelativeProgress&quot;: 3.14, # When early_stop is true, stops training when accuracy improvement is less than &#x27;min_relative_progress&#x27;. Used only for iterative training algorithms.
        &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
        &quot;minTimeSeriesLength&quot;: &quot;A String&quot;, # The minimum number of time points in a time series that are used in modeling the trend component of the time series. If you use this option you must also set the `timeSeriesLengthFraction` option. This training option ensures that enough time points are available when you use `timeSeriesLengthFraction` in trend modeling. This is particularly important when forecasting multiple time series in a single query using `timeSeriesIdColumn`. If the total number of time points is less than the `minTimeSeriesLength` value, then the query uses all available time points.
        &quot;minTreeChildWeight&quot;: &quot;A String&quot;, # Minimum sum of instance weight needed in a child for boosted tree models.
        &quot;modelRegistry&quot;: &quot;A String&quot;, # The model registry.
        &quot;modelUri&quot;: &quot;A String&quot;, # Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
        &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # A specification of the non-seasonal part of the ARIMA model: the three components (p, d, q) are the AR order, the degree of differencing, and the MA order.
          &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
          &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
          &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
        },
        &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
        &quot;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
        &quot;numParallelTree&quot;: &quot;A String&quot;, # Number of parallel trees constructed during each iteration for boosted tree models.
        &quot;numPrincipalComponents&quot;: &quot;A String&quot;, # Number of principal components to keep in the PCA model. Must be &lt;= the number of features.
        &quot;numTrials&quot;: &quot;A String&quot;, # Number of trials to run this hyperparameter tuning job.
        &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
        &quot;optimizer&quot;: &quot;A String&quot;, # Optimizer used for training the neural nets.
        &quot;pcaExplainedVarianceRatio&quot;: 3.14, # The minimum ratio of cumulative explained variance that needs to be given by the PCA model.
        &quot;pcaSolver&quot;: &quot;A String&quot;, # The solver for PCA.
        &quot;sampledShapleyNumPaths&quot;: &quot;A String&quot;, # Number of paths for the sampled Shapley explain method.
        &quot;scaleFeatures&quot;: True or False, # If true, scale the feature values by dividing the feature standard deviation. Currently only apply to PCA.
        &quot;standardizeFeatures&quot;: True or False, # Whether to standardize numerical features. Default to true.
        &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
        &quot;tfVersion&quot;: &quot;A String&quot;, # Based on the selected TF version, the corresponding docker image is used to train external models.
        &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
        &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The time series id column that was used during ARIMA model training.
        &quot;timeSeriesIdColumns&quot;: [ # The time series id columns that were used during ARIMA model training.
          &quot;A String&quot;,
        ],
        &quot;timeSeriesLengthFraction&quot;: 3.14, # The fraction of the interpolated length of the time series that&#x27;s used to model the time series trend component. All of the time points of the time series are used to model the non-trend component. This training option accelerates modeling training without sacrificing much forecasting accuracy. You can use this option with `minTimeSeriesLength` but not with `maxTimeSeriesLength`.
        &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
        &quot;treeMethod&quot;: &quot;A String&quot;, # Tree construction algorithm for boosted tree models.
        &quot;trendSmoothingWindowSize&quot;: &quot;A String&quot;, # Smoothing window size for the trend component. When a positive value is specified, a center moving average smoothing is applied on the history trend. When the smoothing window is out of the boundary at the beginning or the end of the trend, the first element or the last element is padded to fill the smoothing window before the average is applied.
        &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
        &quot;vertexAiModelVersionAliases&quot;: [ # The version aliases to apply in Vertex AI model registry. Always overwrite if the version aliases exists in a existing model.
          &quot;A String&quot;,
        ],
        &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
        &quot;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
        &quot;xgboostVersion&quot;: &quot;A String&quot;, # User-selected XGBoost versions for training of XGBoost models.
      },
      &quot;startTimeMs&quot;: &quot;A String&quot;, # Starting time of the trial.
      &quot;status&quot;: &quot;A String&quot;, # The status of the trial.
      &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of trial.
      &quot;trialId&quot;: &quot;A String&quot;, # 1-based index of the trial.
    },
  ],
  &quot;labelColumns&quot;: [ # Output only. Label columns that were used to train this model. The output of the model will have a &quot;predicted_&quot; prefix to these columns.
    { # A field or a column.
      &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
      &quot;type&quot;: { # The data type of a variable such as a function argument. Examples include: * INT64: `{&quot;typeKind&quot;: &quot;INT64&quot;}` * ARRAY: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} } * STRUCT&gt;: { &quot;typeKind&quot;: &quot;STRUCT&quot;, &quot;structType&quot;: { &quot;fields&quot;: [ { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} }, { &quot;name&quot;: &quot;y&quot;, &quot;type&quot;: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;DATE&quot;} } } ] } } # Optional. The type of this parameter. Absent if not explicitly specified (e.g., CREATE FUNCTION statement can omit the return type; in this case the output parameter does not have this &quot;type&quot; field).
        &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
        &quot;rangeElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the range&#x27;s elements, if type_kind = &quot;RANGE&quot;.
        &quot;structType&quot;: { # The representation of a SQL STRUCT type. # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
          &quot;fields&quot;: [ # Fields within the struct.
            # Object with schema name: StandardSqlField
          ],
        },
        &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any GoogleSQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
      },
    },
  ],
  &quot;labels&quot;: { # The labels associated with this model. You can use these to organize and group your models. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Output only. The time when this model was last modified, in millisecs since the epoch.
  &quot;location&quot;: &quot;A String&quot;, # Output only. The geographic location where the model resides. This value is inherited from the dataset.
  &quot;modelReference&quot;: { # Required. Unique identifier for this model.
    &quot;datasetId&quot;: &quot;A String&quot;, # Required. The ID of the dataset containing this model.
    &quot;modelId&quot;: &quot;A String&quot;, # Required. The ID of the model. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
    &quot;projectId&quot;: &quot;A String&quot;, # Required. The ID of the project containing this model.
  },
  &quot;modelType&quot;: &quot;A String&quot;, # Output only. Type of the model resource.
  &quot;optimalTrialIds&quot;: [ # Output only. For single-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, it only contains the best trial. For multi-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, it contains all Pareto optimal trials sorted by trial_id.
    &quot;A String&quot;,
  ],
  &quot;remoteModelInfo&quot;: { # Remote Model Info # Output only. Remote model info
    &quot;connection&quot;: &quot;A String&quot;, # Output only. Fully qualified name of the user-provided connection object of the remote model. Format: ```&quot;projects/{project_id}/locations/{location_id}/connections/{connection_id}&quot;```
    &quot;endpoint&quot;: &quot;A String&quot;, # Output only. The endpoint for remote model.
    &quot;maxBatchingRows&quot;: &quot;A String&quot;, # Output only. Max number of rows in each batch sent to the remote service. If unset, the number of rows in each batch is set dynamically.
    &quot;remoteModelVersion&quot;: &quot;A String&quot;, # Output only. The model version for LLM.
    &quot;remoteServiceType&quot;: &quot;A String&quot;, # Output only. The remote service type for remote model.
    &quot;speechRecognizer&quot;: &quot;A String&quot;, # Output only. The name of the speech recognizer to use for speech recognition. The expected format is `projects/{project}/locations/{location}/recognizers/{recognizer}`. Customers can specify this field at model creation. If not specified, a default recognizer `projects/{model project}/locations/global/recognizers/_` will be used. See more details at [recognizers](https://cloud.google.com/speech-to-text/v2/docs/reference/rest/v2/projects.locations.recognizers)
  },
  &quot;trainingRuns&quot;: [ # Information for all training runs in increasing order of start_time.
    { # Information about a single training query run for the model.
      &quot;classLevelGlobalExplanations&quot;: [ # Output only. Global explanation contains the explanation of top features on the class level. Applies to classification models only.
        { # Global explanations containing the top most important features after training.
          &quot;classLabel&quot;: &quot;A String&quot;, # Class label for this set of global explanations. Will be empty/null for binary logistic and linear regression models. Sorted alphabetically in descending order.
          &quot;explanations&quot;: [ # A list of the top global explanations. Sorted by absolute value of attribution in descending order.
            { # Explanation for a single feature.
              &quot;attribution&quot;: 3.14, # Attribution of feature.
              &quot;featureName&quot;: &quot;A String&quot;, # The full feature name. For non-numerical features, will be formatted like `.`. Overall size of feature name will always be truncated to first 120 characters.
            },
          ],
        },
      ],
      &quot;dataSplitResult&quot;: { # Data split result. This contains references to the training and evaluation data tables that were used to train the model. # Output only. Data split result of the training run. Only set when the input data is actually split.
        &quot;evaluationTable&quot;: { # Table reference of the evaluation data after split.
          &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
          &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
          &quot;tableId&quot;: &quot;A String&quot;, # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
        },
        &quot;testTable&quot;: { # Table reference of the test data after split.
          &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
          &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
          &quot;tableId&quot;: &quot;A String&quot;, # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
        },
        &quot;trainingTable&quot;: { # Table reference of the training data after split.
          &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
          &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
          &quot;tableId&quot;: &quot;A String&quot;, # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
        },
      },
      &quot;evaluationMetrics&quot;: { # Evaluation metrics of a model. These are either computed on all training data or just the eval data based on whether eval data was used during training. These are not present for imported models. # Output only. The evaluation metrics over training/eval data that were computed at the end of training.
        &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
          &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
            { # ARIMA model fitting metrics.
              &quot;aic&quot;: 3.14, # AIC.
              &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
              &quot;variance&quot;: 3.14, # Variance.
            },
          ],
          &quot;arimaSingleModelForecastingMetrics&quot;: [ # Repeated as there can be many metric sets (one for each model) in auto-arima and the large-scale case.
            { # Model evaluation metrics for a single ARIMA forecasting model.
              &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                &quot;aic&quot;: 3.14, # AIC.
                &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                &quot;variance&quot;: 3.14, # Variance.
              },
              &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
              &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
              &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
              &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
              &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
              },
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
              &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
                &quot;A String&quot;,
              ],
            },
          ],
          &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
            True or False,
          ],
          &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
            { # Arima order, can be used for both non-seasonal and seasonal parts.
              &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
              &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
              &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
            },
          ],
          &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
            &quot;A String&quot;,
          ],
          &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
            &quot;A String&quot;,
          ],
        },
        &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
            { # Confusion matrix for binary classification models.
              &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
              &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
              &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
              &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
              &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
              &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
              &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
              &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
              &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
            },
          ],
          &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
          &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
        },
        &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
          &quot;clusters&quot;: [ # Information for all clusters.
            { # Message containing the information about one cluster.
              &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
              &quot;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
              &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                { # Representative value of a single feature within the cluster.
                  &quot;categoricalValue&quot;: { # Representative value of a categorical feature. # The categorical feature value.
                    &quot;categoryCounts&quot;: [ # Counts of all categories for the categorical feature. If there are more than ten categories, we return top ten (by count) and return one more CategoryCount with category &quot;_OTHER_&quot; and count as aggregate counts of remaining categories.
                      { # Represents the count of a single category within the cluster.
                        &quot;category&quot;: &quot;A String&quot;, # The name of category.
                        &quot;count&quot;: &quot;A String&quot;, # The count of training samples matching the category within the cluster.
                      },
                    ],
                  },
                  &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                  &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                },
              ],
            },
          ],
          &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
          &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
        },
        &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
          &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
        },
        &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
            { # Confusion matrix for multi-class classification models.
              &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
              &quot;rows&quot;: [ # One row per actual label.
                { # A single row in the confusion matrix.
                  &quot;actualLabel&quot;: &quot;A String&quot;, # The original label of this row.
                  &quot;entries&quot;: [ # Info describing predicted label distribution.
                    { # A single entry in the confusion matrix.
                      &quot;itemCount&quot;: &quot;A String&quot;, # Number of items being predicted as this label.
                      &quot;predictedLabel&quot;: &quot;A String&quot;, # The predicted label. For confidence_threshold &gt; 0, we will also add an entry indicating the number of items under the confidence threshold.
                    },
                  ],
                },
              ],
            },
          ],
        },
        &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
          &quot;averageRank&quot;: 3.14, # Determines the goodness of a ranking by computing the percentile rank from the predicted confidence and dividing it by the original rank.
          &quot;meanAveragePrecision&quot;: 3.14, # Calculates a precision per user for all the items by ranking them and then averages all the precisions across all the users.
          &quot;meanSquaredError&quot;: 3.14, # Similar to the mean squared error computed in regression and explicit recommendation models except instead of computing the rating directly, the output from evaluate is computed against a preference which is 1 or 0 depending on if the rating exists or not.
          &quot;normalizedDiscountedCumulativeGain&quot;: 3.14, # A metric to determine the goodness of a ranking calculated from the predicted confidence by comparing it to an ideal rank measured by the original ratings.
        },
        &quot;regressionMetrics&quot;: { # Evaluation metrics for regression and explicit feedback type matrix factorization models. # Populated for regression models and explicit feedback type matrix factorization models.
          &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
          &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
          &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
          &quot;medianAbsoluteError&quot;: 3.14, # Median absolute error.
          &quot;rSquared&quot;: 3.14, # R^2 score. This corresponds to r2_score in ML.EVALUATE.
        },
      },
      &quot;modelLevelGlobalExplanation&quot;: { # Global explanations containing the top most important features after training. # Output only. Global explanation contains the explanation of top features on the model level. Applies to both regression and classification models.
        &quot;classLabel&quot;: &quot;A String&quot;, # Class label for this set of global explanations. Will be empty/null for binary logistic and linear regression models. Sorted alphabetically in descending order.
        &quot;explanations&quot;: [ # A list of the top global explanations. Sorted by absolute value of attribution in descending order.
          { # Explanation for a single feature.
            &quot;attribution&quot;: 3.14, # Attribution of feature.
            &quot;featureName&quot;: &quot;A String&quot;, # The full feature name. For non-numerical features, will be formatted like `.`. Overall size of feature name will always be truncated to first 120 characters.
          },
        ],
      },
      &quot;results&quot;: [ # Output only. Output of each iteration run, results.size() &lt;= max_iterations.
        {
          &quot;durationMs&quot;: &quot;A String&quot;, # Time taken to run the iteration in milliseconds.
          &quot;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of iteration.
          &quot;index&quot;: 42, # Index of the iteration, 0 based.
          &quot;learnRate&quot;: 3.14, # Learn rate used for this iteration.
          &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
        },
      ],
      &quot;startTime&quot;: &quot;A String&quot;, # Output only. The start time of this training run.
      &quot;trainingOptions&quot;: { # Options used in model training. # Output only. Options that were used for this training run, includes user specified and default options that were used.
        &quot;activationFn&quot;: &quot;A String&quot;, # Activation function of the neural nets.
        &quot;adjustStepChanges&quot;: True or False, # If true, detect step changes and make data adjustment in the input time series.
        &quot;approxGlobalFeatureContrib&quot;: True or False, # Whether to use approximate feature contribution method in XGBoost model explanation for global explain.
        &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
        &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of the sum of non-seasonal p and q.
        &quot;autoArimaMinOrder&quot;: &quot;A String&quot;, # The min value of the sum of non-seasonal p and q.
        &quot;autoClassWeights&quot;: True or False, # Whether to calculate class weights automatically based on the popularity of each label.
        &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
        &quot;boosterType&quot;: &quot;A String&quot;, # Booster type for boosted tree models.
        &quot;budgetHours&quot;: 3.14, # Budget in hours for AutoML training.
        &quot;calculatePValues&quot;: True or False, # Whether or not p-value test should be computed for this model. Only available for linear and logistic regression models.
        &quot;categoryEncodingMethod&quot;: &quot;A String&quot;, # Categorical feature encoding method.
        &quot;cleanSpikesAndDips&quot;: True or False, # If true, clean spikes and dips in the input time series.
        &quot;colorSpace&quot;: &quot;A String&quot;, # Enums for color space, used for processing images in Object Table. See more details at https://www.tensorflow.org/io/tutorials/colorspace.
        &quot;colsampleBylevel&quot;: 3.14, # Subsample ratio of columns for each level for boosted tree models.
        &quot;colsampleBynode&quot;: 3.14, # Subsample ratio of columns for each node(split) for boosted tree models.
        &quot;colsampleBytree&quot;: 3.14, # Subsample ratio of columns when constructing each tree for boosted tree models.
        &quot;dartNormalizeType&quot;: &quot;A String&quot;, # Type of normalization algorithm for boosted tree models using dart booster.
        &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
        &quot;dataSplitColumn&quot;: &quot;A String&quot;, # The column to split data with. This column won&#x27;t be used as a feature. 1. When data_split_method is CUSTOM, the corresponding column should be boolean. The rows with true value tag are eval data, and the false are training data. 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows (from smallest to largest) in the corresponding column are used as training data, and the rest are eval data. It respects the order in Orderable data types: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
        &quot;dataSplitEvalFraction&quot;: 3.14, # The fraction of evaluation data over the whole input data. The rest of data will be used as training data. The format should be double. Accurate to two decimal places. Default value is 0.2.
        &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
        &quot;decomposeTimeSeries&quot;: True or False, # If true, perform decompose time series and save the results.
        &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
        &quot;dropout&quot;: 3.14, # Dropout probability for dnn models.
        &quot;earlyStop&quot;: True or False, # Whether to stop early when the loss doesn&#x27;t improve significantly any more (compared to min_relative_progress). Used only for iterative training algorithms.
        &quot;enableGlobalExplain&quot;: True or False, # If true, enable global explanation during training.
        &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
        &quot;fitIntercept&quot;: True or False, # Whether the model should include intercept during model training.
        &quot;hiddenUnits&quot;: [ # Hidden units for dnn models.
          &quot;A String&quot;,
        ],
        &quot;holidayRegion&quot;: &quot;A String&quot;, # The geographical region based on which the holidays are considered in time series modeling. If a valid value is specified, then holiday effects modeling is enabled.
        &quot;holidayRegions&quot;: [ # A list of geographical regions that are used for time series modeling.
          &quot;A String&quot;,
        ],
        &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
        &quot;hparamTuningObjectives&quot;: [ # The target evaluation metrics to optimize the hyperparameters for.
          &quot;A String&quot;,
        ],
        &quot;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
        &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
        &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
          &quot;A String&quot;,
        ],
        &quot;instanceWeightColumn&quot;: &quot;A String&quot;, # Name of the instance weight column for training data. This column isn&#x27;t be used as a feature.
        &quot;integratedGradientsNumSteps&quot;: &quot;A String&quot;, # Number of integral steps for the integrated gradients explain method.
        &quot;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
        &quot;kmeansInitializationColumn&quot;: &quot;A String&quot;, # The column used to provide the initial centroids for kmeans algorithm when kmeans_initialization_method is CUSTOM.
        &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
        &quot;l1RegActivation&quot;: 3.14, # L1 regularization coefficient to activations.
        &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
        &quot;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
        &quot;labelClassWeights&quot;: { # Weights associated with each label class, for rebalancing the training data. Only applicable for classification models.
          &quot;a_key&quot;: 3.14,
        },
        &quot;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
        &quot;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
        &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
        &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
        &quot;maxParallelTrials&quot;: &quot;A String&quot;, # Maximum number of trials to run in parallel.
        &quot;maxTimeSeriesLength&quot;: &quot;A String&quot;, # The maximum number of time points in a time series that can be used in modeling the trend component of the time series. Don&#x27;t use this option with the `timeSeriesLengthFraction` or `minTimeSeriesLength` options.
        &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree models.
        &quot;minRelativeProgress&quot;: 3.14, # When early_stop is true, stops training when accuracy improvement is less than &#x27;min_relative_progress&#x27;. Used only for iterative training algorithms.
        &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
        &quot;minTimeSeriesLength&quot;: &quot;A String&quot;, # The minimum number of time points in a time series that are used in modeling the trend component of the time series. If you use this option you must also set the `timeSeriesLengthFraction` option. This training option ensures that enough time points are available when you use `timeSeriesLengthFraction` in trend modeling. This is particularly important when forecasting multiple time series in a single query using `timeSeriesIdColumn`. If the total number of time points is less than the `minTimeSeriesLength` value, then the query uses all available time points.
        &quot;minTreeChildWeight&quot;: &quot;A String&quot;, # Minimum sum of instance weight needed in a child for boosted tree models.
        &quot;modelRegistry&quot;: &quot;A String&quot;, # The model registry.
        &quot;modelUri&quot;: &quot;A String&quot;, # Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
        &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # A specification of the non-seasonal part of the ARIMA model: the three components (p, d, q) are the AR order, the degree of differencing, and the MA order.
          &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
          &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
          &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
        },
        &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
        &quot;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
        &quot;numParallelTree&quot;: &quot;A String&quot;, # Number of parallel trees constructed during each iteration for boosted tree models.
        &quot;numPrincipalComponents&quot;: &quot;A String&quot;, # Number of principal components to keep in the PCA model. Must be &lt;= the number of features.
        &quot;numTrials&quot;: &quot;A String&quot;, # Number of trials to run this hyperparameter tuning job.
        &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
        &quot;optimizer&quot;: &quot;A String&quot;, # Optimizer used for training the neural nets.
        &quot;pcaExplainedVarianceRatio&quot;: 3.14, # The minimum ratio of cumulative explained variance that needs to be given by the PCA model.
        &quot;pcaSolver&quot;: &quot;A String&quot;, # The solver for PCA.
        &quot;sampledShapleyNumPaths&quot;: &quot;A String&quot;, # Number of paths for the sampled Shapley explain method.
        &quot;scaleFeatures&quot;: True or False, # If true, scale the feature values by dividing the feature standard deviation. Currently only apply to PCA.
        &quot;standardizeFeatures&quot;: True or False, # Whether to standardize numerical features. Default to true.
        &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
        &quot;tfVersion&quot;: &quot;A String&quot;, # Based on the selected TF version, the corresponding docker image is used to train external models.
        &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
        &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The time series id column that was used during ARIMA model training.
        &quot;timeSeriesIdColumns&quot;: [ # The time series id columns that were used during ARIMA model training.
          &quot;A String&quot;,
        ],
        &quot;timeSeriesLengthFraction&quot;: 3.14, # The fraction of the interpolated length of the time series that&#x27;s used to model the time series trend component. All of the time points of the time series are used to model the non-trend component. This training option accelerates modeling training without sacrificing much forecasting accuracy. You can use this option with `minTimeSeriesLength` but not with `maxTimeSeriesLength`.
        &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
        &quot;treeMethod&quot;: &quot;A String&quot;, # Tree construction algorithm for boosted tree models.
        &quot;trendSmoothingWindowSize&quot;: &quot;A String&quot;, # Smoothing window size for the trend component. When a positive value is specified, a center moving average smoothing is applied on the history trend. When the smoothing window is out of the boundary at the beginning or the end of the trend, the first element or the last element is padded to fill the smoothing window before the average is applied.
        &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
        &quot;vertexAiModelVersionAliases&quot;: [ # The version aliases to apply in Vertex AI model registry. Always overwrite if the version aliases exists in a existing model.
          &quot;A String&quot;,
        ],
        &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
        &quot;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
        &quot;xgboostVersion&quot;: &quot;A String&quot;, # User-selected XGBoost versions for training of XGBoost models.
      },
      &quot;trainingStartTime&quot;: &quot;A String&quot;, # Output only. The start time of this training run, in milliseconds since epoch.
      &quot;vertexAiModelId&quot;: &quot;A String&quot;, # The model id in the [Vertex AI Model Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction) for this training run.
      &quot;vertexAiModelVersion&quot;: &quot;A String&quot;, # Output only. The model version in the [Vertex AI Model Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction) for this training run.
    },
  ],
  &quot;transformColumns&quot;: [ # Output only. This field will be populated if a TRANSFORM clause was used to train a model. TRANSFORM clause (if used) takes feature_columns as input and outputs transform_columns. transform_columns then are used to train the model.
    { # Information about a single transform column.
      &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the column.
      &quot;transformSql&quot;: &quot;A String&quot;, # Output only. The SQL expression used in the column transform.
      &quot;type&quot;: { # The data type of a variable such as a function argument. Examples include: * INT64: `{&quot;typeKind&quot;: &quot;INT64&quot;}` * ARRAY: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} } * STRUCT&gt;: { &quot;typeKind&quot;: &quot;STRUCT&quot;, &quot;structType&quot;: { &quot;fields&quot;: [ { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} }, { &quot;name&quot;: &quot;y&quot;, &quot;type&quot;: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;DATE&quot;} } } ] } } # Output only. Data type of the column after the transform.
        &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
        &quot;rangeElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the range&#x27;s elements, if type_kind = &quot;RANGE&quot;.
        &quot;structType&quot;: { # The representation of a SQL STRUCT type. # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
          &quot;fields&quot;: [ # Fields within the struct.
            # Object with schema name: StandardSqlField
          ],
        },
        &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any GoogleSQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
      },
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(projectId, datasetId, maxResults=None, pageToken=None)</code>
  <pre>Lists all models in the specified dataset. Requires the READER dataset role. After retrieving the list of models, you can get information about a particular model by calling the models.get method.

Args:
  projectId: string, Required. Project ID of the models to list. (required)
  datasetId: string, Required. Dataset ID of the models to list. (required)
  maxResults: integer, The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.
  pageToken: string, Page token, returned by a previous call to request the next page of results

Returns:
  An object of the form:

    { # Response format for a single page when listing BigQuery ML models.
  &quot;models&quot;: [ # Models in the requested dataset. Only the following fields are populated: model_reference, model_type, creation_time, last_modified_time and labels.
    {
      &quot;bestTrialId&quot;: &quot;A String&quot;, # The best trial_id across all training runs.
      &quot;creationTime&quot;: &quot;A String&quot;, # Output only. The time when this model was created, in millisecs since the epoch.
      &quot;defaultTrialId&quot;: &quot;A String&quot;, # Output only. The default trial_id to use in TVFs when the trial_id is not passed in. For single-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, this is the best trial ID. For multi-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, this is the smallest trial ID among all Pareto optimal trials.
      &quot;description&quot;: &quot;A String&quot;, # Optional. A user-friendly description of this model.
      &quot;encryptionConfiguration&quot;: { # Custom encryption configuration (e.g., Cloud KMS keys). This shows the encryption configuration of the model data while stored in BigQuery storage. This field can be used with PatchModel to update encryption key for an already encrypted model.
        &quot;kmsKeyName&quot;: &quot;A String&quot;, # Optional. Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key.
      },
      &quot;etag&quot;: &quot;A String&quot;, # Output only. A hash of this resource.
      &quot;expirationTime&quot;: &quot;A String&quot;, # Optional. The time when this model expires, in milliseconds since the epoch. If not present, the model will persist indefinitely. Expired models will be deleted and their storage reclaimed. The defaultTableExpirationMs property of the encapsulating dataset can be used to set a default expirationTime on newly created models.
      &quot;featureColumns&quot;: [ # Output only. Input feature columns for the model inference. If the model is trained with TRANSFORM clause, these are the input of the TRANSFORM clause.
        { # A field or a column.
          &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
          &quot;type&quot;: { # The data type of a variable such as a function argument. Examples include: * INT64: `{&quot;typeKind&quot;: &quot;INT64&quot;}` * ARRAY: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} } * STRUCT&gt;: { &quot;typeKind&quot;: &quot;STRUCT&quot;, &quot;structType&quot;: { &quot;fields&quot;: [ { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} }, { &quot;name&quot;: &quot;y&quot;, &quot;type&quot;: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;DATE&quot;} } } ] } } # Optional. The type of this parameter. Absent if not explicitly specified (e.g., CREATE FUNCTION statement can omit the return type; in this case the output parameter does not have this &quot;type&quot; field).
            &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
            &quot;rangeElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the range&#x27;s elements, if type_kind = &quot;RANGE&quot;.
            &quot;structType&quot;: { # The representation of a SQL STRUCT type. # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
              &quot;fields&quot;: [ # Fields within the struct.
                # Object with schema name: StandardSqlField
              ],
            },
            &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any GoogleSQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
          },
        },
      ],
      &quot;friendlyName&quot;: &quot;A String&quot;, # Optional. A descriptive name for this model.
      &quot;hparamSearchSpaces&quot;: { # Hyperparameter search spaces. These should be a subset of training_options. # Output only. All hyperparameter search spaces in this model.
        &quot;activationFn&quot;: { # Search space for string and enum. # Activation functions of neural network models.
          &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
            &quot;A String&quot;,
          ],
        },
        &quot;batchSize&quot;: { # Search space for an int hyperparameter. # Mini batch sample size.
          &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
              &quot;A String&quot;,
            ],
          },
          &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
            &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
            &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
          },
        },
        &quot;boosterType&quot;: { # Search space for string and enum. # Booster type for boosted tree models.
          &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
            &quot;A String&quot;,
          ],
        },
        &quot;colsampleBylevel&quot;: { # Search space for a double hyperparameter. # Subsample ratio of columns for each level for boosted tree models.
          &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
              3.14,
            ],
          },
          &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
            &quot;max&quot;: 3.14, # Max value of the double parameter.
            &quot;min&quot;: 3.14, # Min value of the double parameter.
          },
        },
        &quot;colsampleBynode&quot;: { # Search space for a double hyperparameter. # Subsample ratio of columns for each node(split) for boosted tree models.
          &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
              3.14,
            ],
          },
          &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
            &quot;max&quot;: 3.14, # Max value of the double parameter.
            &quot;min&quot;: 3.14, # Min value of the double parameter.
          },
        },
        &quot;colsampleBytree&quot;: { # Search space for a double hyperparameter. # Subsample ratio of columns when constructing each tree for boosted tree models.
          &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
              3.14,
            ],
          },
          &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
            &quot;max&quot;: 3.14, # Max value of the double parameter.
            &quot;min&quot;: 3.14, # Min value of the double parameter.
          },
        },
        &quot;dartNormalizeType&quot;: { # Search space for string and enum. # Dart normalization type for boosted tree models.
          &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
            &quot;A String&quot;,
          ],
        },
        &quot;dropout&quot;: { # Search space for a double hyperparameter. # Dropout probability for dnn model training and boosted tree models using dart booster.
          &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
              3.14,
            ],
          },
          &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
            &quot;max&quot;: 3.14, # Max value of the double parameter.
            &quot;min&quot;: 3.14, # Min value of the double parameter.
          },
        },
        &quot;hiddenUnits&quot;: { # Search space for int array. # Hidden units for neural network models.
          &quot;candidates&quot;: [ # Candidates for the int array parameter.
            { # An array of int.
              &quot;elements&quot;: [ # Elements in the int array.
                &quot;A String&quot;,
              ],
            },
          ],
        },
        &quot;l1Reg&quot;: { # Search space for a double hyperparameter. # L1 regularization coefficient.
          &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
              3.14,
            ],
          },
          &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
            &quot;max&quot;: 3.14, # Max value of the double parameter.
            &quot;min&quot;: 3.14, # Min value of the double parameter.
          },
        },
        &quot;l2Reg&quot;: { # Search space for a double hyperparameter. # L2 regularization coefficient.
          &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
              3.14,
            ],
          },
          &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
            &quot;max&quot;: 3.14, # Max value of the double parameter.
            &quot;min&quot;: 3.14, # Min value of the double parameter.
          },
        },
        &quot;learnRate&quot;: { # Search space for a double hyperparameter. # Learning rate of training jobs.
          &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
              3.14,
            ],
          },
          &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
            &quot;max&quot;: 3.14, # Max value of the double parameter.
            &quot;min&quot;: 3.14, # Min value of the double parameter.
          },
        },
        &quot;maxTreeDepth&quot;: { # Search space for an int hyperparameter. # Maximum depth of a tree for boosted tree models.
          &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
              &quot;A String&quot;,
            ],
          },
          &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
            &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
            &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
          },
        },
        &quot;minSplitLoss&quot;: { # Search space for a double hyperparameter. # Minimum split loss for boosted tree models.
          &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
              3.14,
            ],
          },
          &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
            &quot;max&quot;: 3.14, # Max value of the double parameter.
            &quot;min&quot;: 3.14, # Min value of the double parameter.
          },
        },
        &quot;minTreeChildWeight&quot;: { # Search space for an int hyperparameter. # Minimum sum of instance weight needed in a child for boosted tree models.
          &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
              &quot;A String&quot;,
            ],
          },
          &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
            &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
            &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
          },
        },
        &quot;numClusters&quot;: { # Search space for an int hyperparameter. # Number of clusters for k-means.
          &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
              &quot;A String&quot;,
            ],
          },
          &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
            &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
            &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
          },
        },
        &quot;numFactors&quot;: { # Search space for an int hyperparameter. # Number of latent factors to train on.
          &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
              &quot;A String&quot;,
            ],
          },
          &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
            &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
            &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
          },
        },
        &quot;numParallelTree&quot;: { # Search space for an int hyperparameter. # Number of parallel trees for boosted tree models.
          &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
              &quot;A String&quot;,
            ],
          },
          &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
            &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
            &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
          },
        },
        &quot;optimizer&quot;: { # Search space for string and enum. # Optimizer of TF models.
          &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
            &quot;A String&quot;,
          ],
        },
        &quot;subsample&quot;: { # Search space for a double hyperparameter. # Subsample the training data to grow tree to prevent overfitting for boosted tree models.
          &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
              3.14,
            ],
          },
          &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
            &quot;max&quot;: 3.14, # Max value of the double parameter.
            &quot;min&quot;: 3.14, # Min value of the double parameter.
          },
        },
        &quot;treeMethod&quot;: { # Search space for string and enum. # Tree construction algorithm for boosted tree models.
          &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
            &quot;A String&quot;,
          ],
        },
        &quot;walsAlpha&quot;: { # Search space for a double hyperparameter. # Hyperparameter for matrix factoration when implicit feedback type is specified.
          &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
            &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
              3.14,
            ],
          },
          &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
            &quot;max&quot;: 3.14, # Max value of the double parameter.
            &quot;min&quot;: 3.14, # Min value of the double parameter.
          },
        },
      },
      &quot;hparamTrials&quot;: [ # Output only. Trials of a [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) model sorted by trial_id.
        { # Training info of a trial in [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models.
          &quot;endTimeMs&quot;: &quot;A String&quot;, # Ending time of the trial.
          &quot;errorMessage&quot;: &quot;A String&quot;, # Error message for FAILED and INFEASIBLE trial.
          &quot;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of trial.
          &quot;evaluationMetrics&quot;: { # Evaluation metrics of a model. These are either computed on all training data or just the eval data based on whether eval data was used during training. These are not present for imported models. # Evaluation metrics of this trial calculated on the test data. Empty in Job API.
            &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
              &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
                { # ARIMA model fitting metrics.
                  &quot;aic&quot;: 3.14, # AIC.
                  &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                  &quot;variance&quot;: 3.14, # Variance.
                },
              ],
              &quot;arimaSingleModelForecastingMetrics&quot;: [ # Repeated as there can be many metric sets (one for each model) in auto-arima and the large-scale case.
                { # Model evaluation metrics for a single ARIMA forecasting model.
                  &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                    &quot;aic&quot;: 3.14, # AIC.
                    &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                    &quot;variance&quot;: 3.14, # Variance.
                  },
                  &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
                  &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
                  &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
                  &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
                  &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                    &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                    &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                    &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                  },
                  &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                    &quot;A String&quot;,
                  ],
                  &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
                  &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
                    &quot;A String&quot;,
                  ],
                },
              ],
              &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                True or False,
              ],
              &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
                { # Arima order, can be used for both non-seasonal and seasonal parts.
                  &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                  &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                  &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                },
              ],
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
                &quot;A String&quot;,
              ],
            },
            &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
              &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
                &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
                &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
                &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
                &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
                &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
                &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
              },
              &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
                { # Confusion matrix for binary classification models.
                  &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
                  &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
                  &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
                  &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
                  &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
                  &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
                  &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
                  &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
                  &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
                },
              ],
              &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
              &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
            },
            &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
              &quot;clusters&quot;: [ # Information for all clusters.
                { # Message containing the information about one cluster.
                  &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
                  &quot;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
                  &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                    { # Representative value of a single feature within the cluster.
                      &quot;categoricalValue&quot;: { # Representative value of a categorical feature. # The categorical feature value.
                        &quot;categoryCounts&quot;: [ # Counts of all categories for the categorical feature. If there are more than ten categories, we return top ten (by count) and return one more CategoryCount with category &quot;_OTHER_&quot; and count as aggregate counts of remaining categories.
                          { # Represents the count of a single category within the cluster.
                            &quot;category&quot;: &quot;A String&quot;, # The name of category.
                            &quot;count&quot;: &quot;A String&quot;, # The count of training samples matching the category within the cluster.
                          },
                        ],
                      },
                      &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                      &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                    },
                  ],
                },
              ],
              &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
              &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
            },
            &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
              &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
            },
            &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
              &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
                &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
                &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
                &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
                &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
                &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
                &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
              },
              &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
                { # Confusion matrix for multi-class classification models.
                  &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
                  &quot;rows&quot;: [ # One row per actual label.
                    { # A single row in the confusion matrix.
                      &quot;actualLabel&quot;: &quot;A String&quot;, # The original label of this row.
                      &quot;entries&quot;: [ # Info describing predicted label distribution.
                        { # A single entry in the confusion matrix.
                          &quot;itemCount&quot;: &quot;A String&quot;, # Number of items being predicted as this label.
                          &quot;predictedLabel&quot;: &quot;A String&quot;, # The predicted label. For confidence_threshold &gt; 0, we will also add an entry indicating the number of items under the confidence threshold.
                        },
                      ],
                    },
                  ],
                },
              ],
            },
            &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
              &quot;averageRank&quot;: 3.14, # Determines the goodness of a ranking by computing the percentile rank from the predicted confidence and dividing it by the original rank.
              &quot;meanAveragePrecision&quot;: 3.14, # Calculates a precision per user for all the items by ranking them and then averages all the precisions across all the users.
              &quot;meanSquaredError&quot;: 3.14, # Similar to the mean squared error computed in regression and explicit recommendation models except instead of computing the rating directly, the output from evaluate is computed against a preference which is 1 or 0 depending on if the rating exists or not.
              &quot;normalizedDiscountedCumulativeGain&quot;: 3.14, # A metric to determine the goodness of a ranking calculated from the predicted confidence by comparing it to an ideal rank measured by the original ratings.
            },
            &quot;regressionMetrics&quot;: { # Evaluation metrics for regression and explicit feedback type matrix factorization models. # Populated for regression models and explicit feedback type matrix factorization models.
              &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
              &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
              &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
              &quot;medianAbsoluteError&quot;: 3.14, # Median absolute error.
              &quot;rSquared&quot;: 3.14, # R^2 score. This corresponds to r2_score in ML.EVALUATE.
            },
          },
          &quot;hparamTuningEvaluationMetrics&quot;: { # Evaluation metrics of a model. These are either computed on all training data or just the eval data based on whether eval data was used during training. These are not present for imported models. # Hyperparameter tuning evaluation metrics of this trial calculated on the eval data. Unlike evaluation_metrics, only the fields corresponding to the hparam_tuning_objectives are set.
            &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
              &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
                { # ARIMA model fitting metrics.
                  &quot;aic&quot;: 3.14, # AIC.
                  &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                  &quot;variance&quot;: 3.14, # Variance.
                },
              ],
              &quot;arimaSingleModelForecastingMetrics&quot;: [ # Repeated as there can be many metric sets (one for each model) in auto-arima and the large-scale case.
                { # Model evaluation metrics for a single ARIMA forecasting model.
                  &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                    &quot;aic&quot;: 3.14, # AIC.
                    &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                    &quot;variance&quot;: 3.14, # Variance.
                  },
                  &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
                  &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
                  &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
                  &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
                  &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                    &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                    &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                    &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                  },
                  &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                    &quot;A String&quot;,
                  ],
                  &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
                  &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
                    &quot;A String&quot;,
                  ],
                },
              ],
              &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                True or False,
              ],
              &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
                { # Arima order, can be used for both non-seasonal and seasonal parts.
                  &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                  &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                  &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                },
              ],
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
                &quot;A String&quot;,
              ],
            },
            &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
              &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
                &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
                &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
                &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
                &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
                &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
                &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
              },
              &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
                { # Confusion matrix for binary classification models.
                  &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
                  &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
                  &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
                  &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
                  &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
                  &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
                  &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
                  &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
                  &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
                },
              ],
              &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
              &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
            },
            &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
              &quot;clusters&quot;: [ # Information for all clusters.
                { # Message containing the information about one cluster.
                  &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
                  &quot;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
                  &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                    { # Representative value of a single feature within the cluster.
                      &quot;categoricalValue&quot;: { # Representative value of a categorical feature. # The categorical feature value.
                        &quot;categoryCounts&quot;: [ # Counts of all categories for the categorical feature. If there are more than ten categories, we return top ten (by count) and return one more CategoryCount with category &quot;_OTHER_&quot; and count as aggregate counts of remaining categories.
                          { # Represents the count of a single category within the cluster.
                            &quot;category&quot;: &quot;A String&quot;, # The name of category.
                            &quot;count&quot;: &quot;A String&quot;, # The count of training samples matching the category within the cluster.
                          },
                        ],
                      },
                      &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                      &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                    },
                  ],
                },
              ],
              &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
              &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
            },
            &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
              &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
            },
            &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
              &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
                &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
                &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
                &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
                &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
                &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
                &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
              },
              &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
                { # Confusion matrix for multi-class classification models.
                  &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
                  &quot;rows&quot;: [ # One row per actual label.
                    { # A single row in the confusion matrix.
                      &quot;actualLabel&quot;: &quot;A String&quot;, # The original label of this row.
                      &quot;entries&quot;: [ # Info describing predicted label distribution.
                        { # A single entry in the confusion matrix.
                          &quot;itemCount&quot;: &quot;A String&quot;, # Number of items being predicted as this label.
                          &quot;predictedLabel&quot;: &quot;A String&quot;, # The predicted label. For confidence_threshold &gt; 0, we will also add an entry indicating the number of items under the confidence threshold.
                        },
                      ],
                    },
                  ],
                },
              ],
            },
            &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
              &quot;averageRank&quot;: 3.14, # Determines the goodness of a ranking by computing the percentile rank from the predicted confidence and dividing it by the original rank.
              &quot;meanAveragePrecision&quot;: 3.14, # Calculates a precision per user for all the items by ranking them and then averages all the precisions across all the users.
              &quot;meanSquaredError&quot;: 3.14, # Similar to the mean squared error computed in regression and explicit recommendation models except instead of computing the rating directly, the output from evaluate is computed against a preference which is 1 or 0 depending on if the rating exists or not.
              &quot;normalizedDiscountedCumulativeGain&quot;: 3.14, # A metric to determine the goodness of a ranking calculated from the predicted confidence by comparing it to an ideal rank measured by the original ratings.
            },
            &quot;regressionMetrics&quot;: { # Evaluation metrics for regression and explicit feedback type matrix factorization models. # Populated for regression models and explicit feedback type matrix factorization models.
              &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
              &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
              &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
              &quot;medianAbsoluteError&quot;: 3.14, # Median absolute error.
              &quot;rSquared&quot;: 3.14, # R^2 score. This corresponds to r2_score in ML.EVALUATE.
            },
          },
          &quot;hparams&quot;: { # Options used in model training. # The hyperprameters selected for this trial.
            &quot;activationFn&quot;: &quot;A String&quot;, # Activation function of the neural nets.
            &quot;adjustStepChanges&quot;: True or False, # If true, detect step changes and make data adjustment in the input time series.
            &quot;approxGlobalFeatureContrib&quot;: True or False, # Whether to use approximate feature contribution method in XGBoost model explanation for global explain.
            &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
            &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of the sum of non-seasonal p and q.
            &quot;autoArimaMinOrder&quot;: &quot;A String&quot;, # The min value of the sum of non-seasonal p and q.
            &quot;autoClassWeights&quot;: True or False, # Whether to calculate class weights automatically based on the popularity of each label.
            &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
            &quot;boosterType&quot;: &quot;A String&quot;, # Booster type for boosted tree models.
            &quot;budgetHours&quot;: 3.14, # Budget in hours for AutoML training.
            &quot;calculatePValues&quot;: True or False, # Whether or not p-value test should be computed for this model. Only available for linear and logistic regression models.
            &quot;categoryEncodingMethod&quot;: &quot;A String&quot;, # Categorical feature encoding method.
            &quot;cleanSpikesAndDips&quot;: True or False, # If true, clean spikes and dips in the input time series.
            &quot;colorSpace&quot;: &quot;A String&quot;, # Enums for color space, used for processing images in Object Table. See more details at https://www.tensorflow.org/io/tutorials/colorspace.
            &quot;colsampleBylevel&quot;: 3.14, # Subsample ratio of columns for each level for boosted tree models.
            &quot;colsampleBynode&quot;: 3.14, # Subsample ratio of columns for each node(split) for boosted tree models.
            &quot;colsampleBytree&quot;: 3.14, # Subsample ratio of columns when constructing each tree for boosted tree models.
            &quot;dartNormalizeType&quot;: &quot;A String&quot;, # Type of normalization algorithm for boosted tree models using dart booster.
            &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
            &quot;dataSplitColumn&quot;: &quot;A String&quot;, # The column to split data with. This column won&#x27;t be used as a feature. 1. When data_split_method is CUSTOM, the corresponding column should be boolean. The rows with true value tag are eval data, and the false are training data. 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows (from smallest to largest) in the corresponding column are used as training data, and the rest are eval data. It respects the order in Orderable data types: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
            &quot;dataSplitEvalFraction&quot;: 3.14, # The fraction of evaluation data over the whole input data. The rest of data will be used as training data. The format should be double. Accurate to two decimal places. Default value is 0.2.
            &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
            &quot;decomposeTimeSeries&quot;: True or False, # If true, perform decompose time series and save the results.
            &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
            &quot;dropout&quot;: 3.14, # Dropout probability for dnn models.
            &quot;earlyStop&quot;: True or False, # Whether to stop early when the loss doesn&#x27;t improve significantly any more (compared to min_relative_progress). Used only for iterative training algorithms.
            &quot;enableGlobalExplain&quot;: True or False, # If true, enable global explanation during training.
            &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
            &quot;fitIntercept&quot;: True or False, # Whether the model should include intercept during model training.
            &quot;hiddenUnits&quot;: [ # Hidden units for dnn models.
              &quot;A String&quot;,
            ],
            &quot;holidayRegion&quot;: &quot;A String&quot;, # The geographical region based on which the holidays are considered in time series modeling. If a valid value is specified, then holiday effects modeling is enabled.
            &quot;holidayRegions&quot;: [ # A list of geographical regions that are used for time series modeling.
              &quot;A String&quot;,
            ],
            &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
            &quot;hparamTuningObjectives&quot;: [ # The target evaluation metrics to optimize the hyperparameters for.
              &quot;A String&quot;,
            ],
            &quot;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
            &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
            &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
              &quot;A String&quot;,
            ],
            &quot;instanceWeightColumn&quot;: &quot;A String&quot;, # Name of the instance weight column for training data. This column isn&#x27;t be used as a feature.
            &quot;integratedGradientsNumSteps&quot;: &quot;A String&quot;, # Number of integral steps for the integrated gradients explain method.
            &quot;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
            &quot;kmeansInitializationColumn&quot;: &quot;A String&quot;, # The column used to provide the initial centroids for kmeans algorithm when kmeans_initialization_method is CUSTOM.
            &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
            &quot;l1RegActivation&quot;: 3.14, # L1 regularization coefficient to activations.
            &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
            &quot;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
            &quot;labelClassWeights&quot;: { # Weights associated with each label class, for rebalancing the training data. Only applicable for classification models.
              &quot;a_key&quot;: 3.14,
            },
            &quot;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
            &quot;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
            &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
            &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
            &quot;maxParallelTrials&quot;: &quot;A String&quot;, # Maximum number of trials to run in parallel.
            &quot;maxTimeSeriesLength&quot;: &quot;A String&quot;, # The maximum number of time points in a time series that can be used in modeling the trend component of the time series. Don&#x27;t use this option with the `timeSeriesLengthFraction` or `minTimeSeriesLength` options.
            &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree models.
            &quot;minRelativeProgress&quot;: 3.14, # When early_stop is true, stops training when accuracy improvement is less than &#x27;min_relative_progress&#x27;. Used only for iterative training algorithms.
            &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
            &quot;minTimeSeriesLength&quot;: &quot;A String&quot;, # The minimum number of time points in a time series that are used in modeling the trend component of the time series. If you use this option you must also set the `timeSeriesLengthFraction` option. This training option ensures that enough time points are available when you use `timeSeriesLengthFraction` in trend modeling. This is particularly important when forecasting multiple time series in a single query using `timeSeriesIdColumn`. If the total number of time points is less than the `minTimeSeriesLength` value, then the query uses all available time points.
            &quot;minTreeChildWeight&quot;: &quot;A String&quot;, # Minimum sum of instance weight needed in a child for boosted tree models.
            &quot;modelRegistry&quot;: &quot;A String&quot;, # The model registry.
            &quot;modelUri&quot;: &quot;A String&quot;, # Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
            &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # A specification of the non-seasonal part of the ARIMA model: the three components (p, d, q) are the AR order, the degree of differencing, and the MA order.
              &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
              &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
              &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
            },
            &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
            &quot;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
            &quot;numParallelTree&quot;: &quot;A String&quot;, # Number of parallel trees constructed during each iteration for boosted tree models.
            &quot;numPrincipalComponents&quot;: &quot;A String&quot;, # Number of principal components to keep in the PCA model. Must be &lt;= the number of features.
            &quot;numTrials&quot;: &quot;A String&quot;, # Number of trials to run this hyperparameter tuning job.
            &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
            &quot;optimizer&quot;: &quot;A String&quot;, # Optimizer used for training the neural nets.
            &quot;pcaExplainedVarianceRatio&quot;: 3.14, # The minimum ratio of cumulative explained variance that needs to be given by the PCA model.
            &quot;pcaSolver&quot;: &quot;A String&quot;, # The solver for PCA.
            &quot;sampledShapleyNumPaths&quot;: &quot;A String&quot;, # Number of paths for the sampled Shapley explain method.
            &quot;scaleFeatures&quot;: True or False, # If true, scale the feature values by dividing the feature standard deviation. Currently only apply to PCA.
            &quot;standardizeFeatures&quot;: True or False, # Whether to standardize numerical features. Default to true.
            &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
            &quot;tfVersion&quot;: &quot;A String&quot;, # Based on the selected TF version, the corresponding docker image is used to train external models.
            &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
            &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The time series id column that was used during ARIMA model training.
            &quot;timeSeriesIdColumns&quot;: [ # The time series id columns that were used during ARIMA model training.
              &quot;A String&quot;,
            ],
            &quot;timeSeriesLengthFraction&quot;: 3.14, # The fraction of the interpolated length of the time series that&#x27;s used to model the time series trend component. All of the time points of the time series are used to model the non-trend component. This training option accelerates modeling training without sacrificing much forecasting accuracy. You can use this option with `minTimeSeriesLength` but not with `maxTimeSeriesLength`.
            &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
            &quot;treeMethod&quot;: &quot;A String&quot;, # Tree construction algorithm for boosted tree models.
            &quot;trendSmoothingWindowSize&quot;: &quot;A String&quot;, # Smoothing window size for the trend component. When a positive value is specified, a center moving average smoothing is applied on the history trend. When the smoothing window is out of the boundary at the beginning or the end of the trend, the first element or the last element is padded to fill the smoothing window before the average is applied.
            &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
            &quot;vertexAiModelVersionAliases&quot;: [ # The version aliases to apply in Vertex AI model registry. Always overwrite if the version aliases exists in a existing model.
              &quot;A String&quot;,
            ],
            &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
            &quot;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
            &quot;xgboostVersion&quot;: &quot;A String&quot;, # User-selected XGBoost versions for training of XGBoost models.
          },
          &quot;startTimeMs&quot;: &quot;A String&quot;, # Starting time of the trial.
          &quot;status&quot;: &quot;A String&quot;, # The status of the trial.
          &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of trial.
          &quot;trialId&quot;: &quot;A String&quot;, # 1-based index of the trial.
        },
      ],
      &quot;labelColumns&quot;: [ # Output only. Label columns that were used to train this model. The output of the model will have a &quot;predicted_&quot; prefix to these columns.
        { # A field or a column.
          &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
          &quot;type&quot;: { # The data type of a variable such as a function argument. Examples include: * INT64: `{&quot;typeKind&quot;: &quot;INT64&quot;}` * ARRAY: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} } * STRUCT&gt;: { &quot;typeKind&quot;: &quot;STRUCT&quot;, &quot;structType&quot;: { &quot;fields&quot;: [ { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} }, { &quot;name&quot;: &quot;y&quot;, &quot;type&quot;: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;DATE&quot;} } } ] } } # Optional. The type of this parameter. Absent if not explicitly specified (e.g., CREATE FUNCTION statement can omit the return type; in this case the output parameter does not have this &quot;type&quot; field).
            &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
            &quot;rangeElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the range&#x27;s elements, if type_kind = &quot;RANGE&quot;.
            &quot;structType&quot;: { # The representation of a SQL STRUCT type. # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
              &quot;fields&quot;: [ # Fields within the struct.
                # Object with schema name: StandardSqlField
              ],
            },
            &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any GoogleSQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
          },
        },
      ],
      &quot;labels&quot;: { # The labels associated with this model. You can use these to organize and group your models. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Output only. The time when this model was last modified, in millisecs since the epoch.
      &quot;location&quot;: &quot;A String&quot;, # Output only. The geographic location where the model resides. This value is inherited from the dataset.
      &quot;modelReference&quot;: { # Required. Unique identifier for this model.
        &quot;datasetId&quot;: &quot;A String&quot;, # Required. The ID of the dataset containing this model.
        &quot;modelId&quot;: &quot;A String&quot;, # Required. The ID of the model. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
        &quot;projectId&quot;: &quot;A String&quot;, # Required. The ID of the project containing this model.
      },
      &quot;modelType&quot;: &quot;A String&quot;, # Output only. Type of the model resource.
      &quot;optimalTrialIds&quot;: [ # Output only. For single-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, it only contains the best trial. For multi-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, it contains all Pareto optimal trials sorted by trial_id.
        &quot;A String&quot;,
      ],
      &quot;remoteModelInfo&quot;: { # Remote Model Info # Output only. Remote model info
        &quot;connection&quot;: &quot;A String&quot;, # Output only. Fully qualified name of the user-provided connection object of the remote model. Format: ```&quot;projects/{project_id}/locations/{location_id}/connections/{connection_id}&quot;```
        &quot;endpoint&quot;: &quot;A String&quot;, # Output only. The endpoint for remote model.
        &quot;maxBatchingRows&quot;: &quot;A String&quot;, # Output only. Max number of rows in each batch sent to the remote service. If unset, the number of rows in each batch is set dynamically.
        &quot;remoteModelVersion&quot;: &quot;A String&quot;, # Output only. The model version for LLM.
        &quot;remoteServiceType&quot;: &quot;A String&quot;, # Output only. The remote service type for remote model.
        &quot;speechRecognizer&quot;: &quot;A String&quot;, # Output only. The name of the speech recognizer to use for speech recognition. The expected format is `projects/{project}/locations/{location}/recognizers/{recognizer}`. Customers can specify this field at model creation. If not specified, a default recognizer `projects/{model project}/locations/global/recognizers/_` will be used. See more details at [recognizers](https://cloud.google.com/speech-to-text/v2/docs/reference/rest/v2/projects.locations.recognizers)
      },
      &quot;trainingRuns&quot;: [ # Information for all training runs in increasing order of start_time.
        { # Information about a single training query run for the model.
          &quot;classLevelGlobalExplanations&quot;: [ # Output only. Global explanation contains the explanation of top features on the class level. Applies to classification models only.
            { # Global explanations containing the top most important features after training.
              &quot;classLabel&quot;: &quot;A String&quot;, # Class label for this set of global explanations. Will be empty/null for binary logistic and linear regression models. Sorted alphabetically in descending order.
              &quot;explanations&quot;: [ # A list of the top global explanations. Sorted by absolute value of attribution in descending order.
                { # Explanation for a single feature.
                  &quot;attribution&quot;: 3.14, # Attribution of feature.
                  &quot;featureName&quot;: &quot;A String&quot;, # The full feature name. For non-numerical features, will be formatted like `.`. Overall size of feature name will always be truncated to first 120 characters.
                },
              ],
            },
          ],
          &quot;dataSplitResult&quot;: { # Data split result. This contains references to the training and evaluation data tables that were used to train the model. # Output only. Data split result of the training run. Only set when the input data is actually split.
            &quot;evaluationTable&quot;: { # Table reference of the evaluation data after split.
              &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
              &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
              &quot;tableId&quot;: &quot;A String&quot;, # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
            },
            &quot;testTable&quot;: { # Table reference of the test data after split.
              &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
              &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
              &quot;tableId&quot;: &quot;A String&quot;, # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
            },
            &quot;trainingTable&quot;: { # Table reference of the training data after split.
              &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
              &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
              &quot;tableId&quot;: &quot;A String&quot;, # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
            },
          },
          &quot;evaluationMetrics&quot;: { # Evaluation metrics of a model. These are either computed on all training data or just the eval data based on whether eval data was used during training. These are not present for imported models. # Output only. The evaluation metrics over training/eval data that were computed at the end of training.
            &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
              &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
                { # ARIMA model fitting metrics.
                  &quot;aic&quot;: 3.14, # AIC.
                  &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                  &quot;variance&quot;: 3.14, # Variance.
                },
              ],
              &quot;arimaSingleModelForecastingMetrics&quot;: [ # Repeated as there can be many metric sets (one for each model) in auto-arima and the large-scale case.
                { # Model evaluation metrics for a single ARIMA forecasting model.
                  &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                    &quot;aic&quot;: 3.14, # AIC.
                    &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                    &quot;variance&quot;: 3.14, # Variance.
                  },
                  &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
                  &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
                  &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
                  &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
                  &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                    &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                    &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                    &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                  },
                  &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                    &quot;A String&quot;,
                  ],
                  &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
                  &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
                    &quot;A String&quot;,
                  ],
                },
              ],
              &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                True or False,
              ],
              &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
                { # Arima order, can be used for both non-seasonal and seasonal parts.
                  &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                  &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                  &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                },
              ],
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
                &quot;A String&quot;,
              ],
            },
            &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
              &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
                &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
                &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
                &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
                &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
                &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
                &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
              },
              &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
                { # Confusion matrix for binary classification models.
                  &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
                  &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
                  &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
                  &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
                  &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
                  &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
                  &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
                  &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
                  &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
                },
              ],
              &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
              &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
            },
            &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
              &quot;clusters&quot;: [ # Information for all clusters.
                { # Message containing the information about one cluster.
                  &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
                  &quot;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
                  &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                    { # Representative value of a single feature within the cluster.
                      &quot;categoricalValue&quot;: { # Representative value of a categorical feature. # The categorical feature value.
                        &quot;categoryCounts&quot;: [ # Counts of all categories for the categorical feature. If there are more than ten categories, we return top ten (by count) and return one more CategoryCount with category &quot;_OTHER_&quot; and count as aggregate counts of remaining categories.
                          { # Represents the count of a single category within the cluster.
                            &quot;category&quot;: &quot;A String&quot;, # The name of category.
                            &quot;count&quot;: &quot;A String&quot;, # The count of training samples matching the category within the cluster.
                          },
                        ],
                      },
                      &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                      &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                    },
                  ],
                },
              ],
              &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
              &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
            },
            &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
              &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
            },
            &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
              &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
                &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
                &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
                &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
                &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
                &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
                &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
              },
              &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
                { # Confusion matrix for multi-class classification models.
                  &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
                  &quot;rows&quot;: [ # One row per actual label.
                    { # A single row in the confusion matrix.
                      &quot;actualLabel&quot;: &quot;A String&quot;, # The original label of this row.
                      &quot;entries&quot;: [ # Info describing predicted label distribution.
                        { # A single entry in the confusion matrix.
                          &quot;itemCount&quot;: &quot;A String&quot;, # Number of items being predicted as this label.
                          &quot;predictedLabel&quot;: &quot;A String&quot;, # The predicted label. For confidence_threshold &gt; 0, we will also add an entry indicating the number of items under the confidence threshold.
                        },
                      ],
                    },
                  ],
                },
              ],
            },
            &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
              &quot;averageRank&quot;: 3.14, # Determines the goodness of a ranking by computing the percentile rank from the predicted confidence and dividing it by the original rank.
              &quot;meanAveragePrecision&quot;: 3.14, # Calculates a precision per user for all the items by ranking them and then averages all the precisions across all the users.
              &quot;meanSquaredError&quot;: 3.14, # Similar to the mean squared error computed in regression and explicit recommendation models except instead of computing the rating directly, the output from evaluate is computed against a preference which is 1 or 0 depending on if the rating exists or not.
              &quot;normalizedDiscountedCumulativeGain&quot;: 3.14, # A metric to determine the goodness of a ranking calculated from the predicted confidence by comparing it to an ideal rank measured by the original ratings.
            },
            &quot;regressionMetrics&quot;: { # Evaluation metrics for regression and explicit feedback type matrix factorization models. # Populated for regression models and explicit feedback type matrix factorization models.
              &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
              &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
              &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
              &quot;medianAbsoluteError&quot;: 3.14, # Median absolute error.
              &quot;rSquared&quot;: 3.14, # R^2 score. This corresponds to r2_score in ML.EVALUATE.
            },
          },
          &quot;modelLevelGlobalExplanation&quot;: { # Global explanations containing the top most important features after training. # Output only. Global explanation contains the explanation of top features on the model level. Applies to both regression and classification models.
            &quot;classLabel&quot;: &quot;A String&quot;, # Class label for this set of global explanations. Will be empty/null for binary logistic and linear regression models. Sorted alphabetically in descending order.
            &quot;explanations&quot;: [ # A list of the top global explanations. Sorted by absolute value of attribution in descending order.
              { # Explanation for a single feature.
                &quot;attribution&quot;: 3.14, # Attribution of feature.
                &quot;featureName&quot;: &quot;A String&quot;, # The full feature name. For non-numerical features, will be formatted like `.`. Overall size of feature name will always be truncated to first 120 characters.
              },
            ],
          },
          &quot;results&quot;: [ # Output only. Output of each iteration run, results.size() &lt;= max_iterations.
            {
              &quot;durationMs&quot;: &quot;A String&quot;, # Time taken to run the iteration in milliseconds.
              &quot;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of iteration.
              &quot;index&quot;: 42, # Index of the iteration, 0 based.
              &quot;learnRate&quot;: 3.14, # Learn rate used for this iteration.
              &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
            },
          ],
          &quot;startTime&quot;: &quot;A String&quot;, # Output only. The start time of this training run.
          &quot;trainingOptions&quot;: { # Options used in model training. # Output only. Options that were used for this training run, includes user specified and default options that were used.
            &quot;activationFn&quot;: &quot;A String&quot;, # Activation function of the neural nets.
            &quot;adjustStepChanges&quot;: True or False, # If true, detect step changes and make data adjustment in the input time series.
            &quot;approxGlobalFeatureContrib&quot;: True or False, # Whether to use approximate feature contribution method in XGBoost model explanation for global explain.
            &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
            &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of the sum of non-seasonal p and q.
            &quot;autoArimaMinOrder&quot;: &quot;A String&quot;, # The min value of the sum of non-seasonal p and q.
            &quot;autoClassWeights&quot;: True or False, # Whether to calculate class weights automatically based on the popularity of each label.
            &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
            &quot;boosterType&quot;: &quot;A String&quot;, # Booster type for boosted tree models.
            &quot;budgetHours&quot;: 3.14, # Budget in hours for AutoML training.
            &quot;calculatePValues&quot;: True or False, # Whether or not p-value test should be computed for this model. Only available for linear and logistic regression models.
            &quot;categoryEncodingMethod&quot;: &quot;A String&quot;, # Categorical feature encoding method.
            &quot;cleanSpikesAndDips&quot;: True or False, # If true, clean spikes and dips in the input time series.
            &quot;colorSpace&quot;: &quot;A String&quot;, # Enums for color space, used for processing images in Object Table. See more details at https://www.tensorflow.org/io/tutorials/colorspace.
            &quot;colsampleBylevel&quot;: 3.14, # Subsample ratio of columns for each level for boosted tree models.
            &quot;colsampleBynode&quot;: 3.14, # Subsample ratio of columns for each node(split) for boosted tree models.
            &quot;colsampleBytree&quot;: 3.14, # Subsample ratio of columns when constructing each tree for boosted tree models.
            &quot;dartNormalizeType&quot;: &quot;A String&quot;, # Type of normalization algorithm for boosted tree models using dart booster.
            &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
            &quot;dataSplitColumn&quot;: &quot;A String&quot;, # The column to split data with. This column won&#x27;t be used as a feature. 1. When data_split_method is CUSTOM, the corresponding column should be boolean. The rows with true value tag are eval data, and the false are training data. 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows (from smallest to largest) in the corresponding column are used as training data, and the rest are eval data. It respects the order in Orderable data types: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
            &quot;dataSplitEvalFraction&quot;: 3.14, # The fraction of evaluation data over the whole input data. The rest of data will be used as training data. The format should be double. Accurate to two decimal places. Default value is 0.2.
            &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
            &quot;decomposeTimeSeries&quot;: True or False, # If true, perform decompose time series and save the results.
            &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
            &quot;dropout&quot;: 3.14, # Dropout probability for dnn models.
            &quot;earlyStop&quot;: True or False, # Whether to stop early when the loss doesn&#x27;t improve significantly any more (compared to min_relative_progress). Used only for iterative training algorithms.
            &quot;enableGlobalExplain&quot;: True or False, # If true, enable global explanation during training.
            &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
            &quot;fitIntercept&quot;: True or False, # Whether the model should include intercept during model training.
            &quot;hiddenUnits&quot;: [ # Hidden units for dnn models.
              &quot;A String&quot;,
            ],
            &quot;holidayRegion&quot;: &quot;A String&quot;, # The geographical region based on which the holidays are considered in time series modeling. If a valid value is specified, then holiday effects modeling is enabled.
            &quot;holidayRegions&quot;: [ # A list of geographical regions that are used for time series modeling.
              &quot;A String&quot;,
            ],
            &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
            &quot;hparamTuningObjectives&quot;: [ # The target evaluation metrics to optimize the hyperparameters for.
              &quot;A String&quot;,
            ],
            &quot;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
            &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
            &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
              &quot;A String&quot;,
            ],
            &quot;instanceWeightColumn&quot;: &quot;A String&quot;, # Name of the instance weight column for training data. This column isn&#x27;t be used as a feature.
            &quot;integratedGradientsNumSteps&quot;: &quot;A String&quot;, # Number of integral steps for the integrated gradients explain method.
            &quot;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
            &quot;kmeansInitializationColumn&quot;: &quot;A String&quot;, # The column used to provide the initial centroids for kmeans algorithm when kmeans_initialization_method is CUSTOM.
            &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
            &quot;l1RegActivation&quot;: 3.14, # L1 regularization coefficient to activations.
            &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
            &quot;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
            &quot;labelClassWeights&quot;: { # Weights associated with each label class, for rebalancing the training data. Only applicable for classification models.
              &quot;a_key&quot;: 3.14,
            },
            &quot;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
            &quot;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
            &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
            &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
            &quot;maxParallelTrials&quot;: &quot;A String&quot;, # Maximum number of trials to run in parallel.
            &quot;maxTimeSeriesLength&quot;: &quot;A String&quot;, # The maximum number of time points in a time series that can be used in modeling the trend component of the time series. Don&#x27;t use this option with the `timeSeriesLengthFraction` or `minTimeSeriesLength` options.
            &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree models.
            &quot;minRelativeProgress&quot;: 3.14, # When early_stop is true, stops training when accuracy improvement is less than &#x27;min_relative_progress&#x27;. Used only for iterative training algorithms.
            &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
            &quot;minTimeSeriesLength&quot;: &quot;A String&quot;, # The minimum number of time points in a time series that are used in modeling the trend component of the time series. If you use this option you must also set the `timeSeriesLengthFraction` option. This training option ensures that enough time points are available when you use `timeSeriesLengthFraction` in trend modeling. This is particularly important when forecasting multiple time series in a single query using `timeSeriesIdColumn`. If the total number of time points is less than the `minTimeSeriesLength` value, then the query uses all available time points.
            &quot;minTreeChildWeight&quot;: &quot;A String&quot;, # Minimum sum of instance weight needed in a child for boosted tree models.
            &quot;modelRegistry&quot;: &quot;A String&quot;, # The model registry.
            &quot;modelUri&quot;: &quot;A String&quot;, # Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
            &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # A specification of the non-seasonal part of the ARIMA model: the three components (p, d, q) are the AR order, the degree of differencing, and the MA order.
              &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
              &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
              &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
            },
            &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
            &quot;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
            &quot;numParallelTree&quot;: &quot;A String&quot;, # Number of parallel trees constructed during each iteration for boosted tree models.
            &quot;numPrincipalComponents&quot;: &quot;A String&quot;, # Number of principal components to keep in the PCA model. Must be &lt;= the number of features.
            &quot;numTrials&quot;: &quot;A String&quot;, # Number of trials to run this hyperparameter tuning job.
            &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
            &quot;optimizer&quot;: &quot;A String&quot;, # Optimizer used for training the neural nets.
            &quot;pcaExplainedVarianceRatio&quot;: 3.14, # The minimum ratio of cumulative explained variance that needs to be given by the PCA model.
            &quot;pcaSolver&quot;: &quot;A String&quot;, # The solver for PCA.
            &quot;sampledShapleyNumPaths&quot;: &quot;A String&quot;, # Number of paths for the sampled Shapley explain method.
            &quot;scaleFeatures&quot;: True or False, # If true, scale the feature values by dividing the feature standard deviation. Currently only apply to PCA.
            &quot;standardizeFeatures&quot;: True or False, # Whether to standardize numerical features. Default to true.
            &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
            &quot;tfVersion&quot;: &quot;A String&quot;, # Based on the selected TF version, the corresponding docker image is used to train external models.
            &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
            &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The time series id column that was used during ARIMA model training.
            &quot;timeSeriesIdColumns&quot;: [ # The time series id columns that were used during ARIMA model training.
              &quot;A String&quot;,
            ],
            &quot;timeSeriesLengthFraction&quot;: 3.14, # The fraction of the interpolated length of the time series that&#x27;s used to model the time series trend component. All of the time points of the time series are used to model the non-trend component. This training option accelerates modeling training without sacrificing much forecasting accuracy. You can use this option with `minTimeSeriesLength` but not with `maxTimeSeriesLength`.
            &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
            &quot;treeMethod&quot;: &quot;A String&quot;, # Tree construction algorithm for boosted tree models.
            &quot;trendSmoothingWindowSize&quot;: &quot;A String&quot;, # Smoothing window size for the trend component. When a positive value is specified, a center moving average smoothing is applied on the history trend. When the smoothing window is out of the boundary at the beginning or the end of the trend, the first element or the last element is padded to fill the smoothing window before the average is applied.
            &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
            &quot;vertexAiModelVersionAliases&quot;: [ # The version aliases to apply in Vertex AI model registry. Always overwrite if the version aliases exists in a existing model.
              &quot;A String&quot;,
            ],
            &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
            &quot;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
            &quot;xgboostVersion&quot;: &quot;A String&quot;, # User-selected XGBoost versions for training of XGBoost models.
          },
          &quot;trainingStartTime&quot;: &quot;A String&quot;, # Output only. The start time of this training run, in milliseconds since epoch.
          &quot;vertexAiModelId&quot;: &quot;A String&quot;, # The model id in the [Vertex AI Model Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction) for this training run.
          &quot;vertexAiModelVersion&quot;: &quot;A String&quot;, # Output only. The model version in the [Vertex AI Model Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction) for this training run.
        },
      ],
      &quot;transformColumns&quot;: [ # Output only. This field will be populated if a TRANSFORM clause was used to train a model. TRANSFORM clause (if used) takes feature_columns as input and outputs transform_columns. transform_columns then are used to train the model.
        { # Information about a single transform column.
          &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the column.
          &quot;transformSql&quot;: &quot;A String&quot;, # Output only. The SQL expression used in the column transform.
          &quot;type&quot;: { # The data type of a variable such as a function argument. Examples include: * INT64: `{&quot;typeKind&quot;: &quot;INT64&quot;}` * ARRAY: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} } * STRUCT&gt;: { &quot;typeKind&quot;: &quot;STRUCT&quot;, &quot;structType&quot;: { &quot;fields&quot;: [ { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} }, { &quot;name&quot;: &quot;y&quot;, &quot;type&quot;: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;DATE&quot;} } } ] } } # Output only. Data type of the column after the transform.
            &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
            &quot;rangeElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the range&#x27;s elements, if type_kind = &quot;RANGE&quot;.
            &quot;structType&quot;: { # The representation of a SQL STRUCT type. # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
              &quot;fields&quot;: [ # Fields within the struct.
                # Object with schema name: StandardSqlField
              ],
            },
            &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any GoogleSQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
          },
        },
      ],
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to request the next page of results.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next()</code>
  <pre>Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call &#x27;execute()&#x27; on to request the next
          page. Returns None if there are no more items in the collection.
        </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(projectId, datasetId, modelId, body=None)</code>
  <pre>Patch specific fields in the specified model.

Args:
  projectId: string, Required. Project ID of the model to patch. (required)
  datasetId: string, Required. Dataset ID of the model to patch. (required)
  modelId: string, Required. Model ID of the model to patch. (required)
  body: object, The request body.
    The object takes the form of:

{
  &quot;bestTrialId&quot;: &quot;A String&quot;, # The best trial_id across all training runs.
  &quot;creationTime&quot;: &quot;A String&quot;, # Output only. The time when this model was created, in millisecs since the epoch.
  &quot;defaultTrialId&quot;: &quot;A String&quot;, # Output only. The default trial_id to use in TVFs when the trial_id is not passed in. For single-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, this is the best trial ID. For multi-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, this is the smallest trial ID among all Pareto optimal trials.
  &quot;description&quot;: &quot;A String&quot;, # Optional. A user-friendly description of this model.
  &quot;encryptionConfiguration&quot;: { # Custom encryption configuration (e.g., Cloud KMS keys). This shows the encryption configuration of the model data while stored in BigQuery storage. This field can be used with PatchModel to update encryption key for an already encrypted model.
    &quot;kmsKeyName&quot;: &quot;A String&quot;, # Optional. Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key.
  },
  &quot;etag&quot;: &quot;A String&quot;, # Output only. A hash of this resource.
  &quot;expirationTime&quot;: &quot;A String&quot;, # Optional. The time when this model expires, in milliseconds since the epoch. If not present, the model will persist indefinitely. Expired models will be deleted and their storage reclaimed. The defaultTableExpirationMs property of the encapsulating dataset can be used to set a default expirationTime on newly created models.
  &quot;featureColumns&quot;: [ # Output only. Input feature columns for the model inference. If the model is trained with TRANSFORM clause, these are the input of the TRANSFORM clause.
    { # A field or a column.
      &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
      &quot;type&quot;: { # The data type of a variable such as a function argument. Examples include: * INT64: `{&quot;typeKind&quot;: &quot;INT64&quot;}` * ARRAY: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} } * STRUCT&gt;: { &quot;typeKind&quot;: &quot;STRUCT&quot;, &quot;structType&quot;: { &quot;fields&quot;: [ { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} }, { &quot;name&quot;: &quot;y&quot;, &quot;type&quot;: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;DATE&quot;} } } ] } } # Optional. The type of this parameter. Absent if not explicitly specified (e.g., CREATE FUNCTION statement can omit the return type; in this case the output parameter does not have this &quot;type&quot; field).
        &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
        &quot;rangeElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the range&#x27;s elements, if type_kind = &quot;RANGE&quot;.
        &quot;structType&quot;: { # The representation of a SQL STRUCT type. # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
          &quot;fields&quot;: [ # Fields within the struct.
            # Object with schema name: StandardSqlField
          ],
        },
        &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any GoogleSQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
      },
    },
  ],
  &quot;friendlyName&quot;: &quot;A String&quot;, # Optional. A descriptive name for this model.
  &quot;hparamSearchSpaces&quot;: { # Hyperparameter search spaces. These should be a subset of training_options. # Output only. All hyperparameter search spaces in this model.
    &quot;activationFn&quot;: { # Search space for string and enum. # Activation functions of neural network models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;batchSize&quot;: { # Search space for an int hyperparameter. # Mini batch sample size.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;boosterType&quot;: { # Search space for string and enum. # Booster type for boosted tree models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;colsampleBylevel&quot;: { # Search space for a double hyperparameter. # Subsample ratio of columns for each level for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;colsampleBynode&quot;: { # Search space for a double hyperparameter. # Subsample ratio of columns for each node(split) for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;colsampleBytree&quot;: { # Search space for a double hyperparameter. # Subsample ratio of columns when constructing each tree for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;dartNormalizeType&quot;: { # Search space for string and enum. # Dart normalization type for boosted tree models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;dropout&quot;: { # Search space for a double hyperparameter. # Dropout probability for dnn model training and boosted tree models using dart booster.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;hiddenUnits&quot;: { # Search space for int array. # Hidden units for neural network models.
      &quot;candidates&quot;: [ # Candidates for the int array parameter.
        { # An array of int.
          &quot;elements&quot;: [ # Elements in the int array.
            &quot;A String&quot;,
          ],
        },
      ],
    },
    &quot;l1Reg&quot;: { # Search space for a double hyperparameter. # L1 regularization coefficient.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;l2Reg&quot;: { # Search space for a double hyperparameter. # L2 regularization coefficient.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;learnRate&quot;: { # Search space for a double hyperparameter. # Learning rate of training jobs.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;maxTreeDepth&quot;: { # Search space for an int hyperparameter. # Maximum depth of a tree for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;minSplitLoss&quot;: { # Search space for a double hyperparameter. # Minimum split loss for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;minTreeChildWeight&quot;: { # Search space for an int hyperparameter. # Minimum sum of instance weight needed in a child for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;numClusters&quot;: { # Search space for an int hyperparameter. # Number of clusters for k-means.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;numFactors&quot;: { # Search space for an int hyperparameter. # Number of latent factors to train on.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;numParallelTree&quot;: { # Search space for an int hyperparameter. # Number of parallel trees for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;optimizer&quot;: { # Search space for string and enum. # Optimizer of TF models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;subsample&quot;: { # Search space for a double hyperparameter. # Subsample the training data to grow tree to prevent overfitting for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;treeMethod&quot;: { # Search space for string and enum. # Tree construction algorithm for boosted tree models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;walsAlpha&quot;: { # Search space for a double hyperparameter. # Hyperparameter for matrix factoration when implicit feedback type is specified.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
  },
  &quot;hparamTrials&quot;: [ # Output only. Trials of a [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) model sorted by trial_id.
    { # Training info of a trial in [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models.
      &quot;endTimeMs&quot;: &quot;A String&quot;, # Ending time of the trial.
      &quot;errorMessage&quot;: &quot;A String&quot;, # Error message for FAILED and INFEASIBLE trial.
      &quot;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of trial.
      &quot;evaluationMetrics&quot;: { # Evaluation metrics of a model. These are either computed on all training data or just the eval data based on whether eval data was used during training. These are not present for imported models. # Evaluation metrics of this trial calculated on the test data. Empty in Job API.
        &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
          &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
            { # ARIMA model fitting metrics.
              &quot;aic&quot;: 3.14, # AIC.
              &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
              &quot;variance&quot;: 3.14, # Variance.
            },
          ],
          &quot;arimaSingleModelForecastingMetrics&quot;: [ # Repeated as there can be many metric sets (one for each model) in auto-arima and the large-scale case.
            { # Model evaluation metrics for a single ARIMA forecasting model.
              &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                &quot;aic&quot;: 3.14, # AIC.
                &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                &quot;variance&quot;: 3.14, # Variance.
              },
              &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
              &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
              &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
              &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
              &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
              },
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
              &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
                &quot;A String&quot;,
              ],
            },
          ],
          &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
            True or False,
          ],
          &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
            { # Arima order, can be used for both non-seasonal and seasonal parts.
              &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
              &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
              &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
            },
          ],
          &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
            &quot;A String&quot;,
          ],
          &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
            &quot;A String&quot;,
          ],
        },
        &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
            { # Confusion matrix for binary classification models.
              &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
              &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
              &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
              &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
              &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
              &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
              &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
              &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
              &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
            },
          ],
          &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
          &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
        },
        &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
          &quot;clusters&quot;: [ # Information for all clusters.
            { # Message containing the information about one cluster.
              &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
              &quot;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
              &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                { # Representative value of a single feature within the cluster.
                  &quot;categoricalValue&quot;: { # Representative value of a categorical feature. # The categorical feature value.
                    &quot;categoryCounts&quot;: [ # Counts of all categories for the categorical feature. If there are more than ten categories, we return top ten (by count) and return one more CategoryCount with category &quot;_OTHER_&quot; and count as aggregate counts of remaining categories.
                      { # Represents the count of a single category within the cluster.
                        &quot;category&quot;: &quot;A String&quot;, # The name of category.
                        &quot;count&quot;: &quot;A String&quot;, # The count of training samples matching the category within the cluster.
                      },
                    ],
                  },
                  &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                  &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                },
              ],
            },
          ],
          &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
          &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
        },
        &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
          &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
        },
        &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
            { # Confusion matrix for multi-class classification models.
              &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
              &quot;rows&quot;: [ # One row per actual label.
                { # A single row in the confusion matrix.
                  &quot;actualLabel&quot;: &quot;A String&quot;, # The original label of this row.
                  &quot;entries&quot;: [ # Info describing predicted label distribution.
                    { # A single entry in the confusion matrix.
                      &quot;itemCount&quot;: &quot;A String&quot;, # Number of items being predicted as this label.
                      &quot;predictedLabel&quot;: &quot;A String&quot;, # The predicted label. For confidence_threshold &gt; 0, we will also add an entry indicating the number of items under the confidence threshold.
                    },
                  ],
                },
              ],
            },
          ],
        },
        &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
          &quot;averageRank&quot;: 3.14, # Determines the goodness of a ranking by computing the percentile rank from the predicted confidence and dividing it by the original rank.
          &quot;meanAveragePrecision&quot;: 3.14, # Calculates a precision per user for all the items by ranking them and then averages all the precisions across all the users.
          &quot;meanSquaredError&quot;: 3.14, # Similar to the mean squared error computed in regression and explicit recommendation models except instead of computing the rating directly, the output from evaluate is computed against a preference which is 1 or 0 depending on if the rating exists or not.
          &quot;normalizedDiscountedCumulativeGain&quot;: 3.14, # A metric to determine the goodness of a ranking calculated from the predicted confidence by comparing it to an ideal rank measured by the original ratings.
        },
        &quot;regressionMetrics&quot;: { # Evaluation metrics for regression and explicit feedback type matrix factorization models. # Populated for regression models and explicit feedback type matrix factorization models.
          &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
          &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
          &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
          &quot;medianAbsoluteError&quot;: 3.14, # Median absolute error.
          &quot;rSquared&quot;: 3.14, # R^2 score. This corresponds to r2_score in ML.EVALUATE.
        },
      },
      &quot;hparamTuningEvaluationMetrics&quot;: { # Evaluation metrics of a model. These are either computed on all training data or just the eval data based on whether eval data was used during training. These are not present for imported models. # Hyperparameter tuning evaluation metrics of this trial calculated on the eval data. Unlike evaluation_metrics, only the fields corresponding to the hparam_tuning_objectives are set.
        &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
          &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
            { # ARIMA model fitting metrics.
              &quot;aic&quot;: 3.14, # AIC.
              &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
              &quot;variance&quot;: 3.14, # Variance.
            },
          ],
          &quot;arimaSingleModelForecastingMetrics&quot;: [ # Repeated as there can be many metric sets (one for each model) in auto-arima and the large-scale case.
            { # Model evaluation metrics for a single ARIMA forecasting model.
              &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                &quot;aic&quot;: 3.14, # AIC.
                &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                &quot;variance&quot;: 3.14, # Variance.
              },
              &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
              &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
              &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
              &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
              &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
              },
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
              &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
                &quot;A String&quot;,
              ],
            },
          ],
          &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
            True or False,
          ],
          &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
            { # Arima order, can be used for both non-seasonal and seasonal parts.
              &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
              &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
              &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
            },
          ],
          &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
            &quot;A String&quot;,
          ],
          &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
            &quot;A String&quot;,
          ],
        },
        &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
            { # Confusion matrix for binary classification models.
              &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
              &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
              &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
              &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
              &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
              &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
              &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
              &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
              &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
            },
          ],
          &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
          &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
        },
        &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
          &quot;clusters&quot;: [ # Information for all clusters.
            { # Message containing the information about one cluster.
              &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
              &quot;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
              &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                { # Representative value of a single feature within the cluster.
                  &quot;categoricalValue&quot;: { # Representative value of a categorical feature. # The categorical feature value.
                    &quot;categoryCounts&quot;: [ # Counts of all categories for the categorical feature. If there are more than ten categories, we return top ten (by count) and return one more CategoryCount with category &quot;_OTHER_&quot; and count as aggregate counts of remaining categories.
                      { # Represents the count of a single category within the cluster.
                        &quot;category&quot;: &quot;A String&quot;, # The name of category.
                        &quot;count&quot;: &quot;A String&quot;, # The count of training samples matching the category within the cluster.
                      },
                    ],
                  },
                  &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                  &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                },
              ],
            },
          ],
          &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
          &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
        },
        &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
          &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
        },
        &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
            { # Confusion matrix for multi-class classification models.
              &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
              &quot;rows&quot;: [ # One row per actual label.
                { # A single row in the confusion matrix.
                  &quot;actualLabel&quot;: &quot;A String&quot;, # The original label of this row.
                  &quot;entries&quot;: [ # Info describing predicted label distribution.
                    { # A single entry in the confusion matrix.
                      &quot;itemCount&quot;: &quot;A String&quot;, # Number of items being predicted as this label.
                      &quot;predictedLabel&quot;: &quot;A String&quot;, # The predicted label. For confidence_threshold &gt; 0, we will also add an entry indicating the number of items under the confidence threshold.
                    },
                  ],
                },
              ],
            },
          ],
        },
        &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
          &quot;averageRank&quot;: 3.14, # Determines the goodness of a ranking by computing the percentile rank from the predicted confidence and dividing it by the original rank.
          &quot;meanAveragePrecision&quot;: 3.14, # Calculates a precision per user for all the items by ranking them and then averages all the precisions across all the users.
          &quot;meanSquaredError&quot;: 3.14, # Similar to the mean squared error computed in regression and explicit recommendation models except instead of computing the rating directly, the output from evaluate is computed against a preference which is 1 or 0 depending on if the rating exists or not.
          &quot;normalizedDiscountedCumulativeGain&quot;: 3.14, # A metric to determine the goodness of a ranking calculated from the predicted confidence by comparing it to an ideal rank measured by the original ratings.
        },
        &quot;regressionMetrics&quot;: { # Evaluation metrics for regression and explicit feedback type matrix factorization models. # Populated for regression models and explicit feedback type matrix factorization models.
          &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
          &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
          &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
          &quot;medianAbsoluteError&quot;: 3.14, # Median absolute error.
          &quot;rSquared&quot;: 3.14, # R^2 score. This corresponds to r2_score in ML.EVALUATE.
        },
      },
      &quot;hparams&quot;: { # Options used in model training. # The hyperprameters selected for this trial.
        &quot;activationFn&quot;: &quot;A String&quot;, # Activation function of the neural nets.
        &quot;adjustStepChanges&quot;: True or False, # If true, detect step changes and make data adjustment in the input time series.
        &quot;approxGlobalFeatureContrib&quot;: True or False, # Whether to use approximate feature contribution method in XGBoost model explanation for global explain.
        &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
        &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of the sum of non-seasonal p and q.
        &quot;autoArimaMinOrder&quot;: &quot;A String&quot;, # The min value of the sum of non-seasonal p and q.
        &quot;autoClassWeights&quot;: True or False, # Whether to calculate class weights automatically based on the popularity of each label.
        &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
        &quot;boosterType&quot;: &quot;A String&quot;, # Booster type for boosted tree models.
        &quot;budgetHours&quot;: 3.14, # Budget in hours for AutoML training.
        &quot;calculatePValues&quot;: True or False, # Whether or not p-value test should be computed for this model. Only available for linear and logistic regression models.
        &quot;categoryEncodingMethod&quot;: &quot;A String&quot;, # Categorical feature encoding method.
        &quot;cleanSpikesAndDips&quot;: True or False, # If true, clean spikes and dips in the input time series.
        &quot;colorSpace&quot;: &quot;A String&quot;, # Enums for color space, used for processing images in Object Table. See more details at https://www.tensorflow.org/io/tutorials/colorspace.
        &quot;colsampleBylevel&quot;: 3.14, # Subsample ratio of columns for each level for boosted tree models.
        &quot;colsampleBynode&quot;: 3.14, # Subsample ratio of columns for each node(split) for boosted tree models.
        &quot;colsampleBytree&quot;: 3.14, # Subsample ratio of columns when constructing each tree for boosted tree models.
        &quot;dartNormalizeType&quot;: &quot;A String&quot;, # Type of normalization algorithm for boosted tree models using dart booster.
        &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
        &quot;dataSplitColumn&quot;: &quot;A String&quot;, # The column to split data with. This column won&#x27;t be used as a feature. 1. When data_split_method is CUSTOM, the corresponding column should be boolean. The rows with true value tag are eval data, and the false are training data. 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows (from smallest to largest) in the corresponding column are used as training data, and the rest are eval data. It respects the order in Orderable data types: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
        &quot;dataSplitEvalFraction&quot;: 3.14, # The fraction of evaluation data over the whole input data. The rest of data will be used as training data. The format should be double. Accurate to two decimal places. Default value is 0.2.
        &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
        &quot;decomposeTimeSeries&quot;: True or False, # If true, perform decompose time series and save the results.
        &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
        &quot;dropout&quot;: 3.14, # Dropout probability for dnn models.
        &quot;earlyStop&quot;: True or False, # Whether to stop early when the loss doesn&#x27;t improve significantly any more (compared to min_relative_progress). Used only for iterative training algorithms.
        &quot;enableGlobalExplain&quot;: True or False, # If true, enable global explanation during training.
        &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
        &quot;fitIntercept&quot;: True or False, # Whether the model should include intercept during model training.
        &quot;hiddenUnits&quot;: [ # Hidden units for dnn models.
          &quot;A String&quot;,
        ],
        &quot;holidayRegion&quot;: &quot;A String&quot;, # The geographical region based on which the holidays are considered in time series modeling. If a valid value is specified, then holiday effects modeling is enabled.
        &quot;holidayRegions&quot;: [ # A list of geographical regions that are used for time series modeling.
          &quot;A String&quot;,
        ],
        &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
        &quot;hparamTuningObjectives&quot;: [ # The target evaluation metrics to optimize the hyperparameters for.
          &quot;A String&quot;,
        ],
        &quot;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
        &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
        &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
          &quot;A String&quot;,
        ],
        &quot;instanceWeightColumn&quot;: &quot;A String&quot;, # Name of the instance weight column for training data. This column isn&#x27;t be used as a feature.
        &quot;integratedGradientsNumSteps&quot;: &quot;A String&quot;, # Number of integral steps for the integrated gradients explain method.
        &quot;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
        &quot;kmeansInitializationColumn&quot;: &quot;A String&quot;, # The column used to provide the initial centroids for kmeans algorithm when kmeans_initialization_method is CUSTOM.
        &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
        &quot;l1RegActivation&quot;: 3.14, # L1 regularization coefficient to activations.
        &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
        &quot;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
        &quot;labelClassWeights&quot;: { # Weights associated with each label class, for rebalancing the training data. Only applicable for classification models.
          &quot;a_key&quot;: 3.14,
        },
        &quot;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
        &quot;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
        &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
        &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
        &quot;maxParallelTrials&quot;: &quot;A String&quot;, # Maximum number of trials to run in parallel.
        &quot;maxTimeSeriesLength&quot;: &quot;A String&quot;, # The maximum number of time points in a time series that can be used in modeling the trend component of the time series. Don&#x27;t use this option with the `timeSeriesLengthFraction` or `minTimeSeriesLength` options.
        &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree models.
        &quot;minRelativeProgress&quot;: 3.14, # When early_stop is true, stops training when accuracy improvement is less than &#x27;min_relative_progress&#x27;. Used only for iterative training algorithms.
        &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
        &quot;minTimeSeriesLength&quot;: &quot;A String&quot;, # The minimum number of time points in a time series that are used in modeling the trend component of the time series. If you use this option you must also set the `timeSeriesLengthFraction` option. This training option ensures that enough time points are available when you use `timeSeriesLengthFraction` in trend modeling. This is particularly important when forecasting multiple time series in a single query using `timeSeriesIdColumn`. If the total number of time points is less than the `minTimeSeriesLength` value, then the query uses all available time points.
        &quot;minTreeChildWeight&quot;: &quot;A String&quot;, # Minimum sum of instance weight needed in a child for boosted tree models.
        &quot;modelRegistry&quot;: &quot;A String&quot;, # The model registry.
        &quot;modelUri&quot;: &quot;A String&quot;, # Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
        &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # A specification of the non-seasonal part of the ARIMA model: the three components (p, d, q) are the AR order, the degree of differencing, and the MA order.
          &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
          &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
          &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
        },
        &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
        &quot;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
        &quot;numParallelTree&quot;: &quot;A String&quot;, # Number of parallel trees constructed during each iteration for boosted tree models.
        &quot;numPrincipalComponents&quot;: &quot;A String&quot;, # Number of principal components to keep in the PCA model. Must be &lt;= the number of features.
        &quot;numTrials&quot;: &quot;A String&quot;, # Number of trials to run this hyperparameter tuning job.
        &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
        &quot;optimizer&quot;: &quot;A String&quot;, # Optimizer used for training the neural nets.
        &quot;pcaExplainedVarianceRatio&quot;: 3.14, # The minimum ratio of cumulative explained variance that needs to be given by the PCA model.
        &quot;pcaSolver&quot;: &quot;A String&quot;, # The solver for PCA.
        &quot;sampledShapleyNumPaths&quot;: &quot;A String&quot;, # Number of paths for the sampled Shapley explain method.
        &quot;scaleFeatures&quot;: True or False, # If true, scale the feature values by dividing the feature standard deviation. Currently only apply to PCA.
        &quot;standardizeFeatures&quot;: True or False, # Whether to standardize numerical features. Default to true.
        &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
        &quot;tfVersion&quot;: &quot;A String&quot;, # Based on the selected TF version, the corresponding docker image is used to train external models.
        &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
        &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The time series id column that was used during ARIMA model training.
        &quot;timeSeriesIdColumns&quot;: [ # The time series id columns that were used during ARIMA model training.
          &quot;A String&quot;,
        ],
        &quot;timeSeriesLengthFraction&quot;: 3.14, # The fraction of the interpolated length of the time series that&#x27;s used to model the time series trend component. All of the time points of the time series are used to model the non-trend component. This training option accelerates modeling training without sacrificing much forecasting accuracy. You can use this option with `minTimeSeriesLength` but not with `maxTimeSeriesLength`.
        &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
        &quot;treeMethod&quot;: &quot;A String&quot;, # Tree construction algorithm for boosted tree models.
        &quot;trendSmoothingWindowSize&quot;: &quot;A String&quot;, # Smoothing window size for the trend component. When a positive value is specified, a center moving average smoothing is applied on the history trend. When the smoothing window is out of the boundary at the beginning or the end of the trend, the first element or the last element is padded to fill the smoothing window before the average is applied.
        &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
        &quot;vertexAiModelVersionAliases&quot;: [ # The version aliases to apply in Vertex AI model registry. Always overwrite if the version aliases exists in a existing model.
          &quot;A String&quot;,
        ],
        &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
        &quot;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
        &quot;xgboostVersion&quot;: &quot;A String&quot;, # User-selected XGBoost versions for training of XGBoost models.
      },
      &quot;startTimeMs&quot;: &quot;A String&quot;, # Starting time of the trial.
      &quot;status&quot;: &quot;A String&quot;, # The status of the trial.
      &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of trial.
      &quot;trialId&quot;: &quot;A String&quot;, # 1-based index of the trial.
    },
  ],
  &quot;labelColumns&quot;: [ # Output only. Label columns that were used to train this model. The output of the model will have a &quot;predicted_&quot; prefix to these columns.
    { # A field or a column.
      &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
      &quot;type&quot;: { # The data type of a variable such as a function argument. Examples include: * INT64: `{&quot;typeKind&quot;: &quot;INT64&quot;}` * ARRAY: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} } * STRUCT&gt;: { &quot;typeKind&quot;: &quot;STRUCT&quot;, &quot;structType&quot;: { &quot;fields&quot;: [ { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} }, { &quot;name&quot;: &quot;y&quot;, &quot;type&quot;: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;DATE&quot;} } } ] } } # Optional. The type of this parameter. Absent if not explicitly specified (e.g., CREATE FUNCTION statement can omit the return type; in this case the output parameter does not have this &quot;type&quot; field).
        &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
        &quot;rangeElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the range&#x27;s elements, if type_kind = &quot;RANGE&quot;.
        &quot;structType&quot;: { # The representation of a SQL STRUCT type. # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
          &quot;fields&quot;: [ # Fields within the struct.
            # Object with schema name: StandardSqlField
          ],
        },
        &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any GoogleSQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
      },
    },
  ],
  &quot;labels&quot;: { # The labels associated with this model. You can use these to organize and group your models. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Output only. The time when this model was last modified, in millisecs since the epoch.
  &quot;location&quot;: &quot;A String&quot;, # Output only. The geographic location where the model resides. This value is inherited from the dataset.
  &quot;modelReference&quot;: { # Required. Unique identifier for this model.
    &quot;datasetId&quot;: &quot;A String&quot;, # Required. The ID of the dataset containing this model.
    &quot;modelId&quot;: &quot;A String&quot;, # Required. The ID of the model. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
    &quot;projectId&quot;: &quot;A String&quot;, # Required. The ID of the project containing this model.
  },
  &quot;modelType&quot;: &quot;A String&quot;, # Output only. Type of the model resource.
  &quot;optimalTrialIds&quot;: [ # Output only. For single-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, it only contains the best trial. For multi-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, it contains all Pareto optimal trials sorted by trial_id.
    &quot;A String&quot;,
  ],
  &quot;remoteModelInfo&quot;: { # Remote Model Info # Output only. Remote model info
    &quot;connection&quot;: &quot;A String&quot;, # Output only. Fully qualified name of the user-provided connection object of the remote model. Format: ```&quot;projects/{project_id}/locations/{location_id}/connections/{connection_id}&quot;```
    &quot;endpoint&quot;: &quot;A String&quot;, # Output only. The endpoint for remote model.
    &quot;maxBatchingRows&quot;: &quot;A String&quot;, # Output only. Max number of rows in each batch sent to the remote service. If unset, the number of rows in each batch is set dynamically.
    &quot;remoteModelVersion&quot;: &quot;A String&quot;, # Output only. The model version for LLM.
    &quot;remoteServiceType&quot;: &quot;A String&quot;, # Output only. The remote service type for remote model.
    &quot;speechRecognizer&quot;: &quot;A String&quot;, # Output only. The name of the speech recognizer to use for speech recognition. The expected format is `projects/{project}/locations/{location}/recognizers/{recognizer}`. Customers can specify this field at model creation. If not specified, a default recognizer `projects/{model project}/locations/global/recognizers/_` will be used. See more details at [recognizers](https://cloud.google.com/speech-to-text/v2/docs/reference/rest/v2/projects.locations.recognizers)
  },
  &quot;trainingRuns&quot;: [ # Information for all training runs in increasing order of start_time.
    { # Information about a single training query run for the model.
      &quot;classLevelGlobalExplanations&quot;: [ # Output only. Global explanation contains the explanation of top features on the class level. Applies to classification models only.
        { # Global explanations containing the top most important features after training.
          &quot;classLabel&quot;: &quot;A String&quot;, # Class label for this set of global explanations. Will be empty/null for binary logistic and linear regression models. Sorted alphabetically in descending order.
          &quot;explanations&quot;: [ # A list of the top global explanations. Sorted by absolute value of attribution in descending order.
            { # Explanation for a single feature.
              &quot;attribution&quot;: 3.14, # Attribution of feature.
              &quot;featureName&quot;: &quot;A String&quot;, # The full feature name. For non-numerical features, will be formatted like `.`. Overall size of feature name will always be truncated to first 120 characters.
            },
          ],
        },
      ],
      &quot;dataSplitResult&quot;: { # Data split result. This contains references to the training and evaluation data tables that were used to train the model. # Output only. Data split result of the training run. Only set when the input data is actually split.
        &quot;evaluationTable&quot;: { # Table reference of the evaluation data after split.
          &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
          &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
          &quot;tableId&quot;: &quot;A String&quot;, # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
        },
        &quot;testTable&quot;: { # Table reference of the test data after split.
          &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
          &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
          &quot;tableId&quot;: &quot;A String&quot;, # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
        },
        &quot;trainingTable&quot;: { # Table reference of the training data after split.
          &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
          &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
          &quot;tableId&quot;: &quot;A String&quot;, # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
        },
      },
      &quot;evaluationMetrics&quot;: { # Evaluation metrics of a model. These are either computed on all training data or just the eval data based on whether eval data was used during training. These are not present for imported models. # Output only. The evaluation metrics over training/eval data that were computed at the end of training.
        &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
          &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
            { # ARIMA model fitting metrics.
              &quot;aic&quot;: 3.14, # AIC.
              &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
              &quot;variance&quot;: 3.14, # Variance.
            },
          ],
          &quot;arimaSingleModelForecastingMetrics&quot;: [ # Repeated as there can be many metric sets (one for each model) in auto-arima and the large-scale case.
            { # Model evaluation metrics for a single ARIMA forecasting model.
              &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                &quot;aic&quot;: 3.14, # AIC.
                &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                &quot;variance&quot;: 3.14, # Variance.
              },
              &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
              &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
              &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
              &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
              &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
              },
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
              &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
                &quot;A String&quot;,
              ],
            },
          ],
          &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
            True or False,
          ],
          &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
            { # Arima order, can be used for both non-seasonal and seasonal parts.
              &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
              &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
              &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
            },
          ],
          &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
            &quot;A String&quot;,
          ],
          &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
            &quot;A String&quot;,
          ],
        },
        &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
            { # Confusion matrix for binary classification models.
              &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
              &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
              &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
              &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
              &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
              &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
              &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
              &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
              &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
            },
          ],
          &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
          &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
        },
        &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
          &quot;clusters&quot;: [ # Information for all clusters.
            { # Message containing the information about one cluster.
              &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
              &quot;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
              &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                { # Representative value of a single feature within the cluster.
                  &quot;categoricalValue&quot;: { # Representative value of a categorical feature. # The categorical feature value.
                    &quot;categoryCounts&quot;: [ # Counts of all categories for the categorical feature. If there are more than ten categories, we return top ten (by count) and return one more CategoryCount with category &quot;_OTHER_&quot; and count as aggregate counts of remaining categories.
                      { # Represents the count of a single category within the cluster.
                        &quot;category&quot;: &quot;A String&quot;, # The name of category.
                        &quot;count&quot;: &quot;A String&quot;, # The count of training samples matching the category within the cluster.
                      },
                    ],
                  },
                  &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                  &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                },
              ],
            },
          ],
          &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
          &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
        },
        &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
          &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
        },
        &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
            { # Confusion matrix for multi-class classification models.
              &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
              &quot;rows&quot;: [ # One row per actual label.
                { # A single row in the confusion matrix.
                  &quot;actualLabel&quot;: &quot;A String&quot;, # The original label of this row.
                  &quot;entries&quot;: [ # Info describing predicted label distribution.
                    { # A single entry in the confusion matrix.
                      &quot;itemCount&quot;: &quot;A String&quot;, # Number of items being predicted as this label.
                      &quot;predictedLabel&quot;: &quot;A String&quot;, # The predicted label. For confidence_threshold &gt; 0, we will also add an entry indicating the number of items under the confidence threshold.
                    },
                  ],
                },
              ],
            },
          ],
        },
        &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
          &quot;averageRank&quot;: 3.14, # Determines the goodness of a ranking by computing the percentile rank from the predicted confidence and dividing it by the original rank.
          &quot;meanAveragePrecision&quot;: 3.14, # Calculates a precision per user for all the items by ranking them and then averages all the precisions across all the users.
          &quot;meanSquaredError&quot;: 3.14, # Similar to the mean squared error computed in regression and explicit recommendation models except instead of computing the rating directly, the output from evaluate is computed against a preference which is 1 or 0 depending on if the rating exists or not.
          &quot;normalizedDiscountedCumulativeGain&quot;: 3.14, # A metric to determine the goodness of a ranking calculated from the predicted confidence by comparing it to an ideal rank measured by the original ratings.
        },
        &quot;regressionMetrics&quot;: { # Evaluation metrics for regression and explicit feedback type matrix factorization models. # Populated for regression models and explicit feedback type matrix factorization models.
          &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
          &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
          &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
          &quot;medianAbsoluteError&quot;: 3.14, # Median absolute error.
          &quot;rSquared&quot;: 3.14, # R^2 score. This corresponds to r2_score in ML.EVALUATE.
        },
      },
      &quot;modelLevelGlobalExplanation&quot;: { # Global explanations containing the top most important features after training. # Output only. Global explanation contains the explanation of top features on the model level. Applies to both regression and classification models.
        &quot;classLabel&quot;: &quot;A String&quot;, # Class label for this set of global explanations. Will be empty/null for binary logistic and linear regression models. Sorted alphabetically in descending order.
        &quot;explanations&quot;: [ # A list of the top global explanations. Sorted by absolute value of attribution in descending order.
          { # Explanation for a single feature.
            &quot;attribution&quot;: 3.14, # Attribution of feature.
            &quot;featureName&quot;: &quot;A String&quot;, # The full feature name. For non-numerical features, will be formatted like `.`. Overall size of feature name will always be truncated to first 120 characters.
          },
        ],
      },
      &quot;results&quot;: [ # Output only. Output of each iteration run, results.size() &lt;= max_iterations.
        {
          &quot;durationMs&quot;: &quot;A String&quot;, # Time taken to run the iteration in milliseconds.
          &quot;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of iteration.
          &quot;index&quot;: 42, # Index of the iteration, 0 based.
          &quot;learnRate&quot;: 3.14, # Learn rate used for this iteration.
          &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
        },
      ],
      &quot;startTime&quot;: &quot;A String&quot;, # Output only. The start time of this training run.
      &quot;trainingOptions&quot;: { # Options used in model training. # Output only. Options that were used for this training run, includes user specified and default options that were used.
        &quot;activationFn&quot;: &quot;A String&quot;, # Activation function of the neural nets.
        &quot;adjustStepChanges&quot;: True or False, # If true, detect step changes and make data adjustment in the input time series.
        &quot;approxGlobalFeatureContrib&quot;: True or False, # Whether to use approximate feature contribution method in XGBoost model explanation for global explain.
        &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
        &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of the sum of non-seasonal p and q.
        &quot;autoArimaMinOrder&quot;: &quot;A String&quot;, # The min value of the sum of non-seasonal p and q.
        &quot;autoClassWeights&quot;: True or False, # Whether to calculate class weights automatically based on the popularity of each label.
        &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
        &quot;boosterType&quot;: &quot;A String&quot;, # Booster type for boosted tree models.
        &quot;budgetHours&quot;: 3.14, # Budget in hours for AutoML training.
        &quot;calculatePValues&quot;: True or False, # Whether or not p-value test should be computed for this model. Only available for linear and logistic regression models.
        &quot;categoryEncodingMethod&quot;: &quot;A String&quot;, # Categorical feature encoding method.
        &quot;cleanSpikesAndDips&quot;: True or False, # If true, clean spikes and dips in the input time series.
        &quot;colorSpace&quot;: &quot;A String&quot;, # Enums for color space, used for processing images in Object Table. See more details at https://www.tensorflow.org/io/tutorials/colorspace.
        &quot;colsampleBylevel&quot;: 3.14, # Subsample ratio of columns for each level for boosted tree models.
        &quot;colsampleBynode&quot;: 3.14, # Subsample ratio of columns for each node(split) for boosted tree models.
        &quot;colsampleBytree&quot;: 3.14, # Subsample ratio of columns when constructing each tree for boosted tree models.
        &quot;dartNormalizeType&quot;: &quot;A String&quot;, # Type of normalization algorithm for boosted tree models using dart booster.
        &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
        &quot;dataSplitColumn&quot;: &quot;A String&quot;, # The column to split data with. This column won&#x27;t be used as a feature. 1. When data_split_method is CUSTOM, the corresponding column should be boolean. The rows with true value tag are eval data, and the false are training data. 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows (from smallest to largest) in the corresponding column are used as training data, and the rest are eval data. It respects the order in Orderable data types: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
        &quot;dataSplitEvalFraction&quot;: 3.14, # The fraction of evaluation data over the whole input data. The rest of data will be used as training data. The format should be double. Accurate to two decimal places. Default value is 0.2.
        &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
        &quot;decomposeTimeSeries&quot;: True or False, # If true, perform decompose time series and save the results.
        &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
        &quot;dropout&quot;: 3.14, # Dropout probability for dnn models.
        &quot;earlyStop&quot;: True or False, # Whether to stop early when the loss doesn&#x27;t improve significantly any more (compared to min_relative_progress). Used only for iterative training algorithms.
        &quot;enableGlobalExplain&quot;: True or False, # If true, enable global explanation during training.
        &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
        &quot;fitIntercept&quot;: True or False, # Whether the model should include intercept during model training.
        &quot;hiddenUnits&quot;: [ # Hidden units for dnn models.
          &quot;A String&quot;,
        ],
        &quot;holidayRegion&quot;: &quot;A String&quot;, # The geographical region based on which the holidays are considered in time series modeling. If a valid value is specified, then holiday effects modeling is enabled.
        &quot;holidayRegions&quot;: [ # A list of geographical regions that are used for time series modeling.
          &quot;A String&quot;,
        ],
        &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
        &quot;hparamTuningObjectives&quot;: [ # The target evaluation metrics to optimize the hyperparameters for.
          &quot;A String&quot;,
        ],
        &quot;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
        &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
        &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
          &quot;A String&quot;,
        ],
        &quot;instanceWeightColumn&quot;: &quot;A String&quot;, # Name of the instance weight column for training data. This column isn&#x27;t be used as a feature.
        &quot;integratedGradientsNumSteps&quot;: &quot;A String&quot;, # Number of integral steps for the integrated gradients explain method.
        &quot;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
        &quot;kmeansInitializationColumn&quot;: &quot;A String&quot;, # The column used to provide the initial centroids for kmeans algorithm when kmeans_initialization_method is CUSTOM.
        &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
        &quot;l1RegActivation&quot;: 3.14, # L1 regularization coefficient to activations.
        &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
        &quot;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
        &quot;labelClassWeights&quot;: { # Weights associated with each label class, for rebalancing the training data. Only applicable for classification models.
          &quot;a_key&quot;: 3.14,
        },
        &quot;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
        &quot;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
        &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
        &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
        &quot;maxParallelTrials&quot;: &quot;A String&quot;, # Maximum number of trials to run in parallel.
        &quot;maxTimeSeriesLength&quot;: &quot;A String&quot;, # The maximum number of time points in a time series that can be used in modeling the trend component of the time series. Don&#x27;t use this option with the `timeSeriesLengthFraction` or `minTimeSeriesLength` options.
        &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree models.
        &quot;minRelativeProgress&quot;: 3.14, # When early_stop is true, stops training when accuracy improvement is less than &#x27;min_relative_progress&#x27;. Used only for iterative training algorithms.
        &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
        &quot;minTimeSeriesLength&quot;: &quot;A String&quot;, # The minimum number of time points in a time series that are used in modeling the trend component of the time series. If you use this option you must also set the `timeSeriesLengthFraction` option. This training option ensures that enough time points are available when you use `timeSeriesLengthFraction` in trend modeling. This is particularly important when forecasting multiple time series in a single query using `timeSeriesIdColumn`. If the total number of time points is less than the `minTimeSeriesLength` value, then the query uses all available time points.
        &quot;minTreeChildWeight&quot;: &quot;A String&quot;, # Minimum sum of instance weight needed in a child for boosted tree models.
        &quot;modelRegistry&quot;: &quot;A String&quot;, # The model registry.
        &quot;modelUri&quot;: &quot;A String&quot;, # Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
        &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # A specification of the non-seasonal part of the ARIMA model: the three components (p, d, q) are the AR order, the degree of differencing, and the MA order.
          &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
          &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
          &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
        },
        &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
        &quot;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
        &quot;numParallelTree&quot;: &quot;A String&quot;, # Number of parallel trees constructed during each iteration for boosted tree models.
        &quot;numPrincipalComponents&quot;: &quot;A String&quot;, # Number of principal components to keep in the PCA model. Must be &lt;= the number of features.
        &quot;numTrials&quot;: &quot;A String&quot;, # Number of trials to run this hyperparameter tuning job.
        &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
        &quot;optimizer&quot;: &quot;A String&quot;, # Optimizer used for training the neural nets.
        &quot;pcaExplainedVarianceRatio&quot;: 3.14, # The minimum ratio of cumulative explained variance that needs to be given by the PCA model.
        &quot;pcaSolver&quot;: &quot;A String&quot;, # The solver for PCA.
        &quot;sampledShapleyNumPaths&quot;: &quot;A String&quot;, # Number of paths for the sampled Shapley explain method.
        &quot;scaleFeatures&quot;: True or False, # If true, scale the feature values by dividing the feature standard deviation. Currently only apply to PCA.
        &quot;standardizeFeatures&quot;: True or False, # Whether to standardize numerical features. Default to true.
        &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
        &quot;tfVersion&quot;: &quot;A String&quot;, # Based on the selected TF version, the corresponding docker image is used to train external models.
        &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
        &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The time series id column that was used during ARIMA model training.
        &quot;timeSeriesIdColumns&quot;: [ # The time series id columns that were used during ARIMA model training.
          &quot;A String&quot;,
        ],
        &quot;timeSeriesLengthFraction&quot;: 3.14, # The fraction of the interpolated length of the time series that&#x27;s used to model the time series trend component. All of the time points of the time series are used to model the non-trend component. This training option accelerates modeling training without sacrificing much forecasting accuracy. You can use this option with `minTimeSeriesLength` but not with `maxTimeSeriesLength`.
        &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
        &quot;treeMethod&quot;: &quot;A String&quot;, # Tree construction algorithm for boosted tree models.
        &quot;trendSmoothingWindowSize&quot;: &quot;A String&quot;, # Smoothing window size for the trend component. When a positive value is specified, a center moving average smoothing is applied on the history trend. When the smoothing window is out of the boundary at the beginning or the end of the trend, the first element or the last element is padded to fill the smoothing window before the average is applied.
        &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
        &quot;vertexAiModelVersionAliases&quot;: [ # The version aliases to apply in Vertex AI model registry. Always overwrite if the version aliases exists in a existing model.
          &quot;A String&quot;,
        ],
        &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
        &quot;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
        &quot;xgboostVersion&quot;: &quot;A String&quot;, # User-selected XGBoost versions for training of XGBoost models.
      },
      &quot;trainingStartTime&quot;: &quot;A String&quot;, # Output only. The start time of this training run, in milliseconds since epoch.
      &quot;vertexAiModelId&quot;: &quot;A String&quot;, # The model id in the [Vertex AI Model Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction) for this training run.
      &quot;vertexAiModelVersion&quot;: &quot;A String&quot;, # Output only. The model version in the [Vertex AI Model Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction) for this training run.
    },
  ],
  &quot;transformColumns&quot;: [ # Output only. This field will be populated if a TRANSFORM clause was used to train a model. TRANSFORM clause (if used) takes feature_columns as input and outputs transform_columns. transform_columns then are used to train the model.
    { # Information about a single transform column.
      &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the column.
      &quot;transformSql&quot;: &quot;A String&quot;, # Output only. The SQL expression used in the column transform.
      &quot;type&quot;: { # The data type of a variable such as a function argument. Examples include: * INT64: `{&quot;typeKind&quot;: &quot;INT64&quot;}` * ARRAY: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} } * STRUCT&gt;: { &quot;typeKind&quot;: &quot;STRUCT&quot;, &quot;structType&quot;: { &quot;fields&quot;: [ { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} }, { &quot;name&quot;: &quot;y&quot;, &quot;type&quot;: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;DATE&quot;} } } ] } } # Output only. Data type of the column after the transform.
        &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
        &quot;rangeElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the range&#x27;s elements, if type_kind = &quot;RANGE&quot;.
        &quot;structType&quot;: { # The representation of a SQL STRUCT type. # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
          &quot;fields&quot;: [ # Fields within the struct.
            # Object with schema name: StandardSqlField
          ],
        },
        &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any GoogleSQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
      },
    },
  ],
}


Returns:
  An object of the form:

    {
  &quot;bestTrialId&quot;: &quot;A String&quot;, # The best trial_id across all training runs.
  &quot;creationTime&quot;: &quot;A String&quot;, # Output only. The time when this model was created, in millisecs since the epoch.
  &quot;defaultTrialId&quot;: &quot;A String&quot;, # Output only. The default trial_id to use in TVFs when the trial_id is not passed in. For single-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, this is the best trial ID. For multi-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, this is the smallest trial ID among all Pareto optimal trials.
  &quot;description&quot;: &quot;A String&quot;, # Optional. A user-friendly description of this model.
  &quot;encryptionConfiguration&quot;: { # Custom encryption configuration (e.g., Cloud KMS keys). This shows the encryption configuration of the model data while stored in BigQuery storage. This field can be used with PatchModel to update encryption key for an already encrypted model.
    &quot;kmsKeyName&quot;: &quot;A String&quot;, # Optional. Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key.
  },
  &quot;etag&quot;: &quot;A String&quot;, # Output only. A hash of this resource.
  &quot;expirationTime&quot;: &quot;A String&quot;, # Optional. The time when this model expires, in milliseconds since the epoch. If not present, the model will persist indefinitely. Expired models will be deleted and their storage reclaimed. The defaultTableExpirationMs property of the encapsulating dataset can be used to set a default expirationTime on newly created models.
  &quot;featureColumns&quot;: [ # Output only. Input feature columns for the model inference. If the model is trained with TRANSFORM clause, these are the input of the TRANSFORM clause.
    { # A field or a column.
      &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
      &quot;type&quot;: { # The data type of a variable such as a function argument. Examples include: * INT64: `{&quot;typeKind&quot;: &quot;INT64&quot;}` * ARRAY: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} } * STRUCT&gt;: { &quot;typeKind&quot;: &quot;STRUCT&quot;, &quot;structType&quot;: { &quot;fields&quot;: [ { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} }, { &quot;name&quot;: &quot;y&quot;, &quot;type&quot;: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;DATE&quot;} } } ] } } # Optional. The type of this parameter. Absent if not explicitly specified (e.g., CREATE FUNCTION statement can omit the return type; in this case the output parameter does not have this &quot;type&quot; field).
        &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
        &quot;rangeElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the range&#x27;s elements, if type_kind = &quot;RANGE&quot;.
        &quot;structType&quot;: { # The representation of a SQL STRUCT type. # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
          &quot;fields&quot;: [ # Fields within the struct.
            # Object with schema name: StandardSqlField
          ],
        },
        &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any GoogleSQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
      },
    },
  ],
  &quot;friendlyName&quot;: &quot;A String&quot;, # Optional. A descriptive name for this model.
  &quot;hparamSearchSpaces&quot;: { # Hyperparameter search spaces. These should be a subset of training_options. # Output only. All hyperparameter search spaces in this model.
    &quot;activationFn&quot;: { # Search space for string and enum. # Activation functions of neural network models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;batchSize&quot;: { # Search space for an int hyperparameter. # Mini batch sample size.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;boosterType&quot;: { # Search space for string and enum. # Booster type for boosted tree models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;colsampleBylevel&quot;: { # Search space for a double hyperparameter. # Subsample ratio of columns for each level for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;colsampleBynode&quot;: { # Search space for a double hyperparameter. # Subsample ratio of columns for each node(split) for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;colsampleBytree&quot;: { # Search space for a double hyperparameter. # Subsample ratio of columns when constructing each tree for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;dartNormalizeType&quot;: { # Search space for string and enum. # Dart normalization type for boosted tree models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;dropout&quot;: { # Search space for a double hyperparameter. # Dropout probability for dnn model training and boosted tree models using dart booster.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;hiddenUnits&quot;: { # Search space for int array. # Hidden units for neural network models.
      &quot;candidates&quot;: [ # Candidates for the int array parameter.
        { # An array of int.
          &quot;elements&quot;: [ # Elements in the int array.
            &quot;A String&quot;,
          ],
        },
      ],
    },
    &quot;l1Reg&quot;: { # Search space for a double hyperparameter. # L1 regularization coefficient.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;l2Reg&quot;: { # Search space for a double hyperparameter. # L2 regularization coefficient.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;learnRate&quot;: { # Search space for a double hyperparameter. # Learning rate of training jobs.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;maxTreeDepth&quot;: { # Search space for an int hyperparameter. # Maximum depth of a tree for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;minSplitLoss&quot;: { # Search space for a double hyperparameter. # Minimum split loss for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;minTreeChildWeight&quot;: { # Search space for an int hyperparameter. # Minimum sum of instance weight needed in a child for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;numClusters&quot;: { # Search space for an int hyperparameter. # Number of clusters for k-means.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;numFactors&quot;: { # Search space for an int hyperparameter. # Number of latent factors to train on.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;numParallelTree&quot;: { # Search space for an int hyperparameter. # Number of parallel trees for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of an int hyperparameter. # Candidates of the int hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the int parameter in increasing order.
          &quot;A String&quot;,
        ],
      },
      &quot;range&quot;: { # Range of an int hyperparameter. # Range of the int hyperparameter.
        &quot;max&quot;: &quot;A String&quot;, # Max value of the int parameter.
        &quot;min&quot;: &quot;A String&quot;, # Min value of the int parameter.
      },
    },
    &quot;optimizer&quot;: { # Search space for string and enum. # Optimizer of TF models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;subsample&quot;: { # Search space for a double hyperparameter. # Subsample the training data to grow tree to prevent overfitting for boosted tree models.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
    &quot;treeMethod&quot;: { # Search space for string and enum. # Tree construction algorithm for boosted tree models.
      &quot;candidates&quot;: [ # Canididates for the string or enum parameter in lower case.
        &quot;A String&quot;,
      ],
    },
    &quot;walsAlpha&quot;: { # Search space for a double hyperparameter. # Hyperparameter for matrix factoration when implicit feedback type is specified.
      &quot;candidates&quot;: { # Discrete candidates of a double hyperparameter. # Candidates of the double hyperparameter.
        &quot;candidates&quot;: [ # Candidates for the double parameter in increasing order.
          3.14,
        ],
      },
      &quot;range&quot;: { # Range of a double hyperparameter. # Range of the double hyperparameter.
        &quot;max&quot;: 3.14, # Max value of the double parameter.
        &quot;min&quot;: 3.14, # Min value of the double parameter.
      },
    },
  },
  &quot;hparamTrials&quot;: [ # Output only. Trials of a [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) model sorted by trial_id.
    { # Training info of a trial in [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models.
      &quot;endTimeMs&quot;: &quot;A String&quot;, # Ending time of the trial.
      &quot;errorMessage&quot;: &quot;A String&quot;, # Error message for FAILED and INFEASIBLE trial.
      &quot;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of trial.
      &quot;evaluationMetrics&quot;: { # Evaluation metrics of a model. These are either computed on all training data or just the eval data based on whether eval data was used during training. These are not present for imported models. # Evaluation metrics of this trial calculated on the test data. Empty in Job API.
        &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
          &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
            { # ARIMA model fitting metrics.
              &quot;aic&quot;: 3.14, # AIC.
              &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
              &quot;variance&quot;: 3.14, # Variance.
            },
          ],
          &quot;arimaSingleModelForecastingMetrics&quot;: [ # Repeated as there can be many metric sets (one for each model) in auto-arima and the large-scale case.
            { # Model evaluation metrics for a single ARIMA forecasting model.
              &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                &quot;aic&quot;: 3.14, # AIC.
                &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                &quot;variance&quot;: 3.14, # Variance.
              },
              &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
              &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
              &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
              &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
              &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
              },
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
              &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
                &quot;A String&quot;,
              ],
            },
          ],
          &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
            True or False,
          ],
          &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
            { # Arima order, can be used for both non-seasonal and seasonal parts.
              &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
              &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
              &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
            },
          ],
          &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
            &quot;A String&quot;,
          ],
          &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
            &quot;A String&quot;,
          ],
        },
        &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
            { # Confusion matrix for binary classification models.
              &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
              &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
              &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
              &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
              &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
              &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
              &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
              &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
              &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
            },
          ],
          &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
          &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
        },
        &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
          &quot;clusters&quot;: [ # Information for all clusters.
            { # Message containing the information about one cluster.
              &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
              &quot;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
              &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                { # Representative value of a single feature within the cluster.
                  &quot;categoricalValue&quot;: { # Representative value of a categorical feature. # The categorical feature value.
                    &quot;categoryCounts&quot;: [ # Counts of all categories for the categorical feature. If there are more than ten categories, we return top ten (by count) and return one more CategoryCount with category &quot;_OTHER_&quot; and count as aggregate counts of remaining categories.
                      { # Represents the count of a single category within the cluster.
                        &quot;category&quot;: &quot;A String&quot;, # The name of category.
                        &quot;count&quot;: &quot;A String&quot;, # The count of training samples matching the category within the cluster.
                      },
                    ],
                  },
                  &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                  &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                },
              ],
            },
          ],
          &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
          &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
        },
        &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
          &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
        },
        &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
            { # Confusion matrix for multi-class classification models.
              &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
              &quot;rows&quot;: [ # One row per actual label.
                { # A single row in the confusion matrix.
                  &quot;actualLabel&quot;: &quot;A String&quot;, # The original label of this row.
                  &quot;entries&quot;: [ # Info describing predicted label distribution.
                    { # A single entry in the confusion matrix.
                      &quot;itemCount&quot;: &quot;A String&quot;, # Number of items being predicted as this label.
                      &quot;predictedLabel&quot;: &quot;A String&quot;, # The predicted label. For confidence_threshold &gt; 0, we will also add an entry indicating the number of items under the confidence threshold.
                    },
                  ],
                },
              ],
            },
          ],
        },
        &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
          &quot;averageRank&quot;: 3.14, # Determines the goodness of a ranking by computing the percentile rank from the predicted confidence and dividing it by the original rank.
          &quot;meanAveragePrecision&quot;: 3.14, # Calculates a precision per user for all the items by ranking them and then averages all the precisions across all the users.
          &quot;meanSquaredError&quot;: 3.14, # Similar to the mean squared error computed in regression and explicit recommendation models except instead of computing the rating directly, the output from evaluate is computed against a preference which is 1 or 0 depending on if the rating exists or not.
          &quot;normalizedDiscountedCumulativeGain&quot;: 3.14, # A metric to determine the goodness of a ranking calculated from the predicted confidence by comparing it to an ideal rank measured by the original ratings.
        },
        &quot;regressionMetrics&quot;: { # Evaluation metrics for regression and explicit feedback type matrix factorization models. # Populated for regression models and explicit feedback type matrix factorization models.
          &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
          &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
          &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
          &quot;medianAbsoluteError&quot;: 3.14, # Median absolute error.
          &quot;rSquared&quot;: 3.14, # R^2 score. This corresponds to r2_score in ML.EVALUATE.
        },
      },
      &quot;hparamTuningEvaluationMetrics&quot;: { # Evaluation metrics of a model. These are either computed on all training data or just the eval data based on whether eval data was used during training. These are not present for imported models. # Hyperparameter tuning evaluation metrics of this trial calculated on the eval data. Unlike evaluation_metrics, only the fields corresponding to the hparam_tuning_objectives are set.
        &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
          &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
            { # ARIMA model fitting metrics.
              &quot;aic&quot;: 3.14, # AIC.
              &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
              &quot;variance&quot;: 3.14, # Variance.
            },
          ],
          &quot;arimaSingleModelForecastingMetrics&quot;: [ # Repeated as there can be many metric sets (one for each model) in auto-arima and the large-scale case.
            { # Model evaluation metrics for a single ARIMA forecasting model.
              &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                &quot;aic&quot;: 3.14, # AIC.
                &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                &quot;variance&quot;: 3.14, # Variance.
              },
              &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
              &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
              &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
              &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
              &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
              },
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
              &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
                &quot;A String&quot;,
              ],
            },
          ],
          &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
            True or False,
          ],
          &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
            { # Arima order, can be used for both non-seasonal and seasonal parts.
              &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
              &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
              &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
            },
          ],
          &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
            &quot;A String&quot;,
          ],
          &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
            &quot;A String&quot;,
          ],
        },
        &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
            { # Confusion matrix for binary classification models.
              &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
              &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
              &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
              &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
              &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
              &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
              &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
              &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
              &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
            },
          ],
          &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
          &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
        },
        &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
          &quot;clusters&quot;: [ # Information for all clusters.
            { # Message containing the information about one cluster.
              &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
              &quot;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
              &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                { # Representative value of a single feature within the cluster.
                  &quot;categoricalValue&quot;: { # Representative value of a categorical feature. # The categorical feature value.
                    &quot;categoryCounts&quot;: [ # Counts of all categories for the categorical feature. If there are more than ten categories, we return top ten (by count) and return one more CategoryCount with category &quot;_OTHER_&quot; and count as aggregate counts of remaining categories.
                      { # Represents the count of a single category within the cluster.
                        &quot;category&quot;: &quot;A String&quot;, # The name of category.
                        &quot;count&quot;: &quot;A String&quot;, # The count of training samples matching the category within the cluster.
                      },
                    ],
                  },
                  &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                  &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                },
              ],
            },
          ],
          &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
          &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
        },
        &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
          &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
        },
        &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
            { # Confusion matrix for multi-class classification models.
              &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
              &quot;rows&quot;: [ # One row per actual label.
                { # A single row in the confusion matrix.
                  &quot;actualLabel&quot;: &quot;A String&quot;, # The original label of this row.
                  &quot;entries&quot;: [ # Info describing predicted label distribution.
                    { # A single entry in the confusion matrix.
                      &quot;itemCount&quot;: &quot;A String&quot;, # Number of items being predicted as this label.
                      &quot;predictedLabel&quot;: &quot;A String&quot;, # The predicted label. For confidence_threshold &gt; 0, we will also add an entry indicating the number of items under the confidence threshold.
                    },
                  ],
                },
              ],
            },
          ],
        },
        &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
          &quot;averageRank&quot;: 3.14, # Determines the goodness of a ranking by computing the percentile rank from the predicted confidence and dividing it by the original rank.
          &quot;meanAveragePrecision&quot;: 3.14, # Calculates a precision per user for all the items by ranking them and then averages all the precisions across all the users.
          &quot;meanSquaredError&quot;: 3.14, # Similar to the mean squared error computed in regression and explicit recommendation models except instead of computing the rating directly, the output from evaluate is computed against a preference which is 1 or 0 depending on if the rating exists or not.
          &quot;normalizedDiscountedCumulativeGain&quot;: 3.14, # A metric to determine the goodness of a ranking calculated from the predicted confidence by comparing it to an ideal rank measured by the original ratings.
        },
        &quot;regressionMetrics&quot;: { # Evaluation metrics for regression and explicit feedback type matrix factorization models. # Populated for regression models and explicit feedback type matrix factorization models.
          &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
          &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
          &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
          &quot;medianAbsoluteError&quot;: 3.14, # Median absolute error.
          &quot;rSquared&quot;: 3.14, # R^2 score. This corresponds to r2_score in ML.EVALUATE.
        },
      },
      &quot;hparams&quot;: { # Options used in model training. # The hyperprameters selected for this trial.
        &quot;activationFn&quot;: &quot;A String&quot;, # Activation function of the neural nets.
        &quot;adjustStepChanges&quot;: True or False, # If true, detect step changes and make data adjustment in the input time series.
        &quot;approxGlobalFeatureContrib&quot;: True or False, # Whether to use approximate feature contribution method in XGBoost model explanation for global explain.
        &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
        &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of the sum of non-seasonal p and q.
        &quot;autoArimaMinOrder&quot;: &quot;A String&quot;, # The min value of the sum of non-seasonal p and q.
        &quot;autoClassWeights&quot;: True or False, # Whether to calculate class weights automatically based on the popularity of each label.
        &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
        &quot;boosterType&quot;: &quot;A String&quot;, # Booster type for boosted tree models.
        &quot;budgetHours&quot;: 3.14, # Budget in hours for AutoML training.
        &quot;calculatePValues&quot;: True or False, # Whether or not p-value test should be computed for this model. Only available for linear and logistic regression models.
        &quot;categoryEncodingMethod&quot;: &quot;A String&quot;, # Categorical feature encoding method.
        &quot;cleanSpikesAndDips&quot;: True or False, # If true, clean spikes and dips in the input time series.
        &quot;colorSpace&quot;: &quot;A String&quot;, # Enums for color space, used for processing images in Object Table. See more details at https://www.tensorflow.org/io/tutorials/colorspace.
        &quot;colsampleBylevel&quot;: 3.14, # Subsample ratio of columns for each level for boosted tree models.
        &quot;colsampleBynode&quot;: 3.14, # Subsample ratio of columns for each node(split) for boosted tree models.
        &quot;colsampleBytree&quot;: 3.14, # Subsample ratio of columns when constructing each tree for boosted tree models.
        &quot;dartNormalizeType&quot;: &quot;A String&quot;, # Type of normalization algorithm for boosted tree models using dart booster.
        &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
        &quot;dataSplitColumn&quot;: &quot;A String&quot;, # The column to split data with. This column won&#x27;t be used as a feature. 1. When data_split_method is CUSTOM, the corresponding column should be boolean. The rows with true value tag are eval data, and the false are training data. 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows (from smallest to largest) in the corresponding column are used as training data, and the rest are eval data. It respects the order in Orderable data types: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
        &quot;dataSplitEvalFraction&quot;: 3.14, # The fraction of evaluation data over the whole input data. The rest of data will be used as training data. The format should be double. Accurate to two decimal places. Default value is 0.2.
        &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
        &quot;decomposeTimeSeries&quot;: True or False, # If true, perform decompose time series and save the results.
        &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
        &quot;dropout&quot;: 3.14, # Dropout probability for dnn models.
        &quot;earlyStop&quot;: True or False, # Whether to stop early when the loss doesn&#x27;t improve significantly any more (compared to min_relative_progress). Used only for iterative training algorithms.
        &quot;enableGlobalExplain&quot;: True or False, # If true, enable global explanation during training.
        &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
        &quot;fitIntercept&quot;: True or False, # Whether the model should include intercept during model training.
        &quot;hiddenUnits&quot;: [ # Hidden units for dnn models.
          &quot;A String&quot;,
        ],
        &quot;holidayRegion&quot;: &quot;A String&quot;, # The geographical region based on which the holidays are considered in time series modeling. If a valid value is specified, then holiday effects modeling is enabled.
        &quot;holidayRegions&quot;: [ # A list of geographical regions that are used for time series modeling.
          &quot;A String&quot;,
        ],
        &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
        &quot;hparamTuningObjectives&quot;: [ # The target evaluation metrics to optimize the hyperparameters for.
          &quot;A String&quot;,
        ],
        &quot;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
        &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
        &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
          &quot;A String&quot;,
        ],
        &quot;instanceWeightColumn&quot;: &quot;A String&quot;, # Name of the instance weight column for training data. This column isn&#x27;t be used as a feature.
        &quot;integratedGradientsNumSteps&quot;: &quot;A String&quot;, # Number of integral steps for the integrated gradients explain method.
        &quot;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
        &quot;kmeansInitializationColumn&quot;: &quot;A String&quot;, # The column used to provide the initial centroids for kmeans algorithm when kmeans_initialization_method is CUSTOM.
        &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
        &quot;l1RegActivation&quot;: 3.14, # L1 regularization coefficient to activations.
        &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
        &quot;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
        &quot;labelClassWeights&quot;: { # Weights associated with each label class, for rebalancing the training data. Only applicable for classification models.
          &quot;a_key&quot;: 3.14,
        },
        &quot;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
        &quot;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
        &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
        &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
        &quot;maxParallelTrials&quot;: &quot;A String&quot;, # Maximum number of trials to run in parallel.
        &quot;maxTimeSeriesLength&quot;: &quot;A String&quot;, # The maximum number of time points in a time series that can be used in modeling the trend component of the time series. Don&#x27;t use this option with the `timeSeriesLengthFraction` or `minTimeSeriesLength` options.
        &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree models.
        &quot;minRelativeProgress&quot;: 3.14, # When early_stop is true, stops training when accuracy improvement is less than &#x27;min_relative_progress&#x27;. Used only for iterative training algorithms.
        &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
        &quot;minTimeSeriesLength&quot;: &quot;A String&quot;, # The minimum number of time points in a time series that are used in modeling the trend component of the time series. If you use this option you must also set the `timeSeriesLengthFraction` option. This training option ensures that enough time points are available when you use `timeSeriesLengthFraction` in trend modeling. This is particularly important when forecasting multiple time series in a single query using `timeSeriesIdColumn`. If the total number of time points is less than the `minTimeSeriesLength` value, then the query uses all available time points.
        &quot;minTreeChildWeight&quot;: &quot;A String&quot;, # Minimum sum of instance weight needed in a child for boosted tree models.
        &quot;modelRegistry&quot;: &quot;A String&quot;, # The model registry.
        &quot;modelUri&quot;: &quot;A String&quot;, # Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
        &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # A specification of the non-seasonal part of the ARIMA model: the three components (p, d, q) are the AR order, the degree of differencing, and the MA order.
          &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
          &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
          &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
        },
        &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
        &quot;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
        &quot;numParallelTree&quot;: &quot;A String&quot;, # Number of parallel trees constructed during each iteration for boosted tree models.
        &quot;numPrincipalComponents&quot;: &quot;A String&quot;, # Number of principal components to keep in the PCA model. Must be &lt;= the number of features.
        &quot;numTrials&quot;: &quot;A String&quot;, # Number of trials to run this hyperparameter tuning job.
        &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
        &quot;optimizer&quot;: &quot;A String&quot;, # Optimizer used for training the neural nets.
        &quot;pcaExplainedVarianceRatio&quot;: 3.14, # The minimum ratio of cumulative explained variance that needs to be given by the PCA model.
        &quot;pcaSolver&quot;: &quot;A String&quot;, # The solver for PCA.
        &quot;sampledShapleyNumPaths&quot;: &quot;A String&quot;, # Number of paths for the sampled Shapley explain method.
        &quot;scaleFeatures&quot;: True or False, # If true, scale the feature values by dividing the feature standard deviation. Currently only apply to PCA.
        &quot;standardizeFeatures&quot;: True or False, # Whether to standardize numerical features. Default to true.
        &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
        &quot;tfVersion&quot;: &quot;A String&quot;, # Based on the selected TF version, the corresponding docker image is used to train external models.
        &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
        &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The time series id column that was used during ARIMA model training.
        &quot;timeSeriesIdColumns&quot;: [ # The time series id columns that were used during ARIMA model training.
          &quot;A String&quot;,
        ],
        &quot;timeSeriesLengthFraction&quot;: 3.14, # The fraction of the interpolated length of the time series that&#x27;s used to model the time series trend component. All of the time points of the time series are used to model the non-trend component. This training option accelerates modeling training without sacrificing much forecasting accuracy. You can use this option with `minTimeSeriesLength` but not with `maxTimeSeriesLength`.
        &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
        &quot;treeMethod&quot;: &quot;A String&quot;, # Tree construction algorithm for boosted tree models.
        &quot;trendSmoothingWindowSize&quot;: &quot;A String&quot;, # Smoothing window size for the trend component. When a positive value is specified, a center moving average smoothing is applied on the history trend. When the smoothing window is out of the boundary at the beginning or the end of the trend, the first element or the last element is padded to fill the smoothing window before the average is applied.
        &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
        &quot;vertexAiModelVersionAliases&quot;: [ # The version aliases to apply in Vertex AI model registry. Always overwrite if the version aliases exists in a existing model.
          &quot;A String&quot;,
        ],
        &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
        &quot;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
        &quot;xgboostVersion&quot;: &quot;A String&quot;, # User-selected XGBoost versions for training of XGBoost models.
      },
      &quot;startTimeMs&quot;: &quot;A String&quot;, # Starting time of the trial.
      &quot;status&quot;: &quot;A String&quot;, # The status of the trial.
      &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of trial.
      &quot;trialId&quot;: &quot;A String&quot;, # 1-based index of the trial.
    },
  ],
  &quot;labelColumns&quot;: [ # Output only. Label columns that were used to train this model. The output of the model will have a &quot;predicted_&quot; prefix to these columns.
    { # A field or a column.
      &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
      &quot;type&quot;: { # The data type of a variable such as a function argument. Examples include: * INT64: `{&quot;typeKind&quot;: &quot;INT64&quot;}` * ARRAY: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} } * STRUCT&gt;: { &quot;typeKind&quot;: &quot;STRUCT&quot;, &quot;structType&quot;: { &quot;fields&quot;: [ { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} }, { &quot;name&quot;: &quot;y&quot;, &quot;type&quot;: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;DATE&quot;} } } ] } } # Optional. The type of this parameter. Absent if not explicitly specified (e.g., CREATE FUNCTION statement can omit the return type; in this case the output parameter does not have this &quot;type&quot; field).
        &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
        &quot;rangeElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the range&#x27;s elements, if type_kind = &quot;RANGE&quot;.
        &quot;structType&quot;: { # The representation of a SQL STRUCT type. # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
          &quot;fields&quot;: [ # Fields within the struct.
            # Object with schema name: StandardSqlField
          ],
        },
        &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any GoogleSQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
      },
    },
  ],
  &quot;labels&quot;: { # The labels associated with this model. You can use these to organize and group your models. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Output only. The time when this model was last modified, in millisecs since the epoch.
  &quot;location&quot;: &quot;A String&quot;, # Output only. The geographic location where the model resides. This value is inherited from the dataset.
  &quot;modelReference&quot;: { # Required. Unique identifier for this model.
    &quot;datasetId&quot;: &quot;A String&quot;, # Required. The ID of the dataset containing this model.
    &quot;modelId&quot;: &quot;A String&quot;, # Required. The ID of the model. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
    &quot;projectId&quot;: &quot;A String&quot;, # Required. The ID of the project containing this model.
  },
  &quot;modelType&quot;: &quot;A String&quot;, # Output only. Type of the model resource.
  &quot;optimalTrialIds&quot;: [ # Output only. For single-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, it only contains the best trial. For multi-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, it contains all Pareto optimal trials sorted by trial_id.
    &quot;A String&quot;,
  ],
  &quot;remoteModelInfo&quot;: { # Remote Model Info # Output only. Remote model info
    &quot;connection&quot;: &quot;A String&quot;, # Output only. Fully qualified name of the user-provided connection object of the remote model. Format: ```&quot;projects/{project_id}/locations/{location_id}/connections/{connection_id}&quot;```
    &quot;endpoint&quot;: &quot;A String&quot;, # Output only. The endpoint for remote model.
    &quot;maxBatchingRows&quot;: &quot;A String&quot;, # Output only. Max number of rows in each batch sent to the remote service. If unset, the number of rows in each batch is set dynamically.
    &quot;remoteModelVersion&quot;: &quot;A String&quot;, # Output only. The model version for LLM.
    &quot;remoteServiceType&quot;: &quot;A String&quot;, # Output only. The remote service type for remote model.
    &quot;speechRecognizer&quot;: &quot;A String&quot;, # Output only. The name of the speech recognizer to use for speech recognition. The expected format is `projects/{project}/locations/{location}/recognizers/{recognizer}`. Customers can specify this field at model creation. If not specified, a default recognizer `projects/{model project}/locations/global/recognizers/_` will be used. See more details at [recognizers](https://cloud.google.com/speech-to-text/v2/docs/reference/rest/v2/projects.locations.recognizers)
  },
  &quot;trainingRuns&quot;: [ # Information for all training runs in increasing order of start_time.
    { # Information about a single training query run for the model.
      &quot;classLevelGlobalExplanations&quot;: [ # Output only. Global explanation contains the explanation of top features on the class level. Applies to classification models only.
        { # Global explanations containing the top most important features after training.
          &quot;classLabel&quot;: &quot;A String&quot;, # Class label for this set of global explanations. Will be empty/null for binary logistic and linear regression models. Sorted alphabetically in descending order.
          &quot;explanations&quot;: [ # A list of the top global explanations. Sorted by absolute value of attribution in descending order.
            { # Explanation for a single feature.
              &quot;attribution&quot;: 3.14, # Attribution of feature.
              &quot;featureName&quot;: &quot;A String&quot;, # The full feature name. For non-numerical features, will be formatted like `.`. Overall size of feature name will always be truncated to first 120 characters.
            },
          ],
        },
      ],
      &quot;dataSplitResult&quot;: { # Data split result. This contains references to the training and evaluation data tables that were used to train the model. # Output only. Data split result of the training run. Only set when the input data is actually split.
        &quot;evaluationTable&quot;: { # Table reference of the evaluation data after split.
          &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
          &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
          &quot;tableId&quot;: &quot;A String&quot;, # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
        },
        &quot;testTable&quot;: { # Table reference of the test data after split.
          &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
          &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
          &quot;tableId&quot;: &quot;A String&quot;, # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
        },
        &quot;trainingTable&quot;: { # Table reference of the training data after split.
          &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
          &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
          &quot;tableId&quot;: &quot;A String&quot;, # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
        },
      },
      &quot;evaluationMetrics&quot;: { # Evaluation metrics of a model. These are either computed on all training data or just the eval data based on whether eval data was used during training. These are not present for imported models. # Output only. The evaluation metrics over training/eval data that were computed at the end of training.
        &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
          &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
            { # ARIMA model fitting metrics.
              &quot;aic&quot;: 3.14, # AIC.
              &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
              &quot;variance&quot;: 3.14, # Variance.
            },
          ],
          &quot;arimaSingleModelForecastingMetrics&quot;: [ # Repeated as there can be many metric sets (one for each model) in auto-arima and the large-scale case.
            { # Model evaluation metrics for a single ARIMA forecasting model.
              &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                &quot;aic&quot;: 3.14, # AIC.
                &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                &quot;variance&quot;: 3.14, # Variance.
              },
              &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
              &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
              &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
              &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
              &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
                &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
              },
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
              &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
                &quot;A String&quot;,
              ],
            },
          ],
          &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
            True or False,
          ],
          &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
            { # Arima order, can be used for both non-seasonal and seasonal parts.
              &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
              &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
              &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
            },
          ],
          &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
            &quot;A String&quot;,
          ],
          &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
            &quot;A String&quot;,
          ],
        },
        &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
            { # Confusion matrix for binary classification models.
              &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
              &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
              &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
              &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
              &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
              &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
              &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
              &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
              &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
            },
          ],
          &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
          &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
        },
        &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
          &quot;clusters&quot;: [ # Information for all clusters.
            { # Message containing the information about one cluster.
              &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
              &quot;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
              &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                { # Representative value of a single feature within the cluster.
                  &quot;categoricalValue&quot;: { # Representative value of a categorical feature. # The categorical feature value.
                    &quot;categoryCounts&quot;: [ # Counts of all categories for the categorical feature. If there are more than ten categories, we return top ten (by count) and return one more CategoryCount with category &quot;_OTHER_&quot; and count as aggregate counts of remaining categories.
                      { # Represents the count of a single category within the cluster.
                        &quot;category&quot;: &quot;A String&quot;, # The name of category.
                        &quot;count&quot;: &quot;A String&quot;, # The count of training samples matching the category within the cluster.
                      },
                    ],
                  },
                  &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                  &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                },
              ],
            },
          ],
          &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
          &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
        },
        &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
          &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
        },
        &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
          &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
            &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
            &quot;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
            &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
            &quot;recall&quot;: 3.14, # Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.
            &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
            &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
          },
          &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
            { # Confusion matrix for multi-class classification models.
              &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
              &quot;rows&quot;: [ # One row per actual label.
                { # A single row in the confusion matrix.
                  &quot;actualLabel&quot;: &quot;A String&quot;, # The original label of this row.
                  &quot;entries&quot;: [ # Info describing predicted label distribution.
                    { # A single entry in the confusion matrix.
                      &quot;itemCount&quot;: &quot;A String&quot;, # Number of items being predicted as this label.
                      &quot;predictedLabel&quot;: &quot;A String&quot;, # The predicted label. For confidence_threshold &gt; 0, we will also add an entry indicating the number of items under the confidence threshold.
                    },
                  ],
                },
              ],
            },
          ],
        },
        &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
          &quot;averageRank&quot;: 3.14, # Determines the goodness of a ranking by computing the percentile rank from the predicted confidence and dividing it by the original rank.
          &quot;meanAveragePrecision&quot;: 3.14, # Calculates a precision per user for all the items by ranking them and then averages all the precisions across all the users.
          &quot;meanSquaredError&quot;: 3.14, # Similar to the mean squared error computed in regression and explicit recommendation models except instead of computing the rating directly, the output from evaluate is computed against a preference which is 1 or 0 depending on if the rating exists or not.
          &quot;normalizedDiscountedCumulativeGain&quot;: 3.14, # A metric to determine the goodness of a ranking calculated from the predicted confidence by comparing it to an ideal rank measured by the original ratings.
        },
        &quot;regressionMetrics&quot;: { # Evaluation metrics for regression and explicit feedback type matrix factorization models. # Populated for regression models and explicit feedback type matrix factorization models.
          &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
          &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
          &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
          &quot;medianAbsoluteError&quot;: 3.14, # Median absolute error.
          &quot;rSquared&quot;: 3.14, # R^2 score. This corresponds to r2_score in ML.EVALUATE.
        },
      },
      &quot;modelLevelGlobalExplanation&quot;: { # Global explanations containing the top most important features after training. # Output only. Global explanation contains the explanation of top features on the model level. Applies to both regression and classification models.
        &quot;classLabel&quot;: &quot;A String&quot;, # Class label for this set of global explanations. Will be empty/null for binary logistic and linear regression models. Sorted alphabetically in descending order.
        &quot;explanations&quot;: [ # A list of the top global explanations. Sorted by absolute value of attribution in descending order.
          { # Explanation for a single feature.
            &quot;attribution&quot;: 3.14, # Attribution of feature.
            &quot;featureName&quot;: &quot;A String&quot;, # The full feature name. For non-numerical features, will be formatted like `.`. Overall size of feature name will always be truncated to first 120 characters.
          },
        ],
      },
      &quot;results&quot;: [ # Output only. Output of each iteration run, results.size() &lt;= max_iterations.
        {
          &quot;durationMs&quot;: &quot;A String&quot;, # Time taken to run the iteration in milliseconds.
          &quot;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of iteration.
          &quot;index&quot;: 42, # Index of the iteration, 0 based.
          &quot;learnRate&quot;: 3.14, # Learn rate used for this iteration.
          &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
        },
      ],
      &quot;startTime&quot;: &quot;A String&quot;, # Output only. The start time of this training run.
      &quot;trainingOptions&quot;: { # Options used in model training. # Output only. Options that were used for this training run, includes user specified and default options that were used.
        &quot;activationFn&quot;: &quot;A String&quot;, # Activation function of the neural nets.
        &quot;adjustStepChanges&quot;: True or False, # If true, detect step changes and make data adjustment in the input time series.
        &quot;approxGlobalFeatureContrib&quot;: True or False, # Whether to use approximate feature contribution method in XGBoost model explanation for global explain.
        &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
        &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of the sum of non-seasonal p and q.
        &quot;autoArimaMinOrder&quot;: &quot;A String&quot;, # The min value of the sum of non-seasonal p and q.
        &quot;autoClassWeights&quot;: True or False, # Whether to calculate class weights automatically based on the popularity of each label.
        &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
        &quot;boosterType&quot;: &quot;A String&quot;, # Booster type for boosted tree models.
        &quot;budgetHours&quot;: 3.14, # Budget in hours for AutoML training.
        &quot;calculatePValues&quot;: True or False, # Whether or not p-value test should be computed for this model. Only available for linear and logistic regression models.
        &quot;categoryEncodingMethod&quot;: &quot;A String&quot;, # Categorical feature encoding method.
        &quot;cleanSpikesAndDips&quot;: True or False, # If true, clean spikes and dips in the input time series.
        &quot;colorSpace&quot;: &quot;A String&quot;, # Enums for color space, used for processing images in Object Table. See more details at https://www.tensorflow.org/io/tutorials/colorspace.
        &quot;colsampleBylevel&quot;: 3.14, # Subsample ratio of columns for each level for boosted tree models.
        &quot;colsampleBynode&quot;: 3.14, # Subsample ratio of columns for each node(split) for boosted tree models.
        &quot;colsampleBytree&quot;: 3.14, # Subsample ratio of columns when constructing each tree for boosted tree models.
        &quot;dartNormalizeType&quot;: &quot;A String&quot;, # Type of normalization algorithm for boosted tree models using dart booster.
        &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
        &quot;dataSplitColumn&quot;: &quot;A String&quot;, # The column to split data with. This column won&#x27;t be used as a feature. 1. When data_split_method is CUSTOM, the corresponding column should be boolean. The rows with true value tag are eval data, and the false are training data. 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows (from smallest to largest) in the corresponding column are used as training data, and the rest are eval data. It respects the order in Orderable data types: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
        &quot;dataSplitEvalFraction&quot;: 3.14, # The fraction of evaluation data over the whole input data. The rest of data will be used as training data. The format should be double. Accurate to two decimal places. Default value is 0.2.
        &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
        &quot;decomposeTimeSeries&quot;: True or False, # If true, perform decompose time series and save the results.
        &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
        &quot;dropout&quot;: 3.14, # Dropout probability for dnn models.
        &quot;earlyStop&quot;: True or False, # Whether to stop early when the loss doesn&#x27;t improve significantly any more (compared to min_relative_progress). Used only for iterative training algorithms.
        &quot;enableGlobalExplain&quot;: True or False, # If true, enable global explanation during training.
        &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
        &quot;fitIntercept&quot;: True or False, # Whether the model should include intercept during model training.
        &quot;hiddenUnits&quot;: [ # Hidden units for dnn models.
          &quot;A String&quot;,
        ],
        &quot;holidayRegion&quot;: &quot;A String&quot;, # The geographical region based on which the holidays are considered in time series modeling. If a valid value is specified, then holiday effects modeling is enabled.
        &quot;holidayRegions&quot;: [ # A list of geographical regions that are used for time series modeling.
          &quot;A String&quot;,
        ],
        &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
        &quot;hparamTuningObjectives&quot;: [ # The target evaluation metrics to optimize the hyperparameters for.
          &quot;A String&quot;,
        ],
        &quot;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
        &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
        &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
          &quot;A String&quot;,
        ],
        &quot;instanceWeightColumn&quot;: &quot;A String&quot;, # Name of the instance weight column for training data. This column isn&#x27;t be used as a feature.
        &quot;integratedGradientsNumSteps&quot;: &quot;A String&quot;, # Number of integral steps for the integrated gradients explain method.
        &quot;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
        &quot;kmeansInitializationColumn&quot;: &quot;A String&quot;, # The column used to provide the initial centroids for kmeans algorithm when kmeans_initialization_method is CUSTOM.
        &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
        &quot;l1RegActivation&quot;: 3.14, # L1 regularization coefficient to activations.
        &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
        &quot;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
        &quot;labelClassWeights&quot;: { # Weights associated with each label class, for rebalancing the training data. Only applicable for classification models.
          &quot;a_key&quot;: 3.14,
        },
        &quot;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
        &quot;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
        &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
        &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
        &quot;maxParallelTrials&quot;: &quot;A String&quot;, # Maximum number of trials to run in parallel.
        &quot;maxTimeSeriesLength&quot;: &quot;A String&quot;, # The maximum number of time points in a time series that can be used in modeling the trend component of the time series. Don&#x27;t use this option with the `timeSeriesLengthFraction` or `minTimeSeriesLength` options.
        &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree models.
        &quot;minRelativeProgress&quot;: 3.14, # When early_stop is true, stops training when accuracy improvement is less than &#x27;min_relative_progress&#x27;. Used only for iterative training algorithms.
        &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
        &quot;minTimeSeriesLength&quot;: &quot;A String&quot;, # The minimum number of time points in a time series that are used in modeling the trend component of the time series. If you use this option you must also set the `timeSeriesLengthFraction` option. This training option ensures that enough time points are available when you use `timeSeriesLengthFraction` in trend modeling. This is particularly important when forecasting multiple time series in a single query using `timeSeriesIdColumn`. If the total number of time points is less than the `minTimeSeriesLength` value, then the query uses all available time points.
        &quot;minTreeChildWeight&quot;: &quot;A String&quot;, # Minimum sum of instance weight needed in a child for boosted tree models.
        &quot;modelRegistry&quot;: &quot;A String&quot;, # The model registry.
        &quot;modelUri&quot;: &quot;A String&quot;, # Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
        &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # A specification of the non-seasonal part of the ARIMA model: the three components (p, d, q) are the AR order, the degree of differencing, and the MA order.
          &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
          &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
          &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
        },
        &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
        &quot;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
        &quot;numParallelTree&quot;: &quot;A String&quot;, # Number of parallel trees constructed during each iteration for boosted tree models.
        &quot;numPrincipalComponents&quot;: &quot;A String&quot;, # Number of principal components to keep in the PCA model. Must be &lt;= the number of features.
        &quot;numTrials&quot;: &quot;A String&quot;, # Number of trials to run this hyperparameter tuning job.
        &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
        &quot;optimizer&quot;: &quot;A String&quot;, # Optimizer used for training the neural nets.
        &quot;pcaExplainedVarianceRatio&quot;: 3.14, # The minimum ratio of cumulative explained variance that needs to be given by the PCA model.
        &quot;pcaSolver&quot;: &quot;A String&quot;, # The solver for PCA.
        &quot;sampledShapleyNumPaths&quot;: &quot;A String&quot;, # Number of paths for the sampled Shapley explain method.
        &quot;scaleFeatures&quot;: True or False, # If true, scale the feature values by dividing the feature standard deviation. Currently only apply to PCA.
        &quot;standardizeFeatures&quot;: True or False, # Whether to standardize numerical features. Default to true.
        &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
        &quot;tfVersion&quot;: &quot;A String&quot;, # Based on the selected TF version, the corresponding docker image is used to train external models.
        &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
        &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The time series id column that was used during ARIMA model training.
        &quot;timeSeriesIdColumns&quot;: [ # The time series id columns that were used during ARIMA model training.
          &quot;A String&quot;,
        ],
        &quot;timeSeriesLengthFraction&quot;: 3.14, # The fraction of the interpolated length of the time series that&#x27;s used to model the time series trend component. All of the time points of the time series are used to model the non-trend component. This training option accelerates modeling training without sacrificing much forecasting accuracy. You can use this option with `minTimeSeriesLength` but not with `maxTimeSeriesLength`.
        &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
        &quot;treeMethod&quot;: &quot;A String&quot;, # Tree construction algorithm for boosted tree models.
        &quot;trendSmoothingWindowSize&quot;: &quot;A String&quot;, # Smoothing window size for the trend component. When a positive value is specified, a center moving average smoothing is applied on the history trend. When the smoothing window is out of the boundary at the beginning or the end of the trend, the first element or the last element is padded to fill the smoothing window before the average is applied.
        &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
        &quot;vertexAiModelVersionAliases&quot;: [ # The version aliases to apply in Vertex AI model registry. Always overwrite if the version aliases exists in a existing model.
          &quot;A String&quot;,
        ],
        &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
        &quot;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
        &quot;xgboostVersion&quot;: &quot;A String&quot;, # User-selected XGBoost versions for training of XGBoost models.
      },
      &quot;trainingStartTime&quot;: &quot;A String&quot;, # Output only. The start time of this training run, in milliseconds since epoch.
      &quot;vertexAiModelId&quot;: &quot;A String&quot;, # The model id in the [Vertex AI Model Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction) for this training run.
      &quot;vertexAiModelVersion&quot;: &quot;A String&quot;, # Output only. The model version in the [Vertex AI Model Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction) for this training run.
    },
  ],
  &quot;transformColumns&quot;: [ # Output only. This field will be populated if a TRANSFORM clause was used to train a model. TRANSFORM clause (if used) takes feature_columns as input and outputs transform_columns. transform_columns then are used to train the model.
    { # Information about a single transform column.
      &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the column.
      &quot;transformSql&quot;: &quot;A String&quot;, # Output only. The SQL expression used in the column transform.
      &quot;type&quot;: { # The data type of a variable such as a function argument. Examples include: * INT64: `{&quot;typeKind&quot;: &quot;INT64&quot;}` * ARRAY: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} } * STRUCT&gt;: { &quot;typeKind&quot;: &quot;STRUCT&quot;, &quot;structType&quot;: { &quot;fields&quot;: [ { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: {&quot;typeKind&quot;: &quot;STRING&quot;} }, { &quot;name&quot;: &quot;y&quot;, &quot;type&quot;: { &quot;typeKind&quot;: &quot;ARRAY&quot;, &quot;arrayElementType&quot;: {&quot;typeKind&quot;: &quot;DATE&quot;} } } ] } } # Output only. Data type of the column after the transform.
        &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
        &quot;rangeElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the range&#x27;s elements, if type_kind = &quot;RANGE&quot;.
        &quot;structType&quot;: { # The representation of a SQL STRUCT type. # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
          &quot;fields&quot;: [ # Fields within the struct.
            # Object with schema name: StandardSqlField
          ],
        },
        &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any GoogleSQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
      },
    },
  ],
}</pre>
</div>

</body></html>