<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, pageToken=None, maxResults=None)</a></code></p>
<p class="firstline">Lists all models in the specified dataset. Requires the READER dataset role.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</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;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 that were used to train this model.
        { # A field or a column.
          &quot;type&quot;: { # The type of a variable, e.g., a function argument. Examples: INT64: {type_kind=&quot;INT64&quot;} ARRAY: {type_kind=&quot;ARRAY&quot;, array_element_type=&quot;STRING&quot;} STRUCT&gt;: {type_kind=&quot;STRUCT&quot;, struct_type={fields=[ {name=&quot;x&quot;, type={type_kind=&quot;STRING&quot;}}, {name=&quot;y&quot;, type={type_kind=&quot;ARRAY&quot;, array_element_type=&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;structType&quot;: { # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
              &quot;fields&quot;: [
                # Object with schema name: StandardSqlField
              ],
            },
            &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
            &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any standard SQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
          },
          &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
        },
      ],
      &quot;etag&quot;: &quot;A String&quot;, # Output only. A hash of this resource.
      &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;type&quot;: { # The type of a variable, e.g., a function argument. Examples: INT64: {type_kind=&quot;INT64&quot;} ARRAY: {type_kind=&quot;ARRAY&quot;, array_element_type=&quot;STRING&quot;} STRUCT&gt;: {type_kind=&quot;STRUCT&quot;, struct_type={fields=[ {name=&quot;x&quot;, type={type_kind=&quot;STRING&quot;}}, {name=&quot;y&quot;, type={type_kind=&quot;ARRAY&quot;, array_element_type=&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;structType&quot;: { # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
              &quot;fields&quot;: [
                # Object with schema name: StandardSqlField
              ],
            },
            &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
            &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any standard SQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
          },
          &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
        },
      ],
      &quot;modelType&quot;: &quot;A String&quot;, # Output only. Type of the model resource.
      &quot;description&quot;: &quot;A String&quot;, # Optional. A user-friendly description of this model.
      &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;creationTime&quot;: &quot;A String&quot;, # Output only. The time when this model was created, in millisecs since the epoch.
      &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Output only. The time when this model was last modified, in millisecs since the epoch.
      &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;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;trainingRuns&quot;: [ # Output only. Information for all training runs in increasing order of start_time.
        { # Information about a single training query run for the model.
          &quot;trainingOptions&quot;: { # Options that were used for this training run, includes user specified and default options that were used.
            &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
            &quot;hiddenUnits&quot;: [ # Hidden units for dnn models.
              &quot;A String&quot;,
            ],
            &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
            &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
            &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;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
            &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
            &quot;preserveInputStructs&quot;: True or False, # Whether to preserve the input structs in output feature names. Suppose there is a struct A with field b. When false (default), the output feature name is A_b. When true, the output feature name is A.b.
            &quot;modelUri&quot;: &quot;A String&quot;, # [Beta] Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
            &quot;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
            &quot;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
            &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree 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 id column that will be used to indicate different time series to forecast in parallel.
            &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
            &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of non-seasonal p and q.
            &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
              &quot;A String&quot;,
            ],
            &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
            &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
            &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
            &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;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;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
            &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
            &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
            &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
            &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
            &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
            &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
            &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
            &quot;dropout&quot;: 3.14, # Dropout probability for dnn 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;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
            &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
            &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
            &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;kmeansInitializationColumn&quot;: &quot;A String&quot;, # The column used to provide the initial centroids for kmeans algorithm when kmeans_initialization_method is CUSTOM.
            &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;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
            &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
            &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;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
            &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
          },
          &quot;dataSplitResult&quot;: { # Data split result. This contains references to the training and evaluation data tables that were used to train the model. # 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;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;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
              &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
            },
            &quot;trainingTable&quot;: { # Table reference of the training data after split.
              &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;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
              &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
            },
          },
          &quot;results&quot;: [ # Output of each iteration run, results.size() &lt;= max_iterations.
            { # Information about a single iteration of the training run.
              &quot;learnRate&quot;: 3.14, # Learn rate used for this iteration.
              &quot;arimaResult&quot;: { # (Auto-)arima fitting result. Wrap everything in ArimaResult for easier refactoring if we want to use model-specific iteration results.
                &quot;arimaModelInfo&quot;: [ # This message is repeated because there are multiple arima models fitted in auto-arima. For non-auto-arima model, its size is one.
                  { # Arima model information.
                    &quot;hasDrift&quot;: True or False, # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                    &quot;arimaCoefficients&quot;: { # Arima coefficients. # Arima coefficients.
                      &quot;movingAverageCoefficients&quot;: [ # Moving-average coefficients, an array of double.
                        3.14,
                      ],
                      &quot;interceptCoefficient&quot;: 3.14, # Intercept coefficient, just a double not an array.
                      &quot;autoRegressiveCoefficients&quot;: [ # Auto-regressive coefficients, an array of double.
                        3.14,
                      ],
                    },
                    &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                      &quot;variance&quot;: 3.14, # Variance.
                      &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                      &quot;aic&quot;: 3.14, # AIC.
                    },
                    &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                      &quot;A String&quot;,
                    ],
                    &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;timeSeriesId&quot;: &quot;A String&quot;, # The id to indicate different time series.
                  },
                ],
                &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                  &quot;A String&quot;,
                ],
              },
              &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;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
              &quot;clusterInfos&quot;: [ # Information about top clusters for clustering models.
                { # Information about a single cluster for clustering model.
                  &quot;clusterRadius&quot;: 3.14, # Cluster radius, the average distance from centroid to each point assigned to the cluster.
                  &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
                  &quot;clusterSize&quot;: &quot;A String&quot;, # Cluster size, the total number of points assigned to the cluster.
                },
              ],
              &quot;index&quot;: 42, # Index of the iteration, 0 based.
            },
          ],
          &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. # The evaluation metrics over training/eval data that were computed at the end of training.
            &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
              &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
              &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
                { # Confusion matrix for binary classification models.
                  &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
                  &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
                  &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
                  &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
                  &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
                  &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
                  &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
                  &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
                  &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
                },
              ],
              &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;rocAuc&quot;: 3.14, # Area Under a ROC Curve. 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;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;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;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
              },
              &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
            },
            &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
              &quot;clusters&quot;: [ # [Beta] Information for all clusters.
                { # Message containing the information about one cluster.
                  &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                    { # Representative value of a single feature within the cluster.
                      &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                      &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;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                    },
                  ],
                  &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;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
              &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
            },
            &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
              &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;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;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;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;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
              &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
                &quot;A String&quot;,
              ],
              &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;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
                  &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                    &quot;variance&quot;: 3.14, # Variance.
                    &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                    &quot;aic&quot;: 3.14, # AIC.
                  },
                  &quot;timeSeriesId&quot;: &quot;A String&quot;, # The id to indicate different time series.
                  &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                    &quot;A String&quot;,
                  ],
                  &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;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
                { # ARIMA model fitting metrics.
                  &quot;variance&quot;: 3.14, # Variance.
                  &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                  &quot;aic&quot;: 3.14, # AIC.
                },
              ],
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &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;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                True or False,
              ],
            },
            &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;rocAuc&quot;: 3.14, # Area Under a ROC Curve. 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;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;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;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
              },
              &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;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;medianAbsoluteError&quot;: 3.14, # Median absolute error.
              &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
              &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
              &quot;rSquared&quot;: 3.14, # R^2 score.
              &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
            },
          },
          &quot;startTime&quot;: &quot;A String&quot;, # The start time of this training run.
        },
      ],
      &quot;location&quot;: &quot;A String&quot;, # Output only. The geographic location where the model resides. This value is inherited from the dataset.
      &quot;friendlyName&quot;: &quot;A String&quot;, # Optional. A descriptive name for this model.
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(projectId, datasetId, pageToken=None, maxResults=None)</code>
  <pre>Lists all models in the specified dataset. Requires the READER dataset role.

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

