Vertex AI offre due opzioni per proiettare i valori futuri utilizzando il modello di previsione addestrato: previsioni online e previsioni batch.
Una previsione online è una richiesta sincrona. Utilizza le previsioni online quando effettui richieste in risposta all'input dell'applicazione o in altre situazioni in cui hai bisogno di un'inferenza tempestiva.
Una richiesta di previsione batch è una richiesta asincrona. Utilizza le previsioni batch quando non hai bisogno di una risposta immediata e vuoi elaborare i dati accumulati tramite una singola richiesta.
Questa pagina mostra come proiettare i valori futuri utilizzando le previsioni batch. Per imparare a proiettare i valori utilizzando le previsioni online, consulta Ottenere previsioni online per un modello di previsione.
Puoi richiedere previsioni batch direttamente dalla risorsa del modello.
Puoi richiedere una previsione con spiegazioni (chiamate anche attribuzioni delle caratteristiche) per vedere in che modo il modello è arrivato a una previsione. La funzionalità locale i valori di importanza indicano in che misura ciascuna caratteristica ha contribuito alla previsione o il risultato finale. Per una panoramica concettuale, consulta Attribuzioni delle caratteristiche per le previsioni.
Per saperne di più sui prezzi delle previsioni batch, consulta Prezzi per i flussi di lavoro tabulari.
Prima di iniziare
Prima di poter effettuare una richiesta di previsione batch, è necessario addestrare un modello.
Dati di input
I dati di input per le richieste di previsione batch sono i dati utilizzati dal modello per creare le previsioni. Puoi fornire dati di input in uno dei due formati:
- Oggetti CSV in Cloud Storage
- tabelle BigQuery
Ti consigliamo di utilizzare lo stesso formato per i dati di input che hai utilizzato per l'addestramento del modello. Ad esempio, se hai addestrato il modello utilizzando i dati BigQuery, è meglio utilizzare una tabella BigQuery come input per la tua previsione batch. Poiché Vertex AI tratta tutti i campi di input CSV come le stringhe, la combinazione dei formati dei dati di addestramento e di input può causare errori.
L'origine dati deve contenere dati tabulari che includono tutte le colonne, in qualsiasi ordine, utilizzate per addestrare il modello. Puoi includere colonne che non erano presenti nei dati di addestramento o che erano presenti nei dati di addestramento, ma escluse dall'uso per l'addestramento. Queste colonne aggiuntive sono incluse nell'output ma non influire sui risultati della previsione.
Requisiti dei dati di input
L'input per i modelli di previsione deve rispettare i seguenti requisiti:
- Tutti i valori nella colonna dell'ora devono essere presenti e validi.
- La frequenza dei dati di input e dei dati di addestramento deve corrispondere. Se mancano righe nella serie temporale, devi inserirle manualmente in base alla conoscenza appropriata del dominio.
- Le serie temporali con timestamp duplicati vengono rimosse dalle previsioni. Per includerli, rimuovi eventuali timestamp duplicati.
- Fornisci dati storici per ogni serie temporale da prevedere. Per previsioni accurate, la quantità di dati deve corrispondere alla finestra di contesto che viene impostato durante l'addestramento del modello. Ad esempio, se la finestra di contesto è di 14 giorni, fornisci almeno 14 giorni di dati storici. Se fornisci meno dati, Vertex AI completa i dati con valori vuoti.
- La previsione inizia nella prima riga di una serie temporale (ordinata per data) con un valore nullo nella colonna di destinazione. Il valore nullo deve essere continuo
all'interno delle serie temporali. Ad esempio, se la colonna di destinazione è ordinata in base al tempo, non puoi avere qualcosa come
1
,2
,null
,3
,4
,null
,null
per una singola serie temporale. Per i file CSV, Vertex AI tratta una stringa vuota come null e per BigQuery i valori null sono supportati in modo nativo.
Tabella BigQuery
Se scegli una tabella BigQuery come input, devi assicurarti di quanto segue:
- Le tabelle BigQuery che fungono da origine dati non devono essere più grandi di 100 GB.
- Se la tabella si trova in un progetto diverso, devi concedere il ruolo
BigQuery Data Editor
all'account di servizio Vertex AI in quel progetto.
File CSV
Se scegli un oggetto CSV in Cloud Storage come input, devi assicurarti di quanto segue:
- L'origine dati deve iniziare con una riga di intestazione con i nomi delle colonne.
- Ogni oggetto dell'origine dati non deve essere più grande di 10 GB. Puoi includere più file, fino a un massimo di 100 GB.
- Se il bucket Cloud Storage si trova in un progetto diverso, devi concedere la classe
il ruolo
Storage Object Creator
all'account di servizio Vertex AI in per il progetto. - Devi racchiudi tutte le stringhe tra virgolette doppie (").
Formato di output
Il formato di output della richiesta di previsione batch non deve essere necessariamente lo stesso come formato che hai utilizzato per l'input. Ad esempio, se hai utilizzato la tabella BigQuery come input, puoi generare i risultati di previsione in un oggetto CSV in Cloud Storage.
Effettua una richiesta di previsione batch al modello
Per effettuare richieste di previsione batch, puoi utilizzare la console Google Cloud o l'API Vertex AI. L'origine dati di input può essere costituita da oggetti CSV archiviati in nel bucket Cloud Storage o nelle tabelle BigQuery. A seconda della quantità di dati inviati come input, un'attività di previsione batch può richiedere un po' di tempo per essere completata.
Console Google Cloud
Utilizza la console Google Cloud per richiedere una previsione batch.
- Nella console Google Cloud, nella sezione Vertex AI, vai a alla pagina Previsioni batch.
- Fai clic su Crea per aprire la finestra Nuova previsione batch.
- Per Definire la previsione batch, completa i seguenti passaggi:
- Inserisci un nome per la previsione batch.
- In Nome modello, seleziona il nome del modello da utilizzare per questa previsione batch.
- In Versione, seleziona la versione del modello.
- In Seleziona origine, scegli se i dati di input dell'origine sono un file CSV su Cloud Storage o una tabella in BigQuery.
- Per i file CSV, specifica la posizione di Cloud Storage in cui si trova il file di input CSV.
- Per le tabelle BigQuery, specifica l'ID progetto in cui si trova la tabella, l'ID set di dati BigQuery e l'ID tabella o visualizzazione BigQuery.
- Per Output di previsione batch, seleziona CSV o BigQuery.
- Per CSV, specifica il bucket Cloud Storage in cui Vertex AI archivia l'output.
- Per BigQuery, puoi specificare un ID progetto o un
dataset:
- Per specificare l'ID progetto, inserisci l'ID progetto nel campo ID progetto Google Cloud. Vertex AI crea un nuovo output per te.
- Per specificare un set di dati esistente, inserisci il relativo percorso BigQuery
nel campo ID progetto Google Cloud, ad esempio
bq://projectid.datasetid
.
- Facoltativo. Se la destinazione di output è BigQuery o JSONL su Cloud Storage, puoi abilitare le attribuzioni delle caratteristiche oltre alle previsioni. Per farlo, seleziona Attiva le attribuzioni delle caratteristiche per questo modello. Attribuzioni delle caratteristiche non sono supportati per il formato CSV su Cloud Storage. Scopri di più.
- (Facoltativo) L'analisi del monitoraggio dei modelli per le previsioni batch è disponibile in Anteprima. Consulta le
Prerequisiti
per aggiungere la configurazione del rilevamento del disallineamento al tuo batch
un job di previsione.
- Fai clic per attivare Abilita il monitoraggio del modello per questa previsione batch.
- Seleziona un'origine dati di addestramento. Inserisci il percorso o la posizione dei dati per l'origine dati di addestramento selezionata.
- (Facoltativo) In Soglie di avviso, specifica le soglie rispetto alle quali attivare gli avvisi.
- Per Email di notifica, inserisci uno o più indirizzi email separati da virgola per ricevere avvisi quando un modello supera una soglia di avviso.
- (Facoltativo) Per Canali di notifica, aggiungi Cloud Monitoring per ricevere avvisi quando un modello supera una soglia di avviso. Puoi selezionare i canali di Cloud Monitoring esistenti o crearne uno nuovo facendo clic su Gestisci canali di notifica. La console supporta i canali di notifica PagerDuty, Slack e Pub/Sub.
- Fai clic su Crea.
API : BigQuery
REST
Utilizza il metodo batchPredictionJobs.create per richiedere una previsione batch.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: regione in cui è archiviato il modello e viene eseguito il job di previsione batch. Per
ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto
- BATCH_JOB_NAME: nome visualizzato del job batch
- MODEL_ID: l'ID del modello da utilizzare per fare previsioni
-
INPUT_URI: riferimento all'origine dati BigQuery. Nel modulo:
bq://bqprojectId.bqDatasetId.bqTableId
-
OUTPUT_URI: riferimento alla destinazione BigQuery (dove il valore
vengono scritte le previsioni). Specifica l'ID progetto e, facoltativamente, un ID set di dati esistente. Utilizza il modulo seguente:
Se specifichi solo l'ID progetto, Vertex AI crea per te un nuovo set di dati di output. Utilizza il modulo seguente:bq://bqprojectId.bqDatasetId
bq://bqprojectId
- GENERATE_EXPLANATION: il valore predefinito è false. Imposta il valore true per attivare le attribuzioni delle funzionalità. Per saperne di più, vedi Attribuzioni delle caratteristiche per la previsione.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
Corpo JSON della richiesta:
{ "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "inputConfig": { "instancesFormat": "bigquery", "bigquerySource": { "inputUri": "INPUT_URI" } }, "outputConfig": { "predictionsFormat": "bigquery", "bigqueryDestination": { "outputUri": "OUTPUT_URI" } }, "generate_explanation": GENERATE_EXPLANATION }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs/67890", "displayName": "batch_job_1 202005291958", "model": "projects/12345/locations/us-central1/models/5678", "state": "JOB_STATE_PENDING", "inputConfig": { "instancesFormat": "bigquery", "bigquerySource": { "inputUri": "INPUT_URI" } }, "outputConfig": { "predictionsFormat": "bigquery", "bigqueryDestination": { "outputUri": bq://12345 } }, "dedicatedResources": { "machineSpec": { "machineType": "n1-standard-32", "acceleratorCount": "0" }, "startingReplicaCount": 2, "maxReplicaCount": 6 }, "manualBatchTuningParameters": { "batchSize": 4 }, "outputInfo": { "bigqueryOutputDataset": "bq://12345.reg_model_2020_10_02_06_04 } "state": "JOB_STATE_PENDING", "createTime": "2020-09-30T02:58:44.341643Z", "updateTime": "2020-09-30T02:58:44.341643Z", }
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di Vertex AI con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Vertex AI.
Per autenticarti in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Nel seguente esempio, sostituisci INSTANCES_FORMAT e PREDICTIONS_FORMAT con "bigquery". Per sapere come sostituire l'altro segnaposto, vedi la sezione "REST e Scheda CMD LINE" di questa sezione.Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
API : Cloud Storage
REST
Puoi utilizzare batchPredictionJobs.create per richiedere una previsione batch.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: regione in cui è archiviato il modello e viene eseguito il job di previsione batch. Per
ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto
- BATCH_JOB_NAME: nome visualizzato per il job batch
- MODEL_ID: l'ID del modello da utilizzare per fare previsioni
-
URI: percorsi (URI) dei bucket Cloud Storage contenenti i dati di addestramento.
Possono essere presenti più di uno. Ogni URI ha il seguente formato:
gs://bucketName/pathToFileName
-
OUTPUT_URI_PREFIX: percorso di una destinazione Cloud Storage in cui
vengono scritte le previsioni. Vertex AI scrive le previsioni batch in un campo
sottodirectory di questo percorso. Imposta questo valore su una stringa con il seguente formato:
gs://bucketName/pathToOutputDirectory
- GENERATE_EXPLANATION: il valore predefinito è false. Imposta il valore true per attivare le attribuzioni delle funzionalità. Questa opzione è disponibile solo se la destinazione di output è JSONL. Le attribuzioni delle caratteristiche non sono supportate per i file CSV su Cloud Storage. Per saperne di più, vedi Attribuzioni delle caratteristiche per la previsione.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
Corpo JSON della richiesta:
{ "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "inputConfig": { "instancesFormat": "csv", "gcsSource": { "uris": [ URI1,... ] }, }, "outputConfig": { "predictionsFormat": "csv", "gcsDestination": { "outputUriPrefix": "OUTPUT_URI_PREFIX" } }, "generate_explanation": GENERATE_EXPLANATION }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs/67890", "displayName": "batch_job_1 202005291958", "model": "projects/12345/locations/us-central1/models/5678", "state": "JOB_STATE_PENDING", "inputConfig": { "instancesFormat": "csv", "gcsSource": { "uris": [ "gs://bp_bucket/reg_mode_test" ] } }, "outputConfig": { "predictionsFormat": "csv", "gcsDestination": { "outputUriPrefix": "OUTPUT_URI_PREFIX" } }, "dedicatedResources": { "machineSpec": { "machineType": "n1-standard-32", "acceleratorCount": "0" }, "startingReplicaCount": 2, "maxReplicaCount": 6 } "outputInfo": { "gcsOutputDataset": "OUTPUT_URI_PREFIX/prediction-batch_job_1 202005291958-2020-09-30T02:58:44.341643Z" } "state": "JOB_STATE_PENDING", "createTime": "2020-09-30T02:58:44.341643Z", "updateTime": "2020-09-30T02:58:44.341643Z", }
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.
Recuperare i risultati delle previsioni batch
Vertex AI invia l'output delle previsioni batch alla destinazione specificato, che può essere BigQuery o Cloud Storage.
L'output di Cloud Storage per le attribuzioni delle caratteristiche non è attualmente supportato.
BigQuery
Set di dati di output
Se utilizzi BigQuery, l'output della previsione batch viene archiviato in un set di dati di output. Se avessi fornito su Vertex AI, il nome del set di dati (BQ_DATASET_NAME) è il nome che hai fornito in precedenza. Se non hai fornito un set di dati di output, Vertex AI ne ha creato uno per te. Per trovare il nome (BQ_DATASET_NAME), segui questi passaggi:
- Nella console Google Cloud, vai alla pagina Predizioni batch di Vertex AI.
- Seleziona la previsione che hai creato.
-
Il set di dati di output è indicato in Posizione di esportazione. Il nome del set di dati è
formattato come segue:
prediction_MODEL_NAME_TIMESTAMP
Tabelle di output
Il set di dati di output contiene una o più delle seguenti tre tabelle di output:
-
Tabella delle previsioni
Questa tabella contiene una riga per ogni riga dei dati di input in cui è stata richiesta la previsione (ovvero, dove TARGET_COLUMN_NAME = null). Ad esempio, se l'input includeva 14 voci null per il (ad esempio le vendite per i prossimi 14 giorni), la tua richiesta di previsione restituisce 14 righe, ovvero il numero di vendite per ogni giorno. Se la richiesta di previsione supera l'orizzonte di previsione del modello, Vertex AI restituisce solo le previsioni fino all'orizzonte di previsione.
-
Tabella di convalida degli errori
Questa tabella contiene una riga per ogni errore non critico riscontrato durante la fase di aggregazione che si verifica prima della previsione batch. Ogni errore non critico corrisponde a una riga nei dati di input per la quale Vertex AI non ha potuto restituire una previsione.
-
Tabella degli errori
Questa tabella contiene una riga per ogni errore non critico riscontrato durante la previsione batch. Ogni errore non critico corrisponde a una riga nei dati di input per i quali Vertex AI non ha potuto restituire una previsione.
Tabella delle previsioni
Il nome della tabella (BQ_PREDICTIONS_TABLE_NAME) è formato dall'aggiunta di "predictions_" al timestamp dell'avvio del job di previsione batch: predictions_TIMESTAMP
Per recuperare la tabella delle previsioni:
-
Nella console, vai alla pagina BigQuery.
Vai a BigQuery -
Esegui questa query:
SELECT * FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME
Vertex AI memorizza le previsioni nella colonna predicted_TARGET_COLUMN_NAME.value
.
Se hai addestrato un modello
con Temporal Fusion Transformer (TFT), puoi trovare l'output di interpretabilità del TFT nel
predicted_TARGET_COLUMN_NAME.tft_feature_importance
.
Questa colonna è ulteriormente suddivisa come segue:
context_columns
: caratteristiche di previsione i cui valori della finestra di contesto vengono utilizzati come input per l'encoder LSTM (Long Short-Term Memory) di TFT.context_weights
: i pesi di importanza delle caratteristiche associati a ciascuno deicontext_columns
per l'istanza prevista.horizon_columns
: caratteristiche di previsione i cui valori di orizzonte di previsione fungono da input per il decodificatore LSTM (Long Short-Term Memory) di TFT.horizon_weights
: i pesi dell'importanza delle caratteristiche associati a ciascuno deihorizon_columns
per l'istanza prevista.attribute_columns
: funzionalità di previsione che sono invariato nel tempo.attribute_weights
: i pesi associati a ciascuno deiattribute_columns
.
Se il modello è
ottimizzato per la perdita quantile e l'insieme di quantili include la mediana,
predicted_TARGET_COLUMN_NAME.value
è il valore di previsione alla mediana. In caso contrario, predicted_TARGET_COLUMN_NAME.value
è il valore di previsione al quantile più basso nell'insieme. Ad esempio, se il tuo insieme di quantili
è [0.1, 0.5, 0.9]
, value
è la previsione per il quantile 0.5
.
Se il tuo set di quantili è [0.1, 0.9]
, value
è la previsione per
il quantile 0.1
.
Inoltre, Vertex AI memorizza i valori e le previsioni dei quantili nelle seguenti colonne:
-
predicted_TARGET_COLUMN_NAME.quantile_values
: i valori del parametro quantili, che vengono impostati durante l'addestramento del modello. Ad esempio, possono essere0.1
,0.5
e0.9
. -
predicted_TARGET_COLUMN_NAME.quantile_predictions
: i valori di previsione associati ai valori del quantile.
Se il modello utilizza l'inferenza probabilistica,
predicted_TARGET_COLUMN_NAME.value
contiene il minimo dell'obiettivo di ottimizzazione. Ad esempio, se il tuo obiettivo di ottimizzazione è minimize-rmse
,
predicted_TARGET_COLUMN_NAME.value
contiene il valore medio. Se è minimize-mae
, predicted_TARGET_COLUMN_NAME.value
contiene il valore mediano.
Se il modello utilizza l'inferenza probabilistica con i quantili, Vertex AI archivia il quantile valori e previsioni nelle seguenti colonne:
-
predicted_TARGET_COLUMN_NAME.quantile_values
: i valori del parametro quantili, che vengono impostati durante l'addestramento del modello. Ad esempio, possono essere0.1
,0.5
e0.9
. -
predicted_TARGET_COLUMN_NAME.quantile_predictions
: la previsione associati ai valori dei quantili.
Se hai attivato le attribuzioni delle funzionalità, puoi trovarle anche nella tabella delle predizioni. Per accedere alle attribuzioni per una funzionalità BQ_FEATURE_NAME, esegui la seguente query:
SELECT explanation.attributions[OFFSET(0)].featureAttributions.BQ_FEATURE_NAME FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME
Per saperne di più, vedi Attribuzioni delle caratteristiche per la previsione.
Tabella di convalida degli errori
Il nome della tabella (BQ_ERRORS_VALIDATION_TABLE_NAME)
è formato dall'aggiunta di "errors_validation" al timestamp dell'inizio del
Job di previsione batch: errors_validation_TIMESTAMP
-
Nella console, vai alla pagina BigQuery.
Vai a BigQuery -
Esegui questa query:
SELECT * FROM BQ_DATASET_NAME.BQ_ERRORS_VALIDATION_TABLE_NAME
- errors_TARGET_COLUMN_NAME
Tabella degli errori
Il nome della tabella (BQ_ERRORS_TABLE_NAME) è formato dall'aggiunta di "errors_" al timestamp dell'avvio del job di previsione batch: errors_TIMESTAMP
-
Nella console, vai alla pagina BigQuery.
Vai a BigQuery -
Esegui questa query:
SELECT * FROM BQ_DATASET_NAME.BQ_ERRORS_TABLE_NAME
- errors_TARGET_COLUMN_NAME.code
- errors_TARGET_COLUMN_NAME.message
Cloud Storage
Se hai specificato Cloud Storage come destinazione di output, i risultati della richiesta di previsione batch vengono restituiti come oggetti CSV in un nel bucket specificato. Il nome della cartella è il nome del modello, preceduto da "prediction-" e seguito dal timestamp dell'inizio del job di previsione batch. Puoi trovare il nome della cartella Cloud Storage nella scheda Previsioni batch del tuo modello.
La cartella Cloud Storage contiene due tipi di oggetti:-
Oggetti di previsione
Gli oggetti della previsione sono denominati "predictions_1.csv", "predictions_2.csv", e così via. Contengono una riga di intestazione con i nomi delle colonne e una riga per ogni previsione restituita. Il numero di valori di previsione dipende dall'input di previsione e dall'orizzonte di previsione. Ad esempio, se l'input includeva 14 voci null per il (ad esempio le vendite per i prossimi 14 giorni), la tua richiesta di previsione restituisce 14 righe, ovvero il numero di vendite per ogni giorno. Se la richiesta di previsione supera l'orizzonte di previsione del modello, Vertex AI restituisce solo le previsioni fino all'orizzonte di previsione.
I valori di previsione vengono restituiti in una colonna denominato "predicted_TARGET_COLUMN_NAME". Per quantile le previsioni, la colonna di output contiene le previsioni dei quantili i valori dei quantili nel formato JSON.
-
Oggetti di errore
Gli oggetti errore si chiamano "errors_1.csv", "errors_2.csv" e così via. Contengono una riga di intestazione e una riga per ogni riga dei dati di input per la quale Vertex AI non ha potuto restituire una previsione (ad esempio, se una funzionalità non obbligatoria era null).
Nota: se i risultati sono grandi, vengono suddivisi in più oggetti.
Query di attribuzione delle funzionalità di esempio in BigQuery
Esempio 1: determinare le attribuzioni per una singola previsione
Considera la seguente domanda:
Quanto è previsto la pubblicità per un aumento del prodotto le vendite del 24 novembre in un determinato negozio?
La query corrispondente è la seguente:
SELECT * EXCEPT(explanation, predicted_sales), ROUND(predicted_sales.value, 2) AS predicted_sales, ROUND( explanation.attributions[OFFSET(0)].featureAttributions.advertisement, 2 ) AS attribution_advertisement FROM `project.dataset.predictions` WHERE product = 'product_0' AND store = 'store_0' AND date = '2019-11-24'
Esempio 2: determinare l'importanza delle caratteristiche globali
Considera la seguente domanda:
In che misura ciascuna funzionalità ha contribuito alle vendite previste nel complesso?
Puoi calcolare manualmente l'importanza globale delle caratteristiche aggregando i dati locali attribuzioni di importanza delle caratteristiche. La query corrispondente è la seguente:
WITH
/*
* Aggregate from (id, date) level attributions to global feature importance.
*/
attributions_aggregated AS (
SELECT
SUM(ABS(attributions.featureAttributions.date)) AS date,
SUM(ABS(attributions.featureAttributions.advertisement)) AS advertisement,
SUM(ABS(attributions.featureAttributions.holiday)) AS holiday,
SUM(ABS(attributions.featureAttributions.sales)) AS sales,
SUM(ABS(attributions.featureAttributions.store)) AS store,
SUM(ABS(attributions.featureAttributions.product)) AS product,
FROM
project.dataset.predictions,
UNNEST(explanation.attributions) AS attributions
),
/*
* Calculate the normalization constant for global feature importance.
*/
attributions_aggregated_with_total AS (
SELECT
*,
date + advertisement + holiday + sales + store + product AS total
FROM
attributions_aggregated
)
/*
* Calculate the normalized global feature importance.
*/
SELECT
ROUND(date / total, 2) AS date,
ROUND(advertisement / total, 2) AS advertisement,
ROUND(holiday / total, 2) AS holiday,
ROUND(sales / total, 2) AS sales,
ROUND(store / total, 2) AS store,
ROUND(product / total, 2) AS product,
FROM
attributions_aggregated_with_total
Esempio di output di previsione batch in BigQuery
In un set di dati di esempio sulle vendite di liquori, nella città di "Ida Grove" ci sono quattro negozi: "Ida Grove Food Pride", "Discount Liquors of Ida Grove", "Casey's General Store #3757" e "Brew Ida Grove". store_name
è il
series identifier
e tre dei quattro negozi richiedono le previsioni per la
colonna target sale_dollars
. Viene generato un errore di convalida perché non è stata richiesta alcuna previsione per "Discount Liquors of Ida Grove".
Di seguito è riportata un'estrazione dal set di dati di input utilizzato per la previsione:
Di seguito è riportato un estratto dei risultati della previsione:
Di seguito è riportato un estratto degli errori di convalida:
Esempio di output di previsione batch per un modello ottimizzato per la perdita quantile
L'esempio seguente è l'output della previsione in batch per un modello ottimizzato per la perdita quantile. In questo scenario, il modello di previsione ha previsto le vendite per i prossimi 14 giorni per ogni negozio.
I valori del quantile sono riportati nella colonna predicted_Sales.quantile_values
. In questo
Ad esempio, il modello ha previsto i valori a 0.1
, 0.5
e 0.9
quantili.
I valori di previsione sono riportati nella colonna predicted_Sales.quantile_predictions
.
Si tratta di un array di valori delle vendite, mappati ai valori dei quantili nella
Colonna predicted_Sales.quantile_values
. Nella prima riga vediamo che la probabilità
che il valore delle vendite sia inferiore a 4484.04
è del 10%. La probabilità del valore delle vendite
inferiore a 5615.64
è il 50%. La probabilità che il valore delle vendite sia inferiore a
6853.29
è il 90%. La previsione per la prima riga, rappresentata come un singolo valore, è
5615.64
.
Passaggi successivi
- Scopri di più sui prezzi per le previsioni batch.