<html><body>
<style>

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

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

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

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

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

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

pre {
  margin-top: 0.5em;
}

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

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

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

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

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

</style>

<h1><a href="bigquery_v2.html">BigQuery API</a> . <a href="bigquery_v2.models.html">models</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#delete">delete(projectId, datasetId, modelId)</a></code></p>
<p class="firstline">Deletes the model specified by modelId from the dataset.</p>
<p class="toc_element">
  <code><a href="#get">get(projectId, datasetId, modelId)</a></code></p>
<p class="firstline">Gets the specified model resource by model ID.</p>
<p class="toc_element">
  <code><a href="#list">list(projectId, datasetId, maxResults=None, pageToken=None)</a></code></p>
<p class="firstline">Lists all models in the specified dataset. Requires the READER dataset role.</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;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;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;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of iteration.
              &quot;index&quot;: 42, # Index of the iteration, 0 based.
              &quot;durationMs&quot;: &quot;A String&quot;, # Time taken to run the iteration in milliseconds.
              &quot;arimaResult&quot;: { # (Auto-)arima fitting result. Wrap everything in ArimaResult for easier refactoring if we want to use model-specific iteration results.
                &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                  &quot;A String&quot;,
                ],
                &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;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;hasDrift&quot;: True or False, # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                    &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                      &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                      &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;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;aic&quot;: 3.14, # AIC.
                      &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                    },
                  },
                ],
              },
              &quot;clusterInfos&quot;: [ # Information about top clusters for clustering models.
                { # Information about a single cluster for clustering model.
                  &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;clusterRadius&quot;: 3.14, # Cluster radius, the average distance from centroid to each point assigned to the cluster.
                },
              ],
              &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
            },
          ],
          &quot;startTime&quot;: &quot;A String&quot;, # The start time of this training run.
          &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;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;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
                &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
                &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
                &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
                &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
                &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;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
              &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
                { # Confusion matrix for binary classification models.
                  &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
                  &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
                  &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
                  &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
                  &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
                  &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
                  &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;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
                },
              ],
              &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
            },
            &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
              &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
                { # Confusion matrix for multi-class classification models.
                  &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;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
                },
              ],
              &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;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
                &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
                &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
                &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
                &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
                &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;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;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
                  &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
                  &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                    { # Representative value of a single feature within the cluster.
                      &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                      &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;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
              &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
            },
            &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
              &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;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;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;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;medianAbsoluteError&quot;: 3.14, # Median absolute error.
            },
            &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
              &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                True or False,
              ],
              &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
                &quot;A String&quot;,
              ],
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
                { # ARIMA model fitting metrics.
                  &quot;variance&quot;: 3.14, # Variance.
                  &quot;aic&quot;: 3.14, # AIC.
                  &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                },
              ],
              &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
                { # Arima order, can be used for both non-seasonal and seasonal parts.
                  &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                  &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;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;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                    &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                    &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;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
                  &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;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                    &quot;variance&quot;: 3.14, # Variance.
                    &quot;aic&quot;: 3.14, # AIC.
                    &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                  },
                },
              ],
            },
          },
          &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;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
              &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
            },
            &quot;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;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
              &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
            },
          },
          &quot;trainingOptions&quot;: { # Options that were used for this training run, includes user specified and default options that were used.
            &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
            &quot;modelUri&quot;: &quot;A String&quot;, # [Beta] Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
            &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
            &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
            &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
            &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of non-seasonal p and q.
            &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;dropout&quot;: 3.14, # Dropout probability for dnn models.
            &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
            &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
            &quot;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
            &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;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;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
            &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;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;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
              &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;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;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
            &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
            &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
            &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
            &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
              &quot;A String&quot;,
            ],
            &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
            &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
            &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
            &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
            &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The id column that will be used to indicate different time series to forecast in parallel.
            &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;hiddenUnits&quot;: [ # Hidden units for dnn models.
              &quot;A String&quot;,
            ],
            &quot;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
            &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;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
            &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
            &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;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
            &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
            &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
            &quot;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
            &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
            &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
            &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
            &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree models.
            &quot;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
          },
          &quot;globalExplanations&quot;: [ # Global explanations for important features of the model. For multi-class models, there is one entry for each label class. For other models, there is only one entry in the list.
            { # Global explanations containing the top most important features after training.
              &quot;explanations&quot;: [ # A list of the top global explanations. Sorted by absolute value of attribution in descending order.
                { # Explanation for a single feature.
                  &quot;attribution&quot;: 3.14, # Attribution of feature.
                  &quot;featureName&quot;: &quot;A String&quot;, # Full name of the feature. For non-numerical features, will be formatted like .. Overall size of feature name will always be truncated to first 120 characters.
                },
              ],
              &quot;classLabel&quot;: &quot;A String&quot;, # Class label for this set of global explanations. Will be empty/null for binary logistic and linear regression models. Sorted alphabetically in descending order.
            },
          ],
        },
      ],
      &quot;etag&quot;: &quot;A String&quot;, # Output only. A hash of this resource.
      &quot;modelType&quot;: &quot;A String&quot;, # Output only. Type of the model resource.
      &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;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;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
          &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;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;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
            &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;labelColumns&quot;: [ # Output only. Label columns that were used to train this model. The output of the model will have a &quot;predicted_&quot; prefix to these columns.
        { # A field or a column.
          &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
          &quot;type&quot;: { # The 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;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;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
            &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;friendlyName&quot;: &quot;A String&quot;, # Optional. A descriptive name for this model.
      &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;description&quot;: &quot;A String&quot;, # Optional. A user-friendly description of this model.
      &quot;encryptionConfiguration&quot;: { # Custom encryption configuration (e.g., Cloud KMS keys). This shows the encryption configuration of the model data while stored in BigQuery storage. This field can be used with PatchModel to update encryption key for an already encrypted model.
        &quot;kmsKeyName&quot;: &quot;A String&quot;, # [Optional] Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key.
      },
      &quot;location&quot;: &quot;A String&quot;, # Output only. The geographic location where the model resides. This value is inherited from the dataset.
    }</pre>
</div>

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

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

Returns:
  An object of the form:

    {
    &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to request the next page of results.
    &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;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;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;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of iteration.
                  &quot;index&quot;: 42, # Index of the iteration, 0 based.
                  &quot;durationMs&quot;: &quot;A String&quot;, # Time taken to run the iteration in milliseconds.
                  &quot;arimaResult&quot;: { # (Auto-)arima fitting result. Wrap everything in ArimaResult for easier refactoring if we want to use model-specific iteration results.
                    &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                      &quot;A String&quot;,
                    ],
                    &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;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;hasDrift&quot;: True or False, # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                        &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                          &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                          &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;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;aic&quot;: 3.14, # AIC.
                          &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                        },
                      },
                    ],
                  },
                  &quot;clusterInfos&quot;: [ # Information about top clusters for clustering models.
                    { # Information about a single cluster for clustering model.
                      &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;clusterRadius&quot;: 3.14, # Cluster radius, the average distance from centroid to each point assigned to the cluster.
                    },
                  ],
                  &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
                },
              ],
              &quot;startTime&quot;: &quot;A String&quot;, # The start time of this training run.
              &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;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;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
                    &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
                    &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
                    &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                    &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
                    &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
                    &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;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
                  &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
                    { # Confusion matrix for binary classification models.
                      &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
                      &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
                      &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
                      &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
                      &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
                      &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
                      &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;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
                    },
                  ],
                  &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
                },
                &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
                  &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
                    { # Confusion matrix for multi-class classification models.
                      &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;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
                    },
                  ],
                  &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;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
                    &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
                    &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
                    &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                    &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
                    &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
                    &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;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;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
                      &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
                      &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                        { # Representative value of a single feature within the cluster.
                          &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                          &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;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
                  &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
                },
                &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
                  &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;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;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;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;medianAbsoluteError&quot;: 3.14, # Median absolute error.
                },
                &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
                  &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                    True or False,
                  ],
                  &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
                    &quot;A String&quot;,
                  ],
                  &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                    &quot;A String&quot;,
                  ],
                  &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
                    { # ARIMA model fitting metrics.
                      &quot;variance&quot;: 3.14, # Variance.
                      &quot;aic&quot;: 3.14, # AIC.
                      &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                    },
                  ],
                  &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
                    { # Arima order, can be used for both non-seasonal and seasonal parts.
                      &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                      &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;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;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                        &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                        &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;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
                      &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;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                        &quot;variance&quot;: 3.14, # Variance.
                        &quot;aic&quot;: 3.14, # AIC.
                        &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                      },
                    },
                  ],
                },
              },
              &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;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
                  &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
                },
                &quot;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;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
                  &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
                },
              },
              &quot;trainingOptions&quot;: { # Options that were used for this training run, includes user specified and default options that were used.
                &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
                &quot;modelUri&quot;: &quot;A String&quot;, # [Beta] Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
                &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
                &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
                &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
                &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of non-seasonal p and q.
                &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;dropout&quot;: 3.14, # Dropout probability for dnn models.
                &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
                &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
                &quot;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
                &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;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;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
                &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;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;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                  &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;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;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
                &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
                &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
                &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
                &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
                  &quot;A String&quot;,
                ],
                &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
                &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
                &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
                &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
                &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The id column that will be used to indicate different time series to forecast in parallel.
                &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;hiddenUnits&quot;: [ # Hidden units for dnn models.
                  &quot;A String&quot;,
                ],
                &quot;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
                &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;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
                &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
                &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;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
                &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
                &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
                &quot;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
                &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
                &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
                &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
                &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree models.
                &quot;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
              },
              &quot;globalExplanations&quot;: [ # Global explanations for important features of the model. For multi-class models, there is one entry for each label class. For other models, there is only one entry in the list.
                { # Global explanations containing the top most important features after training.
                  &quot;explanations&quot;: [ # A list of the top global explanations. Sorted by absolute value of attribution in descending order.
                    { # Explanation for a single feature.
                      &quot;attribution&quot;: 3.14, # Attribution of feature.
                      &quot;featureName&quot;: &quot;A String&quot;, # Full name of the feature. For non-numerical features, will be formatted like .. Overall size of feature name will always be truncated to first 120 characters.
                    },
                  ],
                  &quot;classLabel&quot;: &quot;A String&quot;, # Class label for this set of global explanations. Will be empty/null for binary logistic and linear regression models. Sorted alphabetically in descending order.
                },
              ],
            },
          ],
          &quot;etag&quot;: &quot;A String&quot;, # Output only. A hash of this resource.
          &quot;modelType&quot;: &quot;A String&quot;, # Output only. Type of the model resource.
          &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;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;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
              &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;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;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
                &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;labelColumns&quot;: [ # Output only. Label columns that were used to train this model. The output of the model will have a &quot;predicted_&quot; prefix to these columns.
            { # A field or a column.
              &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
              &quot;type&quot;: { # The 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;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;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
                &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;friendlyName&quot;: &quot;A String&quot;, # Optional. A descriptive name for this model.
          &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;description&quot;: &quot;A String&quot;, # Optional. A user-friendly description of this model.
          &quot;encryptionConfiguration&quot;: { # Custom encryption configuration (e.g., Cloud KMS keys). This shows the encryption configuration of the model data while stored in BigQuery storage. This field can be used with PatchModel to update encryption key for an already encrypted model.
            &quot;kmsKeyName&quot;: &quot;A String&quot;, # [Optional] Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key.
          },
          &quot;location&quot;: &quot;A String&quot;, # Output only. The geographic location where the model resides. This value is inherited from the dataset.
        },
    ],
  }</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;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;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;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of iteration.
            &quot;index&quot;: 42, # Index of the iteration, 0 based.
            &quot;durationMs&quot;: &quot;A String&quot;, # Time taken to run the iteration in milliseconds.
            &quot;arimaResult&quot;: { # (Auto-)arima fitting result. Wrap everything in ArimaResult for easier refactoring if we want to use model-specific iteration results.
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &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;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;hasDrift&quot;: True or False, # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                  &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                    &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                    &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;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;aic&quot;: 3.14, # AIC.
                    &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                  },
                },
              ],
            },
            &quot;clusterInfos&quot;: [ # Information about top clusters for clustering models.
              { # Information about a single cluster for clustering model.
                &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;clusterRadius&quot;: 3.14, # Cluster radius, the average distance from centroid to each point assigned to the cluster.
              },
            ],
            &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
          },
        ],
        &quot;startTime&quot;: &quot;A String&quot;, # The start time of this training run.
        &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;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;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
              &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
              &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
              &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
              &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
              &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
              &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;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
            &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
              { # Confusion matrix for binary classification models.
                &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
                &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
                &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
                &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
                &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
                &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
                &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;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
              },
            ],
            &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
          },
          &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
            &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
              { # Confusion matrix for multi-class classification models.
                &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;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
              },
            ],
            &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;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
              &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
              &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
              &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
              &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
              &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
              &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;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;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
                &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
                &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                  { # Representative value of a single feature within the cluster.
                    &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                    &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;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
            &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
          },
          &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
            &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;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;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;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;medianAbsoluteError&quot;: 3.14, # Median absolute error.
          },
          &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
            &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
              True or False,
            ],
            &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
              &quot;A String&quot;,
            ],
            &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
              &quot;A String&quot;,
            ],
            &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
              { # ARIMA model fitting metrics.
                &quot;variance&quot;: 3.14, # Variance.
                &quot;aic&quot;: 3.14, # AIC.
                &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
              },
            ],
            &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
              { # Arima order, can be used for both non-seasonal and seasonal parts.
                &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                &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;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;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                  &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                  &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;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
                &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;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                  &quot;variance&quot;: 3.14, # Variance.
                  &quot;aic&quot;: 3.14, # AIC.
                  &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                },
              },
            ],
          },
        },
        &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;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
            &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
          },
          &quot;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;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
            &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
          },
        },
        &quot;trainingOptions&quot;: { # Options that were used for this training run, includes user specified and default options that were used.
          &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
          &quot;modelUri&quot;: &quot;A String&quot;, # [Beta] Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
          &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
          &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
          &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
          &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of non-seasonal p and q.
          &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;dropout&quot;: 3.14, # Dropout probability for dnn models.
          &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
          &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
          &quot;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
          &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;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;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
          &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;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;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
            &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;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;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
          &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
          &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
          &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
          &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
            &quot;A String&quot;,
          ],
          &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
          &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
          &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
          &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
          &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The id column that will be used to indicate different time series to forecast in parallel.
          &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;hiddenUnits&quot;: [ # Hidden units for dnn models.
            &quot;A String&quot;,
          ],
          &quot;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
          &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;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
          &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
          &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;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
          &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
          &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
          &quot;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
          &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
          &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
          &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
          &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree models.
          &quot;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
        },
        &quot;globalExplanations&quot;: [ # Global explanations for important features of the model. For multi-class models, there is one entry for each label class. For other models, there is only one entry in the list.
          { # Global explanations containing the top most important features after training.
            &quot;explanations&quot;: [ # A list of the top global explanations. Sorted by absolute value of attribution in descending order.
              { # Explanation for a single feature.
                &quot;attribution&quot;: 3.14, # Attribution of feature.
                &quot;featureName&quot;: &quot;A String&quot;, # Full name of the feature. For non-numerical features, will be formatted like .. Overall size of feature name will always be truncated to first 120 characters.
              },
            ],
            &quot;classLabel&quot;: &quot;A String&quot;, # Class label for this set of global explanations. Will be empty/null for binary logistic and linear regression models. Sorted alphabetically in descending order.
          },
        ],
      },
    ],
    &quot;etag&quot;: &quot;A String&quot;, # Output only. A hash of this resource.
    &quot;modelType&quot;: &quot;A String&quot;, # Output only. Type of the model resource.
    &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;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;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
        &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;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;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
          &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;labelColumns&quot;: [ # Output only. Label columns that were used to train this model. The output of the model will have a &quot;predicted_&quot; prefix to these columns.
      { # A field or a column.
        &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
        &quot;type&quot;: { # The 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;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;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
          &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;friendlyName&quot;: &quot;A String&quot;, # Optional. A descriptive name for this model.
    &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;description&quot;: &quot;A String&quot;, # Optional. A user-friendly description of this model.
    &quot;encryptionConfiguration&quot;: { # Custom encryption configuration (e.g., Cloud KMS keys). This shows the encryption configuration of the model data while stored in BigQuery storage. This field can be used with PatchModel to update encryption key for an already encrypted model.
      &quot;kmsKeyName&quot;: &quot;A String&quot;, # [Optional] Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key.
    },
    &quot;location&quot;: &quot;A String&quot;, # Output only. The geographic location where the model resides. This value is inherited from the dataset.
  }


Returns:
  An object of the form:

    {
      &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;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;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of iteration.
              &quot;index&quot;: 42, # Index of the iteration, 0 based.
              &quot;durationMs&quot;: &quot;A String&quot;, # Time taken to run the iteration in milliseconds.
              &quot;arimaResult&quot;: { # (Auto-)arima fitting result. Wrap everything in ArimaResult for easier refactoring if we want to use model-specific iteration results.
                &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                  &quot;A String&quot;,
                ],
                &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;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;hasDrift&quot;: True or False, # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                    &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                      &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                      &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;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;aic&quot;: 3.14, # AIC.
                      &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                    },
                  },
                ],
              },
              &quot;clusterInfos&quot;: [ # Information about top clusters for clustering models.
                { # Information about a single cluster for clustering model.
                  &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;clusterRadius&quot;: 3.14, # Cluster radius, the average distance from centroid to each point assigned to the cluster.
                },
              ],
              &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
            },
          ],
          &quot;startTime&quot;: &quot;A String&quot;, # The start time of this training run.
          &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;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;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
                &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
                &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
                &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
                &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
                &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;negativeLabel&quot;: &quot;A String&quot;, # Label representing the negative class.
              &quot;binaryConfusionMatrixList&quot;: [ # Binary confusion matrix at multiple thresholds.
                { # Confusion matrix for binary classification models.
                  &quot;truePositives&quot;: &quot;A String&quot;, # Number of true samples predicted as true.
                  &quot;accuracy&quot;: 3.14, # The fraction of predictions given the correct label.
                  &quot;f1Score&quot;: 3.14, # The equally weighted average of recall and precision.
                  &quot;recall&quot;: 3.14, # The fraction of actual positive labels that were given a positive prediction.
                  &quot;trueNegatives&quot;: &quot;A String&quot;, # Number of true samples predicted as false.
                  &quot;falseNegatives&quot;: &quot;A String&quot;, # Number of false samples predicted as false.
                  &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;falsePositives&quot;: &quot;A String&quot;, # Number of false samples predicted as true.
                },
              ],
              &quot;positiveLabel&quot;: &quot;A String&quot;, # Label representing the positive class.
            },
            &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
              &quot;confusionMatrixList&quot;: [ # Confusion matrix at different thresholds.
                { # Confusion matrix for multi-class classification models.
                  &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;confidenceThreshold&quot;: 3.14, # Confidence threshold used when computing the entries of the confusion matrix.
                },
              ],
              &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;f1Score&quot;: 3.14, # The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.
                &quot;threshold&quot;: 3.14, # Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.
                &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
                &quot;logLoss&quot;: 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                &quot;precision&quot;: 3.14, # Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.
                &quot;rocAuc&quot;: 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged metric.
                &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;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;count&quot;: &quot;A String&quot;, # Count of training data rows that were assigned to this cluster.
                  &quot;centroidId&quot;: &quot;A String&quot;, # Centroid id.
                  &quot;featureValues&quot;: [ # Values of highly variant features for this cluster.
                    { # Representative value of a single feature within the cluster.
                      &quot;numericalValue&quot;: 3.14, # The numerical feature value. This is the centroid value for this feature.
                      &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;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
              &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
            },
            &quot;rankingMetrics&quot;: { # Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit. # Populated for implicit feedback type matrix factorization models.
              &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;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;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;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;medianAbsoluteError&quot;: 3.14, # Median absolute error.
            },
            &quot;arimaForecastingMetrics&quot;: { # Model evaluation metrics for ARIMA forecasting models. # Populated for ARIMA models.
              &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
                True or False,
              ],
              &quot;timeSeriesId&quot;: [ # Id to differentiate different time series for the large-scale case.
                &quot;A String&quot;,
              ],
              &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
                &quot;A String&quot;,
              ],
              &quot;arimaFittingMetrics&quot;: [ # Arima model fitting metrics.
                { # ARIMA model fitting metrics.
                  &quot;variance&quot;: 3.14, # Variance.
                  &quot;aic&quot;: 3.14, # AIC.
                  &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                },
              ],
              &quot;nonSeasonalOrder&quot;: [ # Non-seasonal order.
                { # Arima order, can be used for both non-seasonal and seasonal parts.
                  &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                  &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;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;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                    &quot;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
                    &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;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
                  &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;arimaFittingMetrics&quot;: { # ARIMA model fitting metrics. # Arima fitting metrics.
                    &quot;variance&quot;: 3.14, # Variance.
                    &quot;aic&quot;: 3.14, # AIC.
                    &quot;logLikelihood&quot;: 3.14, # Log-likelihood.
                  },
                },
              ],
            },
          },
          &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;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
              &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
            },
            &quot;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;datasetId&quot;: &quot;A String&quot;, # [Required] The ID of the dataset containing this table.
              &quot;projectId&quot;: &quot;A String&quot;, # [Required] The ID of the project containing this table.
            },
          },
          &quot;trainingOptions&quot;: { # Options that were used for this training run, includes user specified and default options that were used.
            &quot;l1Regularization&quot;: 3.14, # L1 regularization coefficient.
            &quot;modelUri&quot;: &quot;A String&quot;, # [Beta] Google Cloud Storage URI from which the model was imported. Only applicable for imported models.
            &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
            &quot;initialLearnRate&quot;: 3.14, # Specifies the initial learning rate for the line search learn rate strategy.
            &quot;kmeansInitializationMethod&quot;: &quot;A String&quot;, # The method used to initialize the centroids for kmeans algorithm.
            &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of non-seasonal p and q.
            &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;dropout&quot;: 3.14, # Dropout probability for dnn models.
            &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
            &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
            &quot;itemColumn&quot;: &quot;A String&quot;, # Item column specified for matrix factorization models.
            &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;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;learnRateStrategy&quot;: &quot;A String&quot;, # The strategy to determine learn rate for the current iteration.
            &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;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;q&quot;: &quot;A String&quot;, # Order of the moving-average part.
              &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;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;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
            &quot;optimizationStrategy&quot;: &quot;A String&quot;, # Optimization strategy for training linear regression models.
            &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
            &quot;horizon&quot;: &quot;A String&quot;, # The number of periods ahead that need to be forecasted.
            &quot;inputLabelColumns&quot;: [ # Name of input label columns in training data.
              &quot;A String&quot;,
            ],
            &quot;maxIterations&quot;: &quot;A String&quot;, # The maximum number of iterations in training. Used only for iterative training algorithms.
            &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
            &quot;numClusters&quot;: &quot;A String&quot;, # Number of clusters for clustering models.
            &quot;feedbackType&quot;: &quot;A String&quot;, # Feedback type that specifies which algorithm to run for matrix factorization.
            &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The id column that will be used to indicate different time series to forecast in parallel.
            &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;hiddenUnits&quot;: [ # Hidden units for dnn models.
              &quot;A String&quot;,
            ],
            &quot;includeDrift&quot;: True or False, # Include drift when fitting an ARIMA model.
            &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;warmStart&quot;: True or False, # Whether to train a model from the last checkpoint.
            &quot;lossType&quot;: &quot;A String&quot;, # Type of loss function used during training run.
            &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;numFactors&quot;: &quot;A String&quot;, # Num factors specified for matrix factorization models.
            &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
            &quot;minSplitLoss&quot;: 3.14, # Minimum split loss for boosted tree models.
            &quot;l2Regularization&quot;: 3.14, # L2 regularization coefficient.
            &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
            &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
            &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
            &quot;maxTreeDepth&quot;: &quot;A String&quot;, # Maximum depth of a tree for boosted tree models.
            &quot;learnRate&quot;: 3.14, # Learning rate in training. Used only for iterative training algorithms.
          },
          &quot;globalExplanations&quot;: [ # Global explanations for important features of the model. For multi-class models, there is one entry for each label class. For other models, there is only one entry in the list.
            { # Global explanations containing the top most important features after training.
              &quot;explanations&quot;: [ # A list of the top global explanations. Sorted by absolute value of attribution in descending order.
                { # Explanation for a single feature.
                  &quot;attribution&quot;: 3.14, # Attribution of feature.
                  &quot;featureName&quot;: &quot;A String&quot;, # Full name of the feature. For non-numerical features, will be formatted like .. Overall size of feature name will always be truncated to first 120 characters.
                },
              ],
              &quot;classLabel&quot;: &quot;A String&quot;, # Class label for this set of global explanations. Will be empty/null for binary logistic and linear regression models. Sorted alphabetically in descending order.
            },
          ],
        },
      ],
      &quot;etag&quot;: &quot;A String&quot;, # Output only. A hash of this resource.
      &quot;modelType&quot;: &quot;A String&quot;, # Output only. Type of the model resource.
      &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;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;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
          &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;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;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
            &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;labelColumns&quot;: [ # Output only. Label columns that were used to train this model. The output of the model will have a &quot;predicted_&quot; prefix to these columns.
        { # A field or a column.
          &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
          &quot;type&quot;: { # The 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;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;arrayElementType&quot;: # Object with schema name: StandardSqlDataType # The type of the array&#x27;s elements, if type_kind = &quot;ARRAY&quot;.
            &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;friendlyName&quot;: &quot;A String&quot;, # Optional. A descriptive name for this model.
      &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;description&quot;: &quot;A String&quot;, # Optional. A user-friendly description of this model.
      &quot;encryptionConfiguration&quot;: { # Custom encryption configuration (e.g., Cloud KMS keys). This shows the encryption configuration of the model data while stored in BigQuery storage. This field can be used with PatchModel to update encryption key for an already encrypted model.
        &quot;kmsKeyName&quot;: &quot;A String&quot;, # [Optional] Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key.
      },
      &quot;location&quot;: &quot;A String&quot;, # Output only. The geographic location where the model resides. This value is inherited from the dataset.
    }</pre>
</div>

</body></html>