Returns:
  An object of the form:

    {
    &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;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 that were used to train this model.
            { # A field or a column.
              &quot;type&quot;: { # The type of a variable, e.g., a function argument. Examples: INT64: {type_kind=&quot;INT64&quot;} ARRAY: {type_kind=&quot;ARRAY&quot;, array_element_type=&quot;STRING&quot;} STRUCT&gt;: {type_kind=&quot;STRUCT&quot;, struct_type={fields=[ {name=&quot;x&quot;, type={type_kind=&quot;STRING&quot;}}, {name=&quot;y&quot;, type={type_kind=&quot;ARRAY&quot;, array_element_type=&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;structType&quot;: { # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
                  &quot;fields&quot;: [
                    # Object with schema name: StandardSqlField
                  ],
                },
                &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
                &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any standard SQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
              },
              &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
            },
          ],
          &quot;etag&quot;: &quot;A String&quot;, # Output only. A hash of this resource.
          &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;type&quot;: { # The type of a variable, e.g., a function argument. Examples: INT64: {type_kind=&quot;INT64&quot;} ARRAY: {type_kind=&quot;ARRAY&quot;, array_element_type=&quot;STRING&quot;} STRUCT&gt;: {type_kind=&quot;STRUCT&quot;, struct_type={fields=[ {name=&quot;x&quot;, type={type_kind=&quot;STRING&quot;}}, {name=&quot;y&quot;, type={type_kind=&quot;ARRAY&quot;, array_element_type=&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;structType&quot;: { # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
                  &quot;fields&quot;: [
                    # Object with schema name: StandardSqlField
                  ],
                },
                &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
                &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any standard SQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
              },
              &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
            },
          ],
          &quot;modelType&quot;: &quot;A String&quot;, # Output only. Type of the model resource.
          &quot;description&quot;: &quot;A String&quot;, # Optional. A user-friendly description of this model.
          &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;creationTime&quot;: &quot;A String&quot;, # Output only. The time when this model was created, in millisecs since the epoch.
          &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Output only. The time when this model was last modified, in millisecs since the epoch.
          &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;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;trainingRuns&quot;: [ # Output only. Information for all training runs in increasing order of start_time.
            { # Information about a single training query run for the model.
              &quot;trainingOptions&quot;: { # Options that were used for this training run, includes user specified and default options that were used.
                &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
                &quot;hiddenUnits&quot;: [ # Hidden units for dnn models.
                  &quot;A String&quot;,
                ],
                &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
                &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
                &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;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
                &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
                &quot;preserveInputStructs&quot;: True or False, # Whether to preserve the input structs in output feature names. Suppose there is a struct A with field b. When false (default), the output feature name is A_b. When true, the output feature name is A.b.
                &quot;modelUri&quot;: &quot;A String&quot;, # [Beta] Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
                &quot;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
                &quot;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
                &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree 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 id column that will be used to indicate different time series to forecast in parallel.
                &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
                &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of non-seasonal p and q.
                &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
                  &quot;A String&quot;,
                ],
                &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
                &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
                &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
                &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;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;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
                &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
                &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
                &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
                &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
                &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
                &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
                &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
                &quot;dropout&quot;: 3.14, # Dropout probability for dnn 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;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
                &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
                &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
                &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;kmeansInitializationColumn&quot;: &quot;A String&quot;, # The column used to provide the initial centroids for kmeans algorithm when kmeans_initialization_method is CUSTOM.
                &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;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
                &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
                &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;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
                &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
              },
              &quot;dataSplitResult&quot;: { # Data split result. This contains references to the training and evaluation data tables that were used to train the model. # 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;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;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
                  &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
                },
                &quot;trainingTable&quot;: { # Table reference of the training data after split.
                  &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;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
                  &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
                },
              },
              &quot;results&quot;: [ # Output of each iteration run, results.size() &lt;= max_iterations.
                { # Information about a single iteration of the training run.
                  &quot;learnRate&quot;: 3.14, # Learn rate used for this iteration.
                  &quot;arimaResult&quot;: { # (Auto-)arima fitting result. Wrap everything in ArimaResult for easier refactoring if we want to use model-specific iteration results.
                    &quot;arimaModelInfo&quot;: [ # This message is repeated because there are multiple arima models fitted in auto-arima. For non-auto-arima model, its size is one.
                      { # Arima model information.
                        &quot;hasDrift&quot;: True or False, # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                        &quot;arimaCoefficients&quot;: { # Arima coefficients. # Arima coefficients.
                          &quot;movingAverageCoefficients&quot;: [ # Moving-average coefficients, an array of double.
                            3.14,
                          ],
                          &quot;interceptCoefficient&quot;: 3.14, # Intercept coefficient, just a double not an array.
                          &quot;autoRegressiveCoefficients&quot;: [ # Auto-regressive coefficients, an array of double.
                            3.14,
                          ],
                        },
                        &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                          &quot;variance&quot;: 3.14, # Variance.
                          &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                          &quot;aic&quot;: 3.14, # AIC.
                        },
                        &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                          &quot;A String&quot;,
                        ],
                        &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;timeSeriesId&quot;: &quot;A String&quot;, # The id to indicate different time series.
                      },
                    ],
                    &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                      &quot;A String&quot;,
                    ],
                  },
                  &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;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
                  &quot;clusterInfos&quot;: [ # Information about top clusters for clustering models.
                    { # Information about a single cluster for clustering model.
                      &quot;clusterRadius&quot;: 3.14, # Cluster radius, the average distance from centroid to each point assigned to the cluster.
                      &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
                      &quot;clusterSize&quot;: &quot;A String&quot;, # Cluster size, the total number of points assigned to the cluster.
                    },
                  ],
                  &quot;index&quot;: 42, # Index of the iteration, 0 based.
                },
              ],
              &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. # The evaluation metrics over training/eval data that were computed at the end of training.
                &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
                  &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
                  &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
                    { # Confusion matrix for binary classification models.
                      &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
                      &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
                      &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
                      &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
                      &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
                      &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
                      &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
                      &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
                      &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
                    },
                  ],
                  &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;rocAuc&quot;: 3.14, # Area Under a ROC Curve. 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;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;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;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                  },
                  &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
                },
                &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
                  &quot;clusters&quot;: [ # [Beta] Information for all clusters.
                    { # Message containing the information about one cluster.
                      &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                        { # Representative value of a single feature within the cluster.
                          &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                          &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;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                        },
                      ],
                      &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;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
                  &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
                },
                &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
                  &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;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;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;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;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
                  &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
                    &quot;A String&quot;,
                  ],
                  &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;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
                      &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                        &quot;variance&quot;: 3.14, # Variance.
                        &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                        &quot;aic&quot;: 3.14, # AIC.
                      },
                      &quot;timeSeriesId&quot;: &quot;A String&quot;, # The id to indicate different time series.
                      &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                        &quot;A String&quot;,
                      ],
                      &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;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
                    { # ARIMA model fitting metrics.
                      &quot;variance&quot;: 3.14, # Variance.
                      &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                      &quot;aic&quot;: 3.14, # AIC.
                    },
                  ],
                  &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                    &quot;A String&quot;,
                  ],
                  &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;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                    True or False,
                  ],
                },
                &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;rocAuc&quot;: 3.14, # Area Under a ROC Curve. 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;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;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;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                  },
                  &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;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;medianAbsoluteError&quot;: 3.14, # Median absolute error.
                  &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
                  &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
                  &quot;rSquared&quot;: 3.14, # R^2 score.
                  &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
                },
              },
              &quot;startTime&quot;: &quot;A String&quot;, # The start time of this training run.
            },
          ],
          &quot;location&quot;: &quot;A String&quot;, # Output only. The geographic location where the model resides. This value is inherited from the dataset.
          &quot;friendlyName&quot;: &quot;A String&quot;, # Optional. A descriptive name for this model.
        },
    ],
    &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(previous_request, previous_response)</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;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 that were used to train this model.
      { # A field or a column.
        &quot;type&quot;: { # The type of a variable, e.g., a function argument. Examples: INT64: {type_kind=&quot;INT64&quot;} ARRAY: {type_kind=&quot;ARRAY&quot;, array_element_type=&quot;STRING&quot;} STRUCT&gt;: {type_kind=&quot;STRUCT&quot;, struct_type={fields=[ {name=&quot;x&quot;, type={type_kind=&quot;STRING&quot;}}, {name=&quot;y&quot;, type={type_kind=&quot;ARRAY&quot;, array_element_type=&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;structType&quot;: { # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
            &quot;fields&quot;: [
              # Object with schema name: StandardSqlField
            ],
          },
          &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
          &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any standard SQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
        },
        &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
      },
    ],
    &quot;etag&quot;: &quot;A String&quot;, # Output only. A hash of this resource.
    &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;type&quot;: { # The type of a variable, e.g., a function argument. Examples: INT64: {type_kind=&quot;INT64&quot;} ARRAY: {type_kind=&quot;ARRAY&quot;, array_element_type=&quot;STRING&quot;} STRUCT&gt;: {type_kind=&quot;STRUCT&quot;, struct_type={fields=[ {name=&quot;x&quot;, type={type_kind=&quot;STRING&quot;}}, {name=&quot;y&quot;, type={type_kind=&quot;ARRAY&quot;, array_element_type=&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;structType&quot;: { # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
            &quot;fields&quot;: [
              # Object with schema name: StandardSqlField
            ],
          },
          &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
          &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any standard SQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
        },
        &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
      },
    ],
    &quot;modelType&quot;: &quot;A String&quot;, # Output only. Type of the model resource.
    &quot;description&quot;: &quot;A String&quot;, # Optional. A user-friendly description of this model.
    &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;creationTime&quot;: &quot;A String&quot;, # Output only. The time when this model was created, in millisecs since the epoch.
    &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Output only. The time when this model was last modified, in millisecs since the epoch.
    &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;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;trainingRuns&quot;: [ # Output only. Information for all training runs in increasing order of start_time.
      { # Information about a single training query run for the model.
        &quot;trainingOptions&quot;: { # Options that were used for this training run, includes user specified and default options that were used.
          &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
          &quot;hiddenUnits&quot;: [ # Hidden units for dnn models.
            &quot;A String&quot;,
          ],
          &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
          &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
          &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;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
          &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
          &quot;preserveInputStructs&quot;: True or False, # Whether to preserve the input structs in output feature names. Suppose there is a struct A with field b. When false (default), the output feature name is A_b. When true, the output feature name is A.b.
          &quot;modelUri&quot;: &quot;A String&quot;, # [Beta] Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
          &quot;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
          &quot;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
          &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree 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 id column that will be used to indicate different time series to forecast in parallel.
          &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
          &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of non-seasonal p and q.
          &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
            &quot;A String&quot;,
          ],
          &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
          &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
          &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
          &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;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;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
          &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
          &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
          &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
          &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
          &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
          &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
          &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
          &quot;dropout&quot;: 3.14, # Dropout probability for dnn 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;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
          &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
          &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
          &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;kmeansInitializationColumn&quot;: &quot;A String&quot;, # The column used to provide the initial centroids for kmeans algorithm when kmeans_initialization_method is CUSTOM.
          &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;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
          &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
          &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;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
          &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
        },
        &quot;dataSplitResult&quot;: { # Data split result. This contains references to the training and evaluation data tables that were used to train the model. # 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;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;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
            &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
          },
          &quot;trainingTable&quot;: { # Table reference of the training data after split.
            &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;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
            &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
          },
        },
        &quot;results&quot;: [ # Output of each iteration run, results.size() &lt;= max_iterations.
          { # Information about a single iteration of the training run.
            &quot;learnRate&quot;: 3.14, # Learn rate used for this iteration.
            &quot;arimaResult&quot;: { # (Auto-)arima fitting result. Wrap everything in ArimaResult for easier refactoring if we want to use model-specific iteration results.
              &quot;arimaModelInfo&quot;: [ # This message is repeated because there are multiple arima models fitted in auto-arima. For non-auto-arima model, its size is one.
                { # Arima model information.
                  &quot;hasDrift&quot;: True or False, # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                  &quot;arimaCoefficients&quot;: { # Arima coefficients. # Arima coefficients.
                    &quot;movingAverageCoefficients&quot;: [ # Moving-average coefficients, an array of double.
                      3.14,
                    ],
                    &quot;interceptCoefficient&quot;: 3.14, # Intercept coefficient, just a double not an array.
                    &quot;autoRegressiveCoefficients&quot;: [ # Auto-regressive coefficients, an array of double.
                      3.14,
                    ],
                  },
                  &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                    &quot;variance&quot;: 3.14, # Variance.
                    &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                    &quot;aic&quot;: 3.14, # AIC.
                  },
                  &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                    &quot;A String&quot;,
                  ],
                  &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;timeSeriesId&quot;: &quot;A String&quot;, # The id to indicate different time series.
                },
              ],
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
            },
            &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;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
            &quot;clusterInfos&quot;: [ # Information about top clusters for clustering models.
              { # Information about a single cluster for clustering model.
                &quot;clusterRadius&quot;: 3.14, # Cluster radius, the average distance from centroid to each point assigned to the cluster.
                &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
                &quot;clusterSize&quot;: &quot;A String&quot;, # Cluster size, the total number of points assigned to the cluster.
              },
            ],
            &quot;index&quot;: 42, # Index of the iteration, 0 based.
          },
        ],
        &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. # The evaluation metrics over training/eval data that were computed at the end of training.
          &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
            &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
            &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
              { # Confusion matrix for binary classification models.
                &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
                &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
                &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
                &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
                &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
                &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
                &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
                &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
                &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
              },
            ],
            &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;rocAuc&quot;: 3.14, # Area Under a ROC Curve. 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;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;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;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            },
            &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
          },
          &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
            &quot;clusters&quot;: [ # [Beta] Information for all clusters.
              { # Message containing the information about one cluster.
                &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                  { # Representative value of a single feature within the cluster.
                    &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                    &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;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                  },
                ],
                &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;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
            &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
          },
          &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
            &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;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;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;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;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
            &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
              &quot;A String&quot;,
            ],
            &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;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
                &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                  &quot;variance&quot;: 3.14, # Variance.
                  &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                  &quot;aic&quot;: 3.14, # AIC.
                },
                &quot;timeSeriesId&quot;: &quot;A String&quot;, # The id to indicate different time series.
                &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                  &quot;A String&quot;,
                ],
                &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;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
              { # ARIMA model fitting metrics.
                &quot;variance&quot;: 3.14, # Variance.
                &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                &quot;aic&quot;: 3.14, # AIC.
              },
            ],
            &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
              &quot;A String&quot;,
            ],
            &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;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
              True or False,
            ],
          },
          &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;rocAuc&quot;: 3.14, # Area Under a ROC Curve. 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;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;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;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
            },
            &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;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;medianAbsoluteError&quot;: 3.14, # Median absolute error.
            &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
            &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
            &quot;rSquared&quot;: 3.14, # R^2 score.
            &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
          },
        },
        &quot;startTime&quot;: &quot;A String&quot;, # The start time of this training run.
      },
    ],
    &quot;location&quot;: &quot;A String&quot;, # Output only. The geographic location where the model resides. This value is inherited from the dataset.
    &quot;friendlyName&quot;: &quot;A String&quot;, # Optional. A descriptive name for this model.
  }


