BigQuery API . models

Instance Methods

delete(projectId=*, datasetId=*, modelId=*)

Deletes the model specified by modelId from the dataset.

get(projectId=*, datasetId=*, modelId=*)

Gets the specified model resource by model ID.

list(projectId=*, datasetId=*, pageToken=None, maxResults=None)

Lists all models in the specified dataset. Requires the READER dataset

list_next(previous_request=*, previous_response=*)

Retrieves the next page of results.

patch(projectId=*, datasetId=*, modelId=*, body=None)

Patch specific fields in the specified model.

Method Details

delete(projectId=*, datasetId=*, modelId=*)
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)
get(projectId=*, datasetId=*, modelId=*)
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:

    {
      "labelColumns": [ # Output only. Label columns that were used to train this model.
          # The output of the model will have a "predicted_" prefix to these columns.
        { # A field or a column.
          "type": { # The type of a variable, e.g., a function argument. # 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 "type" field).
              # Examples:
              # INT64: {type_kind="INT64"}
              # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
              # STRUCT<x STRING, y ARRAY<DATE>>:
              #   {type_kind="STRUCT",
              #    struct_type={fields=[
              #      {name="x", type={type_kind="STRING"}},
              #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
              #    ]}}
            "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
              "fields": [
                # Object with schema name: StandardSqlField
              ],
            },
            "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
            "typeKind": "A String", # Required. The top level type of this field.
                # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
          },
          "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
        },
      ],
      "description": "A String", # Optional. A user-friendly description of this model.
      "trainingRuns": [ # Output only. Information for all training runs in increasing order of start_time.
        { # Information about a single training query run for the model.
          "evaluationMetrics": { # Evaluation metrics of a model. These are either computed on all training # The evaluation metrics over training/eval data that were computed at the
              # end of training.
              # data or just the eval data based on whether eval data was used during
              # training. These are not present for imported models.
            "clusteringMetrics": { # Evaluation metrics for clustering models. # Populated for clustering models.
              "meanSquaredDistance": 3.14, # Mean of squared distances between each sample to its cluster centroid.
              "clusters": [ # [Beta] Information for all clusters.
                { # Message containing the information about one cluster.
                  "count": "A String", # Count of training data rows that were assigned to this cluster.
                  "centroidId": "A String", # Centroid id.
                  "featureValues": [ # Values of highly variant features for this cluster.
                    { # Representative value of a single feature within the cluster.
                      "featureColumn": "A String", # The feature column name.
                      "numericalValue": 3.14, # The numerical feature value. This is the centroid value for this
                          # feature.
                      "categoricalValue": { # Representative value of a categorical feature. # The categorical feature value.
                        "categoryCounts": [ # 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 "_OTHER_" and count as
                            # aggregate counts of remaining categories.
                          { # Represents the count of a single category within the cluster.
                            "count": "A String", # The count of training samples matching the category within the
                                # cluster.
                            "category": "A String", # The name of category.
                          },
                        ],
                      },
                    },
                  ],
                },
              ],
              "daviesBouldinIndex": 3.14, # Davies-Bouldin index.
            },
            "regressionMetrics": { # Evaluation metrics for regression and explicit feedback type matrix # Populated for regression models and explicit feedback type matrix
                # factorization models.
                # factorization models.
              "rSquared": 3.14, # R^2 score.
              "meanAbsoluteError": 3.14, # Mean absolute error.
              "meanSquaredError": 3.14, # Mean squared error.
              "medianAbsoluteError": 3.14, # Median absolute error.
              "meanSquaredLogError": 3.14, # Mean squared log error.
            },
            "rankingMetrics": { # Evaluation metrics used by weighted-ALS models specified by # [Alpha] Populated for implicit feedback type matrix factorization
                # models.
                # feedback_type=implicit.
              "meanSquaredError": 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.
              "meanAveragePrecision": 3.14, # Calculates a precision per user for all the items by ranking them and
                  # then averages all the precisions across all the users.
              "averageRank": 3.14, # Determines the goodness of a ranking by computing the percentile rank
                  # from the predicted confidence and dividing it by the original rank.
              "normalizedDiscountedCumulativeGain": 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.
            },
            "binaryClassificationMetrics": { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
              "negativeLabel": "A String", # Label representing the negative class.
              "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
                  # 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.
                "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
                    # positive prediction. For multiclass this is a macro-averaged metric.
                "precision": 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.
                "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                "threshold": 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.
                "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
                    # multiclass this is a micro-averaged metric.
                "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
                    # this is a macro-averaged metric.
                "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
                    # metric.
              },
              "positiveLabel": "A String", # Label representing the positive class.
              "binaryConfusionMatrixList": [ # Binary confusion matrix at multiple thresholds.
                { # Confusion matrix for binary classification models.
                  "truePositives": "A String", # Number of true samples predicted as true.
                  "trueNegatives": "A String", # Number of true samples predicted as false.
                  "precision": 3.14, # The fraction of actual positive predictions that had positive actual
                      # labels.
                  "falseNegatives": "A String", # Number of false samples predicted as false.
                  "recall": 3.14, # The fraction of actual positive labels that were given a positive
                      # prediction.
                  "falsePositives": "A String", # Number of false samples predicted as true.
                  "f1Score": 3.14, # The equally weighted average of recall and precision.
                  "positiveClassThreshold": 3.14, # Threshold value used when computing each of the following metric.
                  "accuracy": 3.14, # The fraction of predictions given the correct label.
                },
              ],
            },
            "multiClassClassificationMetrics": { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
              "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
                  # 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.
                "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
                    # positive prediction. For multiclass this is a macro-averaged metric.
                "precision": 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.
                "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                "threshold": 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.
                "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
                    # multiclass this is a micro-averaged metric.
                "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
                    # this is a macro-averaged metric.
                "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
                    # metric.
              },
              "confusionMatrixList": [ # Confusion matrix at different thresholds.
                { # Confusion matrix for multi-class classification models.
                  "confidenceThreshold": 3.14, # Confidence threshold used when computing the entries of the
                      # confusion matrix.
                  "rows": [ # One row per actual label.
                    { # A single row in the confusion matrix.
                      "entries": [ # Info describing predicted label distribution.
                        { # A single entry in the confusion matrix.
                          "predictedLabel": "A String", # The predicted label. For confidence_threshold > 0, we will
                              # also add an entry indicating the number of items under the
                              # confidence threshold.
                          "itemCount": "A String", # Number of items being predicted as this label.
                        },
                      ],
                      "actualLabel": "A String", # The original label of this row.
                    },
                  ],
                },
              ],
            },
          },
          "dataSplitResult": { # Data split result. This contains references to the training and evaluation # Data split result of the training run. Only set when the input data is
              # actually split.
              # data tables that were used to train the model.
            "trainingTable": { # Table reference of the training data after split.
              "projectId": "A String", # [Required] The ID of the project containing this table.
              "tableId": "A String", # [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.
              "datasetId": "A String", # [Required] The ID of the dataset containing this table.
            },
            "evaluationTable": { # Table reference of the evaluation data after split.
              "projectId": "A String", # [Required] The ID of the project containing this table.
              "tableId": "A String", # [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.
              "datasetId": "A String", # [Required] The ID of the dataset containing this table.
            },
          },
          "results": [ # Output of each iteration run, results.size() <= max_iterations.
            { # Information about a single iteration of the training run.
              "arimaResult": { # (Auto-)arima fitting result. Wrap everything in ArimaResult for easier
                  # refactoring if we want to use model-specific iteration results.
                "arimaModelInfo": [ # 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.
                    "seasonalPeriods": [ # Seasonal periods. Repeated because multiple periods are supported
                        # for one time series.
                      "A String",
                    ],
                    "hasDrift": True or False, # Whether Arima model fitted with drift or not. It is always false
                        # when d is not 1.
                    "arimaCoefficients": { # Arima coefficients. # Arima coefficients.
                      "movingAverageCoefficients": [ # Moving-average coefficients, an array of double.
                        3.14,
                      ],
                      "autoRegressiveCoefficients": [ # Auto-regressive coefficients, an array of double.
                        3.14,
                      ],
                      "interceptCoefficient": 3.14, # Intercept coefficient, just a double not an array.
                    },
                    "nonSeasonalOrder": { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                      "q": "A String", # Order of the moving-average part.
                      "p": "A String", # Order of the autoregressive part.
                      "d": "A String", # Order of the differencing part.
                    },
                    "arimaFittingMetrics": { # ARIMA model fitting metrics. # Arima fitting metrics.
                      "variance": 3.14, # Variance.
                      "logLikelihood": 3.14, # Log-likelihood.
                      "aic": 3.14, # AIC.
                    },
                    "timeSeriesId": "A String", # The id to indicate different time series.
                  },
                ],
                "seasonalPeriods": [ # Seasonal periods. Repeated because multiple periods are supported for
                    # one time series.
                  "A String",
                ],
              },
              "index": 42, # Index of the iteration, 0 based.
              "evalLoss": 3.14, # Loss computed on the eval data at the end of iteration.
              "durationMs": "A String", # Time taken to run the iteration in milliseconds.
              "learnRate": 3.14, # Learn rate used for this iteration.
              "trainingLoss": 3.14, # Loss computed on the training data at the end of iteration.
              "clusterInfos": [ # Information about top clusters for clustering models.
                { # Information about a single cluster for clustering model.
                  "centroidId": "A String", # Centroid id.
                  "clusterSize": "A String", # Cluster size, the total number of points assigned to the cluster.
                  "clusterRadius": 3.14, # Cluster radius, the average distance from centroid
                      # to each point assigned to the cluster.
                },
              ],
            },
          ],
          "startTime": "A String", # The start time of this training run.
          "trainingOptions": { # Options that were used for this training run, includes
              # user specified and default options that were used.
            "optimizationStrategy": "A String", # Optimization strategy for training linear regression models.
            "itemColumn": "A String", # Item column specified for matrix factorization models.
            "userColumn": "A String", # User column specified for matrix factorization models.
            "numFactors": "A String", # Num factors specified for matrix factorization models.
            "inputLabelColumns": [ # Name of input label columns in training data.
              "A String",
            ],
            "batchSize": "A String", # Batch size for dnn models.
            "distanceType": "A String", # Distance type for clustering models.
            "kmeansInitializationColumn": "A String", # The column used to provide the initial centroids for kmeans algorithm
                # when kmeans_initialization_method is CUSTOM.
            "l2Regularization": 3.14, # L2 regularization coefficient.
            "numClusters": "A String", # Number of clusters for clustering models.
            "minRelativeProgress": 3.14, # When early_stop is true, stops training when accuracy improvement is
                # less than 'min_relative_progress'. Used only for iterative training
                # algorithms.
            "learnRate": 3.14, # Learning rate in training. Used only for iterative training algorithms.
            "maxIterations": "A String", # The maximum number of iterations in training. Used only for iterative
                # training algorithms.
            "earlyStop": True or False, # Whether to stop early when the loss doesn't improve significantly
                # any more (compared to min_relative_progress). Used only for iterative
                # training algorithms.
            "initialLearnRate": 3.14, # Specifies the initial learning rate for the line search learn rate
                # strategy.
            "dataSplitColumn": "A String", # The column to split data with. This column won'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
            "dropout": 3.14, # Dropout probability for dnn models.
            "warmStart": True or False, # Whether to train a model from the last checkpoint.
            "hiddenUnits": [ # Hidden units for dnn models.
              "A String",
            ],
            "lossType": "A String", # Type of loss function used during training run.
            "feedbackType": "A String", # Feedback type that specifies which algorithm to run for matrix
                # factorization.
            "kmeansInitializationMethod": "A String", # The method used to initialize the centroids for kmeans algorithm.
            "learnRateStrategy": "A String", # The strategy to determine learn rate for the current iteration.
            "dataSplitEvalFraction": 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.
            "dataSplitMethod": "A String", # The data split type for training and evaluation, e.g. RANDOM.
            "subsample": 3.14, # Subsample fraction of the training data to grow tree to prevent
                # overfitting for boosted tree models.
            "labelClassWeights": { # Weights associated with each label class, for rebalancing the
                # training data. Only applicable for classification models.
              "a_key": 3.14,
            },
            "l1Regularization": 3.14, # L1 regularization coefficient.
            "modelUri": "A String", # [Beta] Google Cloud Storage URI from which the model was imported. Only
                # applicable for imported models.
            "walsAlpha": 3.14, # Hyperparameter for matrix factoration when implicit feedback type is
                # specified.
            "minSplitLoss": 3.14, # Minimum split loss for boosted tree models.
            "maxTreeDepth": "A String", # Maximum depth of a tree for boosted tree models.
          },
        },
      ],
      "featureColumns": [ # Output only. Input feature columns that were used to train this model.
        { # A field or a column.
          "type": { # The type of a variable, e.g., a function argument. # 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 "type" field).
              # Examples:
              # INT64: {type_kind="INT64"}
              # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
              # STRUCT<x STRING, y ARRAY<DATE>>:
              #   {type_kind="STRUCT",
              #    struct_type={fields=[
              #      {name="x", type={type_kind="STRING"}},
              #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
              #    ]}}
            "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
              "fields": [
                # Object with schema name: StandardSqlField
              ],
            },
            "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
            "typeKind": "A String", # Required. The top level type of this field.
                # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
          },
          "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
        },
      ],
      "labels": { # 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.
        "a_key": "A String",
      },
      "creationTime": "A String", # Output only. The time when this model was created, in millisecs since the epoch.
      "modelType": "A String", # Output only. Type of the model resource.
      "encryptionConfiguration": { # 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.
        "kmsKeyName": "A String", # [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.
      },
      "modelReference": { # Required. Unique identifier for this model.
        "projectId": "A String", # [Required] The ID of the project containing this model.
        "datasetId": "A String", # [Required] The ID of the dataset containing this model.
        "modelId": "A String", # [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.
      },
      "etag": "A String", # Output only. A hash of this resource.
      "location": "A String", # Output only. The geographic location where the model resides. This value
          # is inherited from the dataset.
      "friendlyName": "A String", # Optional. A descriptive name for this model.
      "expirationTime": "A String", # 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.
      "lastModifiedTime": "A String", # Output only. The time when this model was last modified, in millisecs since the epoch.
    }
