In questo tutorial utilizzerai un modello di regressione lineare in BigQuery ML per prevedere il peso di un pinguino in base alle sue informazioni demografiche. Una regressione lineare è un tipo di modello di regressione che genera un valore continuo da una combinazione lineare di caratteristiche di input.
Questo tutorial utilizza il set di dati bigquery-public-data.ml_datasets.penguins.
Obiettivi
In questo tutorial imparerai a:
- Creare un modello di regressione lineare.
- Valutare il modello.
- Eseguire previsioni utilizzando il modello.
Costi
Questo tutorial utilizza componenti fatturabili di Google Cloud, tra cui:
- BigQuery
- BigQuery ML
Per saperne di più sui costi di BigQuery, consulta la pagina Prezzi di BigQuery.
Per saperne di più sui costi di BigQuery ML, consulta Prezzi di BigQuery ML.
Prima di iniziare
-
Nella console Google Cloud , nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud .
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per cui ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (
roles/resourcemanager.projectCreator), che contiene l'autorizzazioneresourcemanager.projects.create. Scopri come concedere i ruoli.
-
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .
-
Abilita l'API BigQuery, se non è già abilitata.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
Autorizzazioni obbligatorie
Per creare il modello utilizzando BigQuery ML, devi disporre delle seguenti autorizzazioni IAM:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.models.updateMetadata
Per eseguire l'inferenza, devi disporre delle seguenti autorizzazioni:
bigquery.models.getDatasul modellobigquery.jobs.create
Crea un set di dati
Per creare un set di dati BigQuery, seleziona una delle seguenti opzioni:Console
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Explorer:

Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro sinistro per aprirlo.
In Explorer, espandi il progetto, quindi fai clic su Set di dati.
Nella pagina Set di dati, fai clic su Crea set di dati.
Nel riquadro Crea set di dati, segui questi passaggi:
In ID set di dati, inserisci
bqml_tutorial.Per Località dei dati, seleziona USA.
Lascia invariate le altre impostazioni predefinite.
Fai clic su Crea set di dati.
bq
Per creare un nuovo set di dati, utilizza il
comando bq mk --dataset.
Crea un set di dati denominato
bqml_tutorialcon la località dei dati impostata suUS:bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Verifica che il set di dati sia stato creato:
bq ls
API
Chiama il metodo datasets.insert con una risorsa del set di dati definita:
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
BigQuery DataFrames
Prima di provare questo esempio, segui le istruzioni di configurazione di BigQuery DataFrames nella guida rapida di BigQuery per l'utilizzo di BigQuery DataFrames. Per saperne di più, consulta la documentazione di riferimento di BigQuery DataFrames.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale.
Crea il modello
Crea un modello di regressione lineare utilizzando il set di dati di esempio di Analytics per BigQuery.
SQL
Puoi creare un modello di regressione lineare utilizzando l'istruzione CREATE MODEL e specificando LINEAR_REG per il tipo di modello. La creazione del modello include l'addestramento del modello.
Di seguito sono riportate informazioni utili sull'istruzione CREATE MODEL:
- L'opzione
input_label_colsspecifica quale colonna nell'istruzioneSELECTutilizzare come colonna etichetta. In questo caso, la colonna delle etichette èbody_mass_g. Per i modelli di regressione lineare, la colonna dell'etichetta deve avere valori reali, ovvero i valori della colonna devono essere numeri reali. L'istruzione
SELECTdi questa query utilizza le seguenti colonne della tabellabigquery-public-data.ml_datasets.penguinsper prevedere il peso di un pinguino:species: la specie del pinguino.island: l'isola su cui risiede il pinguino.culmen_length_mm: la lunghezza del culmen del pinguino in millimetri.culmen_depth_mm: la profondità del culmen del pinguino in millimetri.flipper_length_mm: la lunghezza delle pinne del pinguino in millimetri.sex: il sesso del pinguino.
La clausola
WHEREnell'istruzioneSELECTdi questa query,WHERE body_mass_g IS NOT NULL, esclude le righe in cui la colonnabody_mass_gèNULL.
Esegui la query che crea il modello di regressione lineare:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, esegui questa query:
CREATE OR REPLACE MODEL `bqml_tutorial.penguins_model` OPTIONS (model_type='linear_reg', input_label_cols=['body_mass_g']) AS SELECT * FROM `bigquery-public-data.ml_datasets.penguins` WHERE body_mass_g IS NOT NULL;
La creazione del modello
penguins_modelrichiede circa 30 secondi.Per visualizzare il modello, segui questi passaggi:
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro sinistro per aprirlo.
Nel riquadro Explorer, espandi il progetto e fai clic su Set di dati.
Fai clic sul set di dati
bqml_tutorial.Fai clic sulla scheda Modelli.
BigQuery DataFrames
Prima di provare questo esempio, segui le istruzioni di configurazione di BigQuery DataFrames nella guida rapida di BigQuery per l'utilizzo di BigQuery DataFrames. Per saperne di più, consulta la documentazione di riferimento di BigQuery DataFrames.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale.
La creazione del modello richiede circa 30 secondi. Per visualizzare il modello, segui questi passaggi:
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Nel riquadro Explorer, espandi il progetto e fai clic su Set di dati.
Fai clic sul set di dati
bqml_tutorial.Fai clic sulla scheda Modelli.
Ottieni le statistiche di addestramento
Per visualizzare i risultati dell'addestramento del modello, puoi utilizzare la funzione ML.TRAINING_INFO o visualizzare le statistiche nella console Google Cloud . In questo tutorial utilizzi la console Google Cloud .
Un algoritmo di machine learning crea un modello esaminando molti esempi e tentando di trovare un modello che minimizzi la perdita. Questo processo è noto come minimizzazione empirica del rischio.
La perdita è la penalità per una previsione errata. Si tratta di un numero che indica quanto fosse negativa la previsione del modello su un singolo esempio. Se la previsione del modello è perfetta, la perdita è zero; in caso contrario, la perdita è maggiore. L'obiettivo dell'addestramento di un modello è trovare un insieme di ponderazioni e bias che presentino, in media, una perdita lieve in tutti gli esempi.
Visualizza le statistiche di addestramento del modello generate durante l'esecuzione della query CREATE MODEL:
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Nel riquadro Explorer, espandi il progetto e fai clic su Set di dati.
Fai clic sul set di dati
bqml_tutorial.Fai clic sulla scheda Modelli.
Per aprire il riquadro delle informazioni sul modello, fai clic su penguins_model.
Fai clic sulla scheda Addestramento e quindi su Tabella. I risultati dovrebbero essere simili ai seguenti:
La colonna Perdita di dati di addestramento rappresenta la metrica relativa alla perdita calcolata dopo che il modello è stato addestrato sul set di dati di addestramento. Poiché hai eseguito una regressione lineare, questa colonna mostra il valore dell'errore quadratico medio. Per questo addestramento viene utilizzata automaticamente una strategia di ottimizzazione normal_equation, pertanto è necessaria una sola iterazione per convergere al modello finale. Per saperne di più sull'impostazione della strategia di ottimizzazione del modello, consulta
optimize_strategy.
Valuta il modello
Dopo aver creato il modello, valutane le prestazioni utilizzando la
funzione ML.EVALUATE
o la
funzione BigQuery DataFrames bigframes.bigquery.ml.evaluate
per valutare i valori previsti generati dal modello rispetto ai dati effettivi.
SQL
Come input, la funzione ML.EVALUATE accetta il modello addestrato e un set di dati che corrisponde allo schema dei dati utilizzati per addestrare il modello. In un ambiente di produzione, devi valutare il modello su dati diversi da quelli utilizzati per addestrarlo.
Se esegui ML.EVALUATE senza fornire dati di input, la funzione recupera le metriche di valutazione calcolate durante l'addestramento. Queste metriche vengono calcolate utilizzando il set di dati di valutazione riservato automaticamente:
SELECT
*
FROM
ML.EVALUATE(MODEL bqml_tutorial.penguins_model);
Esegui la query ML.EVALUATE:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, esegui questa query:
SELECT * FROM ML.EVALUATE(MODEL `bqml_tutorial.penguins_model`, ( SELECT * FROM `bigquery-public-data.ml_datasets.penguins` WHERE body_mass_g IS NOT NULL));
BigQuery DataFrames
Prima di provare questo esempio, segui le istruzioni di configurazione di BigQuery DataFrames nella guida rapida di BigQuery per l'utilizzo di BigQuery DataFrames. Per saperne di più, consulta la documentazione di riferimento di BigQuery DataFrames.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale.
I risultati dovrebbero essere simili ai seguenti:
Poiché hai eseguito una regressione lineare, i risultati includono le seguenti colonne:
mean_absolute_errormean_squared_errormean_squared_log_errormedian_absolute_errorr2_scoreexplained_variance
Una metrica importante nei risultati della valutazione è il
coefficiente R2.
Il coefficiente R2 è una misura statistica che determina se le previsioni della regressione lineare si avvicinano ai dati effettivi. Un valore pari a 0 indica che il modello non spiega nessuna delle variabilità dei dati di risposta attorno alla media. Un valore pari a 1 indica che il modello spiega tutte le variabilità dei dati di risposta attorno alla media.
Puoi anche consultare il riquadro delle informazioni del modello nella console Google Cloud per visualizzare le metriche di valutazione:
Utilizza il modello per prevedere i risultati
Ora che hai valutato il modello, il passaggio successivo consiste nell'utilizzarlo per prevedere un risultato. Puoi eseguire la funzione ML.PREDICT o la funzione BigQuery DataFrames bigframes.bigquery.ml.predict sul modello per prevedere la massa corporea in grammi di tutti i pinguini che vivono sulle isole Biscoe.
SQL
Come input, la funzione ML.PREDICT accetta il modello addestrato e un set di dati che corrisponde allo schema dei dati utilizzati per addestrare il modello, esclusa la colonna delle etichette.
Esegui la query ML.PREDICT:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, esegui questa query:
SELECT * FROM ML.PREDICT(MODEL `bqml_tutorial.penguins_model`, ( SELECT * FROM `bigquery-public-data.ml_datasets.penguins` WHERE island = 'Biscoe'));
BigQuery DataFrames
Prima di provare questo esempio, segui le istruzioni di configurazione di BigQuery DataFrames nella guida rapida di BigQuery per l'utilizzo di BigQuery DataFrames. Per saperne di più, consulta la documentazione di riferimento di BigQuery DataFrames.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale.
I risultati dovrebbero essere simili ai seguenti:
Spiega i risultati della previsione
SQL
Per capire perché il modello sta generando questi risultati di previsione, puoi utilizzare la funzione ML.EXPLAIN_PREDICT.
ML.EXPLAIN_PREDICT è una versione estesa della funzione ML.PREDICT.
ML.EXPLAIN_PREDICT non solo restituisce i risultati della previsione, ma anche colonne aggiuntive per spiegarli. In pratica, puoi eseguire
ML.EXPLAIN_PREDICT anziché ML.PREDICT. Per saperne di più, consulta la panoramica di BigQuery Explainable AI.
Esegui la query ML.EXPLAIN_PREDICT:
- Nella console Google Cloud , vai alla pagina BigQuery.
- Nell'editor di query, esegui questa query:
SELECT * FROM ML.EXPLAIN_PREDICT(MODEL `bqml_tutorial.penguins_model`, ( SELECT * FROM `bigquery-public-data.ml_datasets.penguins` WHERE island = 'Biscoe'), STRUCT(3 as top_k_features));
I risultati dovrebbero essere simili ai seguenti:
BigQuery DataFrames
Prima di provare questo esempio, segui le istruzioni di configurazione di BigQuery DataFrames nella guida rapida di BigQuery per l'utilizzo di BigQuery DataFrames. Per saperne di più, consulta la documentazione di riferimento di BigQuery DataFrames.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale.
Per i modelli di regressione lineare, vengono utilizzati i valori di Shapley per generare valori di attribuzione di caratteristiche per ogni caratteristica nel modello. L'output include le prime tre attribuzioni delle caratteristiche per riga della tabella penguins perché top_k_features è stato impostato su 3. Queste attribuzioni sono ordinate in base al valore assoluto dell'attribuzione in ordine decrescente. In tutti gli esempi, la caratteristica sex ha contribuito maggiormente alla previsione complessiva.
Spiega il modello a livello globale
SQL
Per sapere quali caratteristiche sono generalmente le più importanti per determinare il peso dei pinguini, puoi utilizzare la funzione ML.GLOBAL_EXPLAIN.
Per utilizzare ML.GLOBAL_EXPLAIN, devi riaddestrare il modello con l'opzione ENABLE_GLOBAL_EXPLAIN impostata su TRUE.
Addestra nuovamente e ottieni spiegazioni globali per il modello:
- Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, esegui questa query per riaddestrare il modello:
#standardSQL CREATE OR REPLACE MODEL `bqml_tutorial.penguins_model` OPTIONS ( model_type = 'linear_reg', input_label_cols = ['body_mass_g'], enable_global_explain = TRUE) AS SELECT * FROM `bigquery-public-data.ml_datasets.penguins` WHERE body_mass_g IS NOT NULL;
Nell'editor di query, esegui la seguente query per ottenere spiegazioni globali:
SELECT * FROM ML.GLOBAL_EXPLAIN(MODEL `bqml_tutorial.penguins_model`)
I risultati dovrebbero essere simili ai seguenti:
BigQuery DataFrames
Prima di provare questo esempio, segui le istruzioni di configurazione di BigQuery DataFrames nella guida rapida di BigQuery per l'utilizzo di BigQuery DataFrames. Per saperne di più, consulta la documentazione di riferimento di BigQuery DataFrames.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
- Puoi eliminare il progetto che hai creato.
- In alternativa, puoi conservare il progetto ed eliminare il set di dati.
Elimina il set di dati
L'eliminazione del progetto rimuove tutti i set di dati e tutte le tabelle nel progetto. Se preferisci riutilizzare il progetto, puoi eliminare il set di dati creato in questo tutorial:
Se necessario, apri la pagina BigQuery nella consoleGoogle Cloud .
Nel riquadro di navigazione, fai clic sul set di dati bqml_tutorial che hai creato.
Fai clic su Elimina set di dati sul lato destro della finestra. Questa azione elimina il set di dati, la tabella e tutti i dati.
Nella finestra di dialogo Elimina set di dati, conferma il comando di eliminazione digitando il nome del set di dati (
bqml_tutorial) e fai clic su Elimina.
Elimina il progetto
Per eliminare il progetto:
- Nella console Google Cloud , vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.
Passaggi successivi
- Per una panoramica di BigQuery ML, consulta Introduzione a BigQuery ML.
- Per informazioni sulla creazione di modelli, consulta la pagina della sintassi di
CREATE MODEL.