Returns:
  An object of the form:

    {
      &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 that were used to train this model.
        { # A field or a column.
          &quot;type&quot;: { # The type of a variable, e.g., a function argument. Examples: INT64: {type_kind=&quot;INT64&quot;} ARRAY: {type_kind=&quot;ARRAY&quot;, array_element_type=&quot;STRING&quot;} STRUCT&gt;: {type_kind=&quot;STRUCT&quot;, struct_type={fields=[ {name=&quot;x&quot;, type={type_kind=&quot;STRING&quot;}}, {name=&quot;y&quot;, type={type_kind=&quot;ARRAY&quot;, array_element_type=&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;structType&quot;: { # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
              &quot;fields&quot;: [
                # Object with schema name: StandardSqlField
              ],
            },
            &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
            &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any standard SQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
          },
          &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
        },
      ],
      &quot;etag&quot;: &quot;A String&quot;, # Output only. A hash of this resource.
      &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;type&quot;: { # The type of a variable, e.g., a function argument. Examples: INT64: {type_kind=&quot;INT64&quot;} ARRAY: {type_kind=&quot;ARRAY&quot;, array_element_type=&quot;STRING&quot;} STRUCT&gt;: {type_kind=&quot;STRUCT&quot;, struct_type={fields=[ {name=&quot;x&quot;, type={type_kind=&quot;STRING&quot;}}, {name=&quot;y&quot;, type={type_kind=&quot;ARRAY&quot;, array_element_type=&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;structType&quot;: { # The fields of this struct, in order, if type_kind = &quot;STRUCT&quot;.
              &quot;fields&quot;: [
                # Object with schema name: StandardSqlField
              ],
            },
            &quot;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
            &quot;typeKind&quot;: &quot;A String&quot;, # Required. The top level type of this field. Can be any standard SQL data type (e.g., &quot;INT64&quot;, &quot;DATE&quot;, &quot;ARRAY&quot;).
          },
          &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
        },
      ],
      &quot;modelType&quot;: &quot;A String&quot;, # Output only. Type of the model resource.
      &quot;description&quot;: &quot;A String&quot;, # Optional. A user-friendly description of this model.
      &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;creationTime&quot;: &quot;A String&quot;, # Output only. The time when this model was created, in millisecs since the epoch.
      &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Output only. The time when this model was last modified, in millisecs since the epoch.
      &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;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;trainingRuns&quot;: [ # Output only. Information for all training runs in increasing order of start_time.
        { # Information about a single training query run for the model.
          &quot;trainingOptions&quot;: { # Options that were used for this training run, includes user specified and default options that were used.
            &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
            &quot;hiddenUnits&quot;: [ # Hidden units for dnn models.
              &quot;A String&quot;,
            ],
            &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
            &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
            &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;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
            &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
            &quot;preserveInputStructs&quot;: True or False, # Whether to preserve the input structs in output feature names. Suppose there is a struct A with field b. When false (default), the output feature name is A_b. When true, the output feature name is A.b.
            &quot;modelUri&quot;: &quot;A String&quot;, # [Beta] Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
            &quot;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
            &quot;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
            &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree 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 id column that will be used to indicate different time series to forecast in parallel.
            &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
            &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of non-seasonal p and q.
            &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
              &quot;A String&quot;,
            ],
            &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
            &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
            &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
            &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;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;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
            &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
            &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
            &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
            &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
            &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
            &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
            &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
            &quot;dropout&quot;: 3.14, # Dropout probability for dnn 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;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
            &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
            &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
            &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;kmeansInitializationColumn&quot;: &quot;A String&quot;, # The column used to provide the initial centroids for kmeans algorithm when kmeans_initialization_method is CUSTOM.
            &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;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
            &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
            &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;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
            &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
          },
          &quot;dataSplitResult&quot;: { # Data split result. This contains references to the training and evaluation data tables that were used to train the model. # 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;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;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
              &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
            },
            &quot;trainingTable&quot;: { # Table reference of the training data after split.
              &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;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
              &quot;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
            },
          },
          &quot;results&quot;: [ # Output of each iteration run, results.size() &lt;= max_iterations.
            { # Information about a single iteration of the training run.
              &quot;learnRate&quot;: 3.14, # Learn rate used for this iteration.
              &quot;arimaResult&quot;: { # (Auto-)arima fitting result. Wrap everything in ArimaResult for easier refactoring if we want to use model-specific iteration results.
                &quot;arimaModelInfo&quot;: [ # This message is repeated because there are multiple arima models fitted in auto-arima. For non-auto-arima model, its size is one.
                  { # Arima model information.
                    &quot;hasDrift&quot;: True or False, # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                    &quot;arimaCoefficients&quot;: { # Arima coefficients. # Arima coefficients.
                      &quot;movingAverageCoefficients&quot;: [ # Moving-average coefficients, an array of double.
                        3.14,
                      ],
                      &quot;interceptCoefficient&quot;: 3.14, # Intercept coefficient, just a double not an array.
                      &quot;autoRegressiveCoefficients&quot;: [ # Auto-regressive coefficients, an array of double.
                        3.14,
                      ],
                    },
                    &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                      &quot;variance&quot;: 3.14, # Variance.
                      &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                      &quot;aic&quot;: 3.14, # AIC.
                    },
                    &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                      &quot;A String&quot;,
                    ],
                    &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;timeSeriesId&quot;: &quot;A String&quot;, # The id to indicate different time series.
                  },
                ],
                &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                  &quot;A String&quot;,
                ],
              },
              &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;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
              &quot;clusterInfos&quot;: [ # Information about top clusters for clustering models.
                { # Information about a single cluster for clustering model.
                  &quot;clusterRadius&quot;: 3.14, # Cluster radius, the average distance from centroid to each point assigned to the cluster.
                  &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
                  &quot;clusterSize&quot;: &quot;A String&quot;, # Cluster size, the total number of points assigned to the cluster.
                },
              ],
              &quot;index&quot;: 42, # Index of the iteration, 0 based.
            },
          ],
          &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. # The evaluation metrics over training/eval data that were computed at the end of training.
            &quot;binaryClassificationMetrics&quot;: { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
              &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
              &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
                { # Confusion matrix for binary classification models.
                  &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
                  &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
                  &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
                  &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
                  &quot;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
                  &quot;precision&quot;: 3.14, # The fraction of actual positive predictions that had positive actual labels.
                  &quot;positiveClassThreshold&quot;: 3.14, # Threshold value used when computing each of the following metric.
                  &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
                  &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
                },
              ],
              &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;rocAuc&quot;: 3.14, # Area Under a ROC Curve. 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;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;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;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
              },
              &quot;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
            },
            &quot;clusteringMetrics&quot;: { # Evaluation metrics for clustering models. # Populated for clustering models.
              &quot;clusters&quot;: [ # [Beta] Information for all clusters.
                { # Message containing the information about one cluster.
                  &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                    { # Representative value of a single feature within the cluster.
                      &quot;featureColumn&quot;: &quot;A String&quot;, # The feature column name.
                      &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;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                    },
                  ],
                  &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;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
              &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
            },
            &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
              &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;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;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;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;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
              &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
                &quot;A String&quot;,
              ],
              &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;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
                  &quot;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                    &quot;variance&quot;: 3.14, # Variance.
                    &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                    &quot;aic&quot;: 3.14, # AIC.
                  },
                  &quot;timeSeriesId&quot;: &quot;A String&quot;, # The id to indicate different time series.
                  &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                    &quot;A String&quot;,
                  ],
                  &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;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
                { # ARIMA model fitting metrics.
                  &quot;variance&quot;: 3.14, # Variance.
                  &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                  &quot;aic&quot;: 3.14, # AIC.
                },
              ],
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &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;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                True or False,
              ],
            },
            &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;rocAuc&quot;: 3.14, # Area Under a ROC Curve. 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;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;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;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
              },
              &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;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;medianAbsoluteError&quot;: 3.14, # Median absolute error.
              &quot;meanSquaredError&quot;: 3.14, # Mean squared error.
              &quot;meanSquaredLogError&quot;: 3.14, # Mean squared log error.
              &quot;rSquared&quot;: 3.14, # R^2 score.
              &quot;meanAbsoluteError&quot;: 3.14, # Mean absolute error.
            },
          },
          &quot;startTime&quot;: &quot;A String&quot;, # The start time of this training run.
        },
      ],
      &quot;location&quot;: &quot;A String&quot;, # Output only. The geographic location where the model resides. This value is inherited from the dataset.
      &quot;friendlyName&quot;: &quot;A String&quot;, # Optional. A descriptive name for this model.
    }</pre>
</div>

</body></html>