list(projectId=*, datasetId=*, pageToken=None, maxResults=None)
Lists all models in the specified dataset. Requires the READER dataset
role.

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

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # A token to request the next page of results.
    "models": [ # Models in the requested dataset. Only the following fields are populated:
        # model_reference, model_type, creation_time, last_modified_time and
        # labels.
      {
          "labelColumns": [ # Output only. Label columns that were used to train this model.
              # The output of the model will have a "predicted_" prefix to these columns.
            { # A field or a column.
              "type": { # The type of a variable, e.g., a function argument. # 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 "type" field).
                  # Examples:
                  # INT64: {type_kind="INT64"}
                  # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
                  # STRUCT<x STRING, y ARRAY<DATE>>:
                  #   {type_kind="STRUCT",
                  #    struct_type={fields=[
                  #      {name="x", type={type_kind="STRING"}},
                  #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
                  #    ]}}
                "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
                  "fields": [
                    # Object with schema name: StandardSqlField
                  ],
                },
                "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
                "typeKind": "A String", # Required. The top level type of this field.
                    # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
              },
              "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
            },
          ],
          "description": "A String", # Optional. A user-friendly description of this model.
          "trainingRuns": [ # Output only. Information for all training runs in increasing order of start_time.
            { # Information about a single training query run for the model.
              "evaluationMetrics": { # Evaluation metrics of a model. These are either computed on all training # The evaluation metrics over training/eval data that were computed at the
                  # end of training.
                  # data or just the eval data based on whether eval data was used during
                  # training. These are not present for imported models.
                "clusteringMetrics": { # Evaluation metrics for clustering models. # Populated for clustering models.
                  "meanSquaredDistance": 3.14, # Mean of squared distances between each sample to its cluster centroid.
                  "clusters": [ # [Beta] Information for all clusters.
                    { # Message containing the information about one cluster.
                      "count": "A String", # Count of training data rows that were assigned to this cluster.
                      "centroidId": "A String", # Centroid id.
                      "featureValues": [ # Values of highly variant features for this cluster.
                        { # Representative value of a single feature within the cluster.
                          "featureColumn": "A String", # The feature column name.
                          "numericalValue": 3.14, # The numerical feature value. This is the centroid value for this
                              # feature.
                          "categoricalValue": { # Representative value of a categorical feature. # The categorical feature value.
                            "categoryCounts": [ # 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 "_OTHER_" and count as
                                # aggregate counts of remaining categories.
                              { # Represents the count of a single category within the cluster.
                                "count": "A String", # The count of training samples matching the category within the
                                    # cluster.
                                "category": "A String", # The name of category.
                              },
                            ],
                          },
                        },
                      ],
                    },
                  ],
                  "daviesBouldinIndex": 3.14, # Davies-Bouldin index.
                },
                "regressionMetrics": { # Evaluation metrics for regression and explicit feedback type matrix # Populated for regression models and explicit feedback type matrix
                    # factorization models.
                    # factorization models.
                  "rSquared": 3.14, # R^2 score.
                  "meanAbsoluteError": 3.14, # Mean absolute error.
                  "meanSquaredError": 3.14, # Mean squared error.
                  "medianAbsoluteError": 3.14, # Median absolute error.
                  "meanSquaredLogError": 3.14, # Mean squared log error.
                },
                "rankingMetrics": { # Evaluation metrics used by weighted-ALS models specified by # [Alpha] Populated for implicit feedback type matrix factorization
                    # models.
                    # feedback_type=implicit.
                  "meanSquaredError": 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.
                  "meanAveragePrecision": 3.14, # Calculates a precision per user for all the items by ranking them and
                      # then averages all the precisions across all the users.
                  "averageRank": 3.14, # Determines the goodness of a ranking by computing the percentile rank
                      # from the predicted confidence and dividing it by the original rank.
                  "normalizedDiscountedCumulativeGain": 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.
                },
                "binaryClassificationMetrics": { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
                  "negativeLabel": "A String", # Label representing the negative class.
                  "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
                      # 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.
                    "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
                        # positive prediction. For multiclass this is a macro-averaged metric.
                    "precision": 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.
                    "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                    "threshold": 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.
                    "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
                        # multiclass this is a micro-averaged metric.
                    "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
                        # this is a macro-averaged metric.
                    "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
                        # metric.
                  },
                  "positiveLabel": "A String", # Label representing the positive class.
                  "binaryConfusionMatrixList": [ # Binary confusion matrix at multiple thresholds.
                    { # Confusion matrix for binary classification models.
                      "truePositives": "A String", # Number of true samples predicted as true.
                      "trueNegatives": "A String", # Number of true samples predicted as false.
                      "precision": 3.14, # The fraction of actual positive predictions that had positive actual
                          # labels.
                      "falseNegatives": "A String", # Number of false samples predicted as false.
                      "recall": 3.14, # The fraction of actual positive labels that were given a positive
                          # prediction.
                      "falsePositives": "A String", # Number of false samples predicted as true.
                      "f1Score": 3.14, # The equally weighted average of recall and precision.
                      "positiveClassThreshold": 3.14, # Threshold value used when computing each of the following metric.
                      "accuracy": 3.14, # The fraction of predictions given the correct label.
                    },
                  ],
                },
                "multiClassClassificationMetrics": { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
                  "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
                      # 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.
                    "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
                        # positive prediction. For multiclass this is a macro-averaged metric.
                    "precision": 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.
                    "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                    "threshold": 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.
                    "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
                        # multiclass this is a micro-averaged metric.
                    "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
                        # this is a macro-averaged metric.
                    "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
                        # metric.
                  },
                  "confusionMatrixList": [ # Confusion matrix at different thresholds.
                    { # Confusion matrix for multi-class classification models.
                      "confidenceThreshold": 3.14, # Confidence threshold used when computing the entries of the
                          # confusion matrix.
                      "rows": [ # One row per actual label.
                        { # A single row in the confusion matrix.
                          "entries": [ # Info describing predicted label distribution.
                            { # A single entry in the confusion matrix.
                              "predictedLabel": "A String", # The predicted label. For confidence_threshold > 0, we will
                                  # also add an entry indicating the number of items under the
                                  # confidence threshold.
                              "itemCount": "A String", # Number of items being predicted as this label.
                            },
                          ],
                          "actualLabel": "A String", # The original label of this row.
                        },
                      ],
                    },
                  ],
                },
              },
              "dataSplitResult": { # Data split result. This contains references to the training and evaluation # Data split result of the training run. Only set when the input data is
                  # actually split.
                  # data tables that were used to train the model.
                "trainingTable": { # Table reference of the training data after split.
                  "projectId": "A String", # [Required] The ID of the project containing this table.
                  "tableId": "A String", # [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.
                  "datasetId": "A String", # [Required] The ID of the dataset containing this table.
                },
                "evaluationTable": { # Table reference of the evaluation data after split.
                  "projectId": "A String", # [Required] The ID of the project containing this table.
                  "tableId": "A String", # [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.
                  "datasetId": "A String", # [Required] The ID of the dataset containing this table.
                },
              },
              "results": [ # Output of each iteration run, results.size() <= max_iterations.
                { # Information about a single iteration of the training run.
                  "arimaResult": { # (Auto-)arima fitting result. Wrap everything in ArimaResult for easier
                      # refactoring if we want to use model-specific iteration results.
                    "arimaModelInfo": [ # 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.
                        "seasonalPeriods": [ # Seasonal periods. Repeated because multiple periods are supported
                            # for one time series.
                          "A String",
                        ],
                        "hasDrift": True or False, # Whether Arima model fitted with drift or not. It is always false
                            # when d is not 1.
                        "arimaCoefficients": { # Arima coefficients. # Arima coefficients.
                          "movingAverageCoefficients": [ # Moving-average coefficients, an array of double.
                            3.14,
                          ],
                          "autoRegressiveCoefficients": [ # Auto-regressive coefficients, an array of double.
                            3.14,
                          ],
                          "interceptCoefficient": 3.14, # Intercept coefficient, just a double not an array.
                        },
                        "nonSeasonalOrder": { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                          "q": "A String", # Order of the moving-average part.
                          "p": "A String", # Order of the autoregressive part.
                          "d": "A String", # Order of the differencing part.
                        },
                        "arimaFittingMetrics": { # ARIMA model fitting metrics. # Arima fitting metrics.
                          "variance": 3.14, # Variance.
                          "logLikelihood": 3.14, # Log-likelihood.
                          "aic": 3.14, # AIC.
                        },
                        "timeSeriesId": "A String", # The id to indicate different time series.
                      },
                    ],
                    "seasonalPeriods": [ # Seasonal periods. Repeated because multiple periods are supported for
                        # one time series.
                      "A String",
                    ],
                  },
                  "index": 42, # Index of the iteration, 0 based.
                  "evalLoss": 3.14, # Loss computed on the eval data at the end of iteration.
                  "durationMs": "A String", # Time taken to run the iteration in milliseconds.
                  "learnRate": 3.14, # Learn rate used for this iteration.
                  "trainingLoss": 3.14, # Loss computed on the training data at the end of iteration.
                  "clusterInfos": [ # Information about top clusters for clustering models.
                    { # Information about a single cluster for clustering model.
                      "centroidId": "A String", # Centroid id.
                      "clusterSize": "A String", # Cluster size, the total number of points assigned to the cluster.
                      "clusterRadius": 3.14, # Cluster radius, the average distance from centroid
                          # to each point assigned to the cluster.
                    },
                  ],
                },
              ],
              "startTime": "A String", # The start time of this training run.
              "trainingOptions": { # Options that were used for this training run, includes
                  # user specified and default options that were used.
                "optimizationStrategy": "A String", # Optimization strategy for training linear regression models.
                "itemColumn": "A String", # Item column specified for matrix factorization models.
                "userColumn": "A String", # User column specified for matrix factorization models.
                "numFactors": "A String", # Num factors specified for matrix factorization models.
                "inputLabelColumns": [ # Name of input label columns in training data.
                  "A String",
                ],
                "batchSize": "A String", # Batch size for dnn models.
                "distanceType": "A String", # Distance type for clustering models.
                "kmeansInitializationColumn": "A String", # The column used to provide the initial centroids for kmeans algorithm
                    # when kmeans_initialization_method is CUSTOM.
                "l2Regularization": 3.14, # L2 regularization coefficient.
                "numClusters": "A String", # Number of clusters for clustering models.
                "minRelativeProgress": 3.14, # When early_stop is true, stops training when accuracy improvement is
                    # less than 'min_relative_progress'. Used only for iterative training
                    # algorithms.
                "learnRate": 3.14, # Learning rate in training. Used only for iterative training algorithms.
                "maxIterations": "A String", # The maximum number of iterations in training. Used only for iterative
                    # training algorithms.
                "earlyStop": True or False, # Whether to stop early when the loss doesn't improve significantly
                    # any more (compared to min_relative_progress). Used only for iterative
                    # training algorithms.
                "initialLearnRate": 3.14, # Specifies the initial learning rate for the line search learn rate
                    # strategy.
                "dataSplitColumn": "A String", # The column to split data with. This column won'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
                "dropout": 3.14, # Dropout probability for dnn models.
                "warmStart": True or False, # Whether to train a model from the last checkpoint.
                "hiddenUnits": [ # Hidden units for dnn models.
                  "A String",
                ],
                "lossType": "A String", # Type of loss function used during training run.
                "feedbackType": "A String", # Feedback type that specifies which algorithm to run for matrix
                    # factorization.
                "kmeansInitializationMethod": "A String", # The method used to initialize the centroids for kmeans algorithm.
                "learnRateStrategy": "A String", # The strategy to determine learn rate for the current iteration.
                "dataSplitEvalFraction": 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.
                "dataSplitMethod": "A String", # The data split type for training and evaluation, e.g. RANDOM.
                "subsample": 3.14, # Subsample fraction of the training data to grow tree to prevent
                    # overfitting for boosted tree models.
                "labelClassWeights": { # Weights associated with each label class, for rebalancing the
                    # training data. Only applicable for classification models.
                  "a_key": 3.14,
                },
                "l1Regularization": 3.14, # L1 regularization coefficient.
                "modelUri": "A String", # [Beta] Google Cloud Storage URI from which the model was imported. Only
                    # applicable for imported models.
                "walsAlpha": 3.14, # Hyperparameter for matrix factoration when implicit feedback type is
                    # specified.
                "minSplitLoss": 3.14, # Minimum split loss for boosted tree models.
                "maxTreeDepth": "A String", # Maximum depth of a tree for boosted tree models.
              },
            },
          ],
          "featureColumns": [ # Output only. Input feature columns that were used to train this model.
            { # A field or a column.
              "type": { # The type of a variable, e.g., a function argument. # 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 "type" field).
                  # Examples:
                  # INT64: {type_kind="INT64"}
                  # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
                  # STRUCT<x STRING, y ARRAY<DATE>>:
                  #   {type_kind="STRUCT",
                  #    struct_type={fields=[
                  #      {name="x", type={type_kind="STRING"}},
                  #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
                  #    ]}}
                "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
                  "fields": [
                    # Object with schema name: StandardSqlField
                  ],
                },
                "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
                "typeKind": "A String", # Required. The top level type of this field.
                    # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
              },
              "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
            },
          ],
          "labels": { # 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.
            "a_key": "A String",
          },
          "creationTime": "A String", # Output only. The time when this model was created, in millisecs since the epoch.
          "modelType": "A String", # Output only. Type of the model resource.
          "encryptionConfiguration": { # 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.
            "kmsKeyName": "A String", # [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.
          },
          "modelReference": { # Required. Unique identifier for this model.
            "projectId": "A String", # [Required] The ID of the project containing this model.
            "datasetId": "A String", # [Required] The ID of the dataset containing this model.
            "modelId": "A String", # [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.
          },
          "etag": "A String", # Output only. A hash of this resource.
          "location": "A String", # Output only. The geographic location where the model resides. This value
              # is inherited from the dataset.
          "friendlyName": "A String", # Optional. A descriptive name for this model.
          "expirationTime": "A String", # 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.
          "lastModifiedTime": "A String", # Output only. The time when this model was last modified, in millisecs since the epoch.
        },
    ],
  }
