有什么方法可以使用curl命令训练时间序列Google AutoML Tables模型吗?

问题描述

下面提供的JSON文件是request.json,用于使用Google AutoML表训练分类或回归模型。

{
  "datasetId": "dataset-id","displayName": "model-display-name","tablesModelMetadata": {
    "trainBudgetMilliNodeHours": "train-budget-milli-node-hours","optimizationObjective": "optimization-objective","targetColumnSpec": {
      "name": "projects/project-id/locations/location/datasets/dataset-id/tableSpecs/table-id/columnSpecs/target-column-id"
    }
  },}

我需要通过在json文件中提供“时间序列标识符”列和“预测地平线”来使用curl命令训练时间序列模型。所以我理想的请求文件应该是

{
  "datasetId": "dataset-id","forecastHorizon": "horizon","timeseriesIdentifier":"column-id",}

这样我就可以使用命令传递上面给出的request.json文件

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://endpoint/v1beta1/projects/project-id/locations/location/models/

有什么办法吗?

解决方法

目前,Cloud Auto ML Tables提供了predictions来解决回归或分类问题。

您应该考虑使用BigQuery ML为time series models创建模型语句,可以使用REST API在curl命令中传递参数“ timeSeriesIdColumn”和“ horizo​​n”。

JSON表示形式

{
  "trainingOptions": {
    {
     "maxIterations": string,"lossType": enum (LossType),"learnRate": number,"l1Regularization": number,"l2Regularization": number,"minRelativeProgress": number,"warmStart": boolean,"earlyStop": boolean,"inputLabelColumns": [
       string
     ],"dataSplitMethod": enum (DataSplitMethod),"dataSplitEvalFraction": number,"dataSplitColumn": string,"learnRateStrategy": enum (LearnRateStrategy),"initialLearnRate": number,"labelClassWeights": {
       string: number,...
     },"userColumn": string,"itemColumn": string,"distanceType": enum (DistanceType),"numClusters": string,"modelUri": string,"optimizationStrategy": enum (OptimizationStrategy),"hiddenUnits": [
       string
     ],"batchSize": string,"dropout": number,"maxTreeDepth": string,"subsample": number,"minSplitLoss": number,"numFactors": string,"feedbackType": enum (FeedbackType),"walsAlpha": number,"kmeansInitializationMethod": enum (KmeansInitializationMethod),"kmeansInitializationColumn": string,"timeSeriesTimestampColumn": string,"timeSeriesDataColumn": string,"autoArima": boolean,"nonSeasonalOrder": {
       object (ArimaOrder)
     },"dataFrequency": enum (DataFrequency),"includeDrift": boolean,"holidayRegion": enum (HolidayRegion),"timeSeriesIdColumn": string,"horizon": string,"preserveInputStructs": boolean,"autoArimaMaxOrder": string
   }
     },"startTime": string,"results": [
    {
      object (IterationResult)
    }
  ],"evaluationMetrics": {
    object (EvaluationMetrics)
  },"dataSplitResult": {
    object (DataSplitResult)
  }
}

卷曲命令:

curl \
  'https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/model/YOUR_MODEL?key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  -d @request.json \ \
  --compressed