list_next(previous_request=*, previous_response=*)
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 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    
patch(projectId=*, datasetId=*, modelId=*, body=None)
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:

{
    "labelColumns": [ # Output only. Label columns that were used to train this model.
        # The output of the model will have a "predicted_" prefix to these columns.
      { # A field or a column.
        "type": { # The type of a variable, e.g., a function argument. # 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 "type" field).
            # Examples:
            # INT64: {type_kind="INT64"}
            # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
            # STRUCT<x STRING, y ARRAY<DATE>>:
            #   {type_kind="STRUCT",
            #    struct_type={fields=[
            #      {name="x", type={type_kind="STRING"}},
            #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
            #    ]}}
          "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
            "fields": [
              # Object with schema name: StandardSqlField
            ],
          },
          "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
          "typeKind": "A String", # Required. The top level type of this field.
              # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
        },
        "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
      },
    ],
    "description": "A String", # Optional. A user-friendly description of this model.
    "trainingRuns": [ # Output only. Information for all training runs in increasing order of start_time.
      { # Information about a single training query run for the model.
        "evaluationMetrics": { # Evaluation metrics of a model. These are either computed on all training # The evaluation metrics over training/eval data that were computed at the
            # end of training.
            # data or just the eval data based on whether eval data was used during
            # training. These are not present for imported models.
          "clusteringMetrics": { # Evaluation metrics for clustering models. # Populated for clustering models.
            "meanSquaredDistance": 3.14, # Mean of squared distances between each sample to its cluster centroid.
            "clusters": [ # [Beta] Information for all clusters.
              { # Message containing the information about one cluster.
                "count": "A String", # Count of training data rows that were assigned to this cluster.
                "centroidId": "A String", # Centroid id.
                "featureValues": [ # Values of highly variant features for this cluster.
                  { # Representative value of a single feature within the cluster.
                    "featureColumn": "A String", # The feature column name.
                    "numericalValue": 3.14, # The numerical feature value. This is the centroid value for this
                        # feature.
                    "categoricalValue": { # Representative value of a categorical feature. # The categorical feature value.
                      "categoryCounts": [ # 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 "_OTHER_" and count as
                          # aggregate counts of remaining categories.
                        { # Represents the count of a single category within the cluster.
                          "count": "A String", # The count of training samples matching the category within the
                              # cluster.
                          "category": "A String", # The name of category.
                        },
                      ],
                    },
                  },
                ],
              },
            ],
            "daviesBouldinIndex": 3.14, # Davies-Bouldin index.
          },
          "regressionMetrics": { # Evaluation metrics for regression and explicit feedback type matrix # Populated for regression models and explicit feedback type matrix
              # factorization models.
              # factorization models.
            "rSquared": 3.14, # R^2 score.
            "meanAbsoluteError": 3.14, # Mean absolute error.
            "meanSquaredError": 3.14, # Mean squared error.
            "medianAbsoluteError": 3.14, # Median absolute error.
            "meanSquaredLogError": 3.14, # Mean squared log error.
          },
          "rankingMetrics": { # Evaluation metrics used by weighted-ALS models specified by # [Alpha] Populated for implicit feedback type matrix factorization
              # models.
              # feedback_type=implicit.
            "meanSquaredError": 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.
            "meanAveragePrecision": 3.14, # Calculates a precision per user for all the items by ranking them and
                # then averages all the precisions across all the users.
            "averageRank": 3.14, # Determines the goodness of a ranking by computing the percentile rank
                # from the predicted confidence and dividing it by the original rank.
            "normalizedDiscountedCumulativeGain": 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.
          },
          "binaryClassificationMetrics": { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
            "negativeLabel": "A String", # Label representing the negative class.
            "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
                # 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.
              "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
                  # positive prediction. For multiclass this is a macro-averaged metric.
              "precision": 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.
              "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
              "threshold": 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.
              "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
                  # multiclass this is a micro-averaged metric.
              "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
                  # this is a macro-averaged metric.
              "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
                  # metric.
            },
            "positiveLabel": "A String", # Label representing the positive class.
            "binaryConfusionMatrixList": [ # Binary confusion matrix at multiple thresholds.
              { # Confusion matrix for binary classification models.
                "truePositives": "A String", # Number of true samples predicted as true.
                "trueNegatives": "A String", # Number of true samples predicted as false.
                "precision": 3.14, # The fraction of actual positive predictions that had positive actual
                    # labels.
                "falseNegatives": "A String", # Number of false samples predicted as false.
                "recall": 3.14, # The fraction of actual positive labels that were given a positive
                    # prediction.
                "falsePositives": "A String", # Number of false samples predicted as true.
                "f1Score": 3.14, # The equally weighted average of recall and precision.
                "positiveClassThreshold": 3.14, # Threshold value used when computing each of the following metric.
                "accuracy": 3.14, # The fraction of predictions given the correct label.
              },
            ],
          },
          "multiClassClassificationMetrics": { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
            "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
                # 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.
              "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
                  # positive prediction. For multiclass this is a macro-averaged metric.
              "precision": 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.
              "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
              "threshold": 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.
              "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
                  # multiclass this is a micro-averaged metric.
              "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
                  # this is a macro-averaged metric.
              "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
                  # metric.
            },
            "confusionMatrixList": [ # Confusion matrix at different thresholds.
              { # Confusion matrix for multi-class classification models.
                "confidenceThreshold": 3.14, # Confidence threshold used when computing the entries of the
                    # confusion matrix.
                "rows": [ # One row per actual label.
                  { # A single row in the confusion matrix.
                    "entries": [ # Info describing predicted label distribution.
                      { # A single entry in the confusion matrix.
                        "predictedLabel": "A String", # The predicted label. For confidence_threshold > 0, we will
                            # also add an entry indicating the number of items under the
                            # confidence threshold.
                        "itemCount": "A String", # Number of items being predicted as this label.
                      },
                    ],
                    "actualLabel": "A String", # The original label of this row.
                  },
                ],
              },
            ],
          },
        },
        "dataSplitResult": { # Data split result. This contains references to the training and evaluation # Data split result of the training run. Only set when the input data is
            # actually split.
            # data tables that were used to train the model.
          "trainingTable": { # Table reference of the training data after split.
            "projectId": "A String", # [Required] The ID of the project containing this table.
            "tableId": "A String", # [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.
            "datasetId": "A String", # [Required] The ID of the dataset containing this table.
          },
          "evaluationTable": { # Table reference of the evaluation data after split.
            "projectId": "A String", # [Required] The ID of the project containing this table.
            "tableId": "A String", # [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.
            "datasetId": "A String", # [Required] The ID of the dataset containing this table.
          },
        },
        "results": [ # Output of each iteration run, results.size() <= max_iterations.
          { # Information about a single iteration of the training run.
            "arimaResult": { # (Auto-)arima fitting result. Wrap everything in ArimaResult for easier
                # refactoring if we want to use model-specific iteration results.
              "arimaModelInfo": [ # 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.
                  "seasonalPeriods": [ # Seasonal periods. Repeated because multiple periods are supported
                      # for one time series.
                    "A String",
                  ],
                  "hasDrift": True or False, # Whether Arima model fitted with drift or not. It is always false
                      # when d is not 1.
                  "arimaCoefficients": { # Arima coefficients. # Arima coefficients.
                    "movingAverageCoefficients": [ # Moving-average coefficients, an array of double.
                      3.14,
                    ],
                    "autoRegressiveCoefficients": [ # Auto-regressive coefficients, an array of double.
                      3.14,
                    ],
                    "interceptCoefficient": 3.14, # Intercept coefficient, just a double not an array.
                  },
                  "nonSeasonalOrder": { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                    "q": "A String", # Order of the moving-average part.
                    "p": "A String", # Order of the autoregressive part.
                    "d": "A String", # Order of the differencing part.
                  },
                  "arimaFittingMetrics": { # ARIMA model fitting metrics. # Arima fitting metrics.
                    "variance": 3.14, # Variance.
                    "logLikelihood": 3.14, # Log-likelihood.
                    "aic": 3.14, # AIC.
                  },
                  "timeSeriesId": "A String", # The id to indicate different time series.
                },
              ],
              "seasonalPeriods": [ # Seasonal periods. Repeated because multiple periods are supported for
                  # one time series.
                "A String",
              ],
            },
            "index": 42, # Index of the iteration, 0 based.
            "evalLoss": 3.14, # Loss computed on the eval data at the end of iteration.
            "durationMs": "A String", # Time taken to run the iteration in milliseconds.
            "learnRate": 3.14, # Learn rate used for this iteration.
            "trainingLoss": 3.14, # Loss computed on the training data at the end of iteration.
            "clusterInfos": [ # Information about top clusters for clustering models.
              { # Information about a single cluster for clustering model.
                "centroidId": "A String", # Centroid id.
                "clusterSize": "A String", # Cluster size, the total number of points assigned to the cluster.
                "clusterRadius": 3.14, # Cluster radius, the average distance from centroid
                    # to each point assigned to the cluster.
              },
            ],
          },
        ],
        "startTime": "A String", # The start time of this training run.
        "trainingOptions": { # Options that were used for this training run, includes
            # user specified and default options that were used.
          "optimizationStrategy": "A String", # Optimization strategy for training linear regression models.
          "itemColumn": "A String", # Item column specified for matrix factorization models.
          "userColumn": "A String", # User column specified for matrix factorization models.
          "numFactors": "A String", # Num factors specified for matrix factorization models.
          "inputLabelColumns": [ # Name of input label columns in training data.
            "A String",
          ],
          "batchSize": "A String", # Batch size for dnn models.
          "distanceType": "A String", # Distance type for clustering models.
          "kmeansInitializationColumn": "A String", # The column used to provide the initial centroids for kmeans algorithm
              # when kmeans_initialization_method is CUSTOM.
          "l2Regularization": 3.14, # L2 regularization coefficient.
          "numClusters": "A String", # Number of clusters for clustering models.
          "minRelativeProgress": 3.14, # When early_stop is true, stops training when accuracy improvement is
              # less than 'min_relative_progress'. Used only for iterative training
              # algorithms.
          "learnRate": 3.14, # Learning rate in training. Used only for iterative training algorithms.
          "maxIterations": "A String", # The maximum number of iterations in training. Used only for iterative
              # training algorithms.
          "earlyStop": True or False, # Whether to stop early when the loss doesn't improve significantly
              # any more (compared to min_relative_progress). Used only for iterative
              # training algorithms.
          "initialLearnRate": 3.14, # Specifies the initial learning rate for the line search learn rate
              # strategy.
          "dataSplitColumn": "A String", # The column to split data with. This column won'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
          "dropout": 3.14, # Dropout probability for dnn models.
          "warmStart": True or False, # Whether to train a model from the last checkpoint.
          "hiddenUnits": [ # Hidden units for dnn models.
            "A String",
          ],
          "lossType": "A String", # Type of loss function used during training run.
          "feedbackType": "A String", # Feedback type that specifies which algorithm to run for matrix
              # factorization.
          "kmeansInitializationMethod": "A String", # The method used to initialize the centroids for kmeans algorithm.
          "learnRateStrategy": "A String", # The strategy to determine learn rate for the current iteration.
          "dataSplitEvalFraction": 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.
          "dataSplitMethod": "A String", # The data split type for training and evaluation, e.g. RANDOM.
          "subsample": 3.14, # Subsample fraction of the training data to grow tree to prevent
              # overfitting for boosted tree models.
          "labelClassWeights": { # Weights associated with each label class, for rebalancing the
              # training data. Only applicable for classification models.
            "a_key": 3.14,
          },
          "l1Regularization": 3.14, # L1 regularization coefficient.
          "modelUri": "A String", # [Beta] Google Cloud Storage URI from which the model was imported. Only
              # applicable for imported models.
          "walsAlpha": 3.14, # Hyperparameter for matrix factoration when implicit feedback type is
              # specified.
          "minSplitLoss": 3.14, # Minimum split loss for boosted tree models.
          "maxTreeDepth": "A String", # Maximum depth of a tree for boosted tree models.
        },
      },
    ],
    "featureColumns": [ # Output only. Input feature columns that were used to train this model.
      { # A field or a column.
        "type": { # The type of a variable, e.g., a function argument. # 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 "type" field).
            # Examples:
            # INT64: {type_kind="INT64"}
            # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
            # STRUCT<x STRING, y ARRAY<DATE>>:
            #   {type_kind="STRUCT",
            #    struct_type={fields=[
            #      {name="x", type={type_kind="STRING"}},
            #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
            #    ]}}
          "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
            "fields": [
              # Object with schema name: StandardSqlField
            ],
          },
          "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
          "typeKind": "A String", # Required. The top level type of this field.
              # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
        },
        "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
      },
    ],
    "labels": { # 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.
      "a_key": "A String",
    },
    "creationTime": "A String", # Output only. The time when this model was created, in millisecs since the epoch.
    "modelType": "A String", # Output only. Type of the model resource.
    "encryptionConfiguration": { # 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.
      "kmsKeyName": "A String", # [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.
    },
    "modelReference": { # Required. Unique identifier for this model.
      "projectId": "A String", # [Required] The ID of the project containing this model.
      "datasetId": "A String", # [Required] The ID of the dataset containing this model.
      "modelId": "A String", # [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.
    },
    "etag": "A String", # Output only. A hash of this resource.
    "location": "A String", # Output only. The geographic location where the model resides. This value
        # is inherited from the dataset.
    "friendlyName": "A String", # Optional. A descriptive name for this model.
    "expirationTime": "A String", # 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.
    "lastModifiedTime": "A String", # Output only. The time when this model was last modified, in millisecs since the epoch.
  }


Returns:
  An object of the form:

    {
      "labelColumns": [ # Output only. Label columns that were used to train this model.
          # The output of the model will have a "predicted_" prefix to these columns.
        { # A field or a column.
          "type": { # The type of a variable, e.g., a function argument. # 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 "type" field).
              # Examples:
              # INT64: {type_kind="INT64"}
              # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
              # STRUCT<x STRING, y ARRAY<DATE>>:
              #   {type_kind="STRUCT",
              #    struct_type={fields=[
              #      {name="x", type={type_kind="STRING"}},
              #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
              #    ]}}
            "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
              "fields": [
                # Object with schema name: StandardSqlField
              ],
            },
            "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
            "typeKind": "A String", # Required. The top level type of this field.
                # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
          },
          "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
        },
      ],
      "description": "A String", # Optional. A user-friendly description of this model.
      "trainingRuns": [ # Output only. Information for all training runs in increasing order of start_time.
        { # Information about a single training query run for the model.
          "evaluationMetrics": { # Evaluation metrics of a model. These are either computed on all training # The evaluation metrics over training/eval data that were computed at the
              # end of training.
              # data or just the eval data based on whether eval data was used during
              # training. These are not present for imported models.
            "clusteringMetrics": { # Evaluation metrics for clustering models. # Populated for clustering models.
              "meanSquaredDistance": 3.14, # Mean of squared distances between each sample to its cluster centroid.
              "clusters": [ # [Beta] Information for all clusters.
                { # Message containing the information about one cluster.
                  "count": "A String", # Count of training data rows that were assigned to this cluster.
                  "centroidId": "A String", # Centroid id.
                  "featureValues": [ # Values of highly variant features for this cluster.
                    { # Representative value of a single feature within the cluster.
                      "featureColumn": "A String", # The feature column name.
                      "numericalValue": 3.14, # The numerical feature value. This is the centroid value for this
                          # feature.
                      "categoricalValue": { # Representative value of a categorical feature. # The categorical feature value.
                        "categoryCounts": [ # 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 "_OTHER_" and count as
                            # aggregate counts of remaining categories.
                          { # Represents the count of a single category within the cluster.
                            "count": "A String", # The count of training samples matching the category within the
                                # cluster.
                            "category": "A String", # The name of category.
                          },
                        ],
                      },
                    },
                  ],
                },
              ],
              "daviesBouldinIndex": 3.14, # Davies-Bouldin index.
            },
            "regressionMetrics": { # Evaluation metrics for regression and explicit feedback type matrix # Populated for regression models and explicit feedback type matrix
                # factorization models.
                # factorization models.
              "rSquared": 3.14, # R^2 score.
              "meanAbsoluteError": 3.14, # Mean absolute error.
              "meanSquaredError": 3.14, # Mean squared error.
              "medianAbsoluteError": 3.14, # Median absolute error.
              "meanSquaredLogError": 3.14, # Mean squared log error.
            },
            "rankingMetrics": { # Evaluation metrics used by weighted-ALS models specified by # [Alpha] Populated for implicit feedback type matrix factorization
                # models.
                # feedback_type=implicit.
              "meanSquaredError": 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.
              "meanAveragePrecision": 3.14, # Calculates a precision per user for all the items by ranking them and
                  # then averages all the precisions across all the users.
              "averageRank": 3.14, # Determines the goodness of a ranking by computing the percentile rank
                  # from the predicted confidence and dividing it by the original rank.
              "normalizedDiscountedCumulativeGain": 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.
            },
            "binaryClassificationMetrics": { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
              "negativeLabel": "A String", # Label representing the negative class.
              "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
                  # 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.
                "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
                    # positive prediction. For multiclass this is a macro-averaged metric.
                "precision": 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.
                "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                "threshold": 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.
                "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
                    # multiclass this is a micro-averaged metric.
                "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
                    # this is a macro-averaged metric.
                "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
                    # metric.
              },
              "positiveLabel": "A String", # Label representing the positive class.
              "binaryConfusionMatrixList": [ # Binary confusion matrix at multiple thresholds.
                { # Confusion matrix for binary classification models.
                  "truePositives": "A String", # Number of true samples predicted as true.
                  "trueNegatives": "A String", # Number of true samples predicted as false.
                  "precision": 3.14, # The fraction of actual positive predictions that had positive actual
                      # labels.
                  "falseNegatives": "A String", # Number of false samples predicted as false.
                  "recall": 3.14, # The fraction of actual positive labels that were given a positive
                      # prediction.
                  "falsePositives": "A String", # Number of false samples predicted as true.
                  "f1Score": 3.14, # The equally weighted average of recall and precision.
                  "positiveClassThreshold": 3.14, # Threshold value used when computing each of the following metric.
                  "accuracy": 3.14, # The fraction of predictions given the correct label.
                },
              ],
            },
            "multiClassClassificationMetrics": { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
              "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
                  # 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.
                "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
                    # positive prediction. For multiclass this is a macro-averaged metric.
                "precision": 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.
                "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
                "threshold": 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.
                "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
                    # multiclass this is a micro-averaged metric.
                "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
                    # this is a macro-averaged metric.
                "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
                    # metric.
              },
              "confusionMatrixList": [ # Confusion matrix at different thresholds.
                { # Confusion matrix for multi-class classification models.
                  "confidenceThreshold": 3.14, # Confidence threshold used when computing the entries of the
                      # confusion matrix.
                  "rows": [ # One row per actual label.
                    { # A single row in the confusion matrix.
                      "entries": [ # Info describing predicted label distribution.
                        { # A single entry in the confusion matrix.
                          "predictedLabel": "A String", # The predicted label. For confidence_threshold > 0, we will
                              # also add an entry indicating the number of items under the
                              # confidence threshold.
                          "itemCount": "A String", # Number of items being predicted as this label.
                        },
                      ],
                      "actualLabel": "A String", # The original label of this row.
                    },
                  ],
                },
              ],
            },
          },
          "dataSplitResult": { # Data split result. This contains references to the training and evaluation # Data split result of the training run. Only set when the input data is
              # actually split.
              # data tables that were used to train the model.
            "trainingTable": { # Table reference of the training data after split.
              "projectId": "A String", # [Required] The ID of the project containing this table.
              "tableId": "A String", # [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.
              "datasetId": "A String", # [Required] The ID of the dataset containing this table.
            },
            "evaluationTable": { # Table reference of the evaluation data after split.
              "projectId": "A String", # [Required] The ID of the project containing this table.
              "tableId": "A String", # [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.
              "datasetId": "A String", # [Required] The ID of the dataset containing this table.
            },
          },
          "results": [ # Output of each iteration run, results.size() <= max_iterations.
            { # Information about a single iteration of the training run.
              "arimaResult": { # (Auto-)arima fitting result. Wrap everything in ArimaResult for easier
                  # refactoring if we want to use model-specific iteration results.
                "arimaModelInfo": [ # 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.
                    "seasonalPeriods": [ # Seasonal periods. Repeated because multiple periods are supported
                        # for one time series.
                      "A String",
                    ],
                    "hasDrift": True or False, # Whether Arima model fitted with drift or not. It is always false
                        # when d is not 1.
                    "arimaCoefficients": { # Arima coefficients. # Arima coefficients.
                      "movingAverageCoefficients": [ # Moving-average coefficients, an array of double.
                        3.14,
                      ],
                      "autoRegressiveCoefficients": [ # Auto-regressive coefficients, an array of double.
                        3.14,
                      ],
                      "interceptCoefficient": 3.14, # Intercept coefficient, just a double not an array.
                    },
                    "nonSeasonalOrder": { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                      "q": "A String", # Order of the moving-average part.
                      "p": "A String", # Order of the autoregressive part.
                      "d": "A String", # Order of the differencing part.
                    },
                    "arimaFittingMetrics": { # ARIMA model fitting metrics. # Arima fitting metrics.
                      "variance": 3.14, # Variance.
                      "logLikelihood": 3.14, # Log-likelihood.
                      "aic": 3.14, # AIC.
                    },
                    "timeSeriesId": "A String", # The id to indicate different time series.
                  },
                ],
                "seasonalPeriods": [ # Seasonal periods. Repeated because multiple periods are supported for
                    # one time series.
                  "A String",
                ],
              },
              "index": 42, # Index of the iteration, 0 based.
              "evalLoss": 3.14, # Loss computed on the eval data at the end of iteration.
              "durationMs": "A String", # Time taken to run the iteration in milliseconds.
              "learnRate": 3.14, # Learn rate used for this iteration.
              "trainingLoss": 3.14, # Loss computed on the training data at the end of iteration.
              "clusterInfos": [ # Information about top clusters for clustering models.
                { # Information about a single cluster for clustering model.
                  "centroidId": "A String", # Centroid id.
                  "clusterSize": "A String", # Cluster size, the total number of points assigned to the cluster.
                  "clusterRadius": 3.14, # Cluster radius, the average distance from centroid
                      # to each point assigned to the cluster.
                },
              ],
            },
          ],
          "startTime": "A String", # The start time of this training run.
          "trainingOptions": { # Options that were used for this training run, includes
              # user specified and default options that were used.
            "optimizationStrategy": "A String", # Optimization strategy for training linear regression models.
            "itemColumn": "A String", # Item column specified for matrix factorization models.
            "userColumn": "A String", # User column specified for matrix factorization models.
            "numFactors": "A String", # Num factors specified for matrix factorization models.
            "inputLabelColumns": [ # Name of input label columns in training data.
              "A String",
            ],
            "batchSize": "A String", # Batch size for dnn models.
            "distanceType": "A String", # Distance type for clustering models.
            "kmeansInitializationColumn": "A String", # The column used to provide the initial centroids for kmeans algorithm
                # when kmeans_initialization_method is CUSTOM.
            "l2Regularization": 3.14, # L2 regularization coefficient.
            "numClusters": "A String", # Number of clusters for clustering models.
            "minRelativeProgress": 3.14, # When early_stop is true, stops training when accuracy improvement is
                # less than 'min_relative_progress'. Used only for iterative training
                # algorithms.
            "learnRate": 3.14, # Learning rate in training. Used only for iterative training algorithms.
            "maxIterations": "A String", # The maximum number of iterations in training. Used only for iterative
                # training algorithms.
            "earlyStop": True or False, # Whether to stop early when the loss doesn't improve significantly
                # any more (compared to min_relative_progress). Used only for iterative
                # training algorithms.
            "initialLearnRate": 3.14, # Specifies the initial learning rate for the line search learn rate
                # strategy.
            "dataSplitColumn": "A String", # The column to split data with. This column won'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
            "dropout": 3.14, # Dropout probability for dnn models.
            "warmStart": True or False, # Whether to train a model from the last checkpoint.
            "hiddenUnits": [ # Hidden units for dnn models.
              "A String",
            ],
            "lossType": "A String", # Type of loss function used during training run.
            "feedbackType": "A String", # Feedback type that specifies which algorithm to run for matrix
                # factorization.
            "kmeansInitializationMethod": "A String", # The method used to initialize the centroids for kmeans algorithm.
            "learnRateStrategy": "A String", # The strategy to determine learn rate for the current iteration.
            "dataSplitEvalFraction": 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.
            "dataSplitMethod": "A String", # The data split type for training and evaluation, e.g. RANDOM.
            "subsample": 3.14, # Subsample fraction of the training data to grow tree to prevent
                # overfitting for boosted tree models.
            "labelClassWeights": { # Weights associated with each label class, for rebalancing the
                # training data. Only applicable for classification models.
              "a_key": 3.14,
            },
            "l1Regularization": 3.14, # L1 regularization coefficient.
            "modelUri": "A String", # [Beta] Google Cloud Storage URI from which the model was imported. Only
                # applicable for imported models.
            "walsAlpha": 3.14, # Hyperparameter for matrix factoration when implicit feedback type is
                # specified.
            "minSplitLoss": 3.14, # Minimum split loss for boosted tree models.
            "maxTreeDepth": "A String", # Maximum depth of a tree for boosted tree models.
          },
        },
      ],
      "featureColumns": [ # Output only. Input feature columns that were used to train this model.
        { # A field or a column.
          "type": { # The type of a variable, e.g., a function argument. # 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 "type" field).
              # Examples:
              # INT64: {type_kind="INT64"}
              # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
              # STRUCT<x STRING, y ARRAY<DATE>>:
              #   {type_kind="STRUCT",
              #    struct_type={fields=[
              #      {name="x", type={type_kind="STRING"}},
              #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
              #    ]}}
            "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
              "fields": [
                # Object with schema name: StandardSqlField
              ],
            },
            "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
            "typeKind": "A String", # Required. The top level type of this field.
                # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
          },
          "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
        },
      ],
      "labels": { # 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.
        "a_key": "A String",
      },
      "creationTime": "A String", # Output only. The time when this model was created, in millisecs since the epoch.
      "modelType": "A String", # Output only. Type of the model resource.
      "encryptionConfiguration": { # 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.
        "kmsKeyName": "A String", # [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.
      },
      "modelReference": { # Required. Unique identifier for this model.
        "projectId": "A String", # [Required] The ID of the project containing this model.
        "datasetId": "A String", # [Required] The ID of the dataset containing this model.
        "modelId": "A String", # [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.
      },
      "etag": "A String", # Output only. A hash of this resource.
      "location": "A String", # Output only. The geographic location where the model resides. This value
          # is inherited from the dataset.
      "friendlyName": "A String", # Optional. A descriptive name for this model.
      "expirationTime": "A String", # 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.
      "lastModifiedTime": "A String", # Output only. The time when this model was last modified, in millisecs since the epoch.
    }