Questo tutorial ti insegna a utilizzare un modello di classificazione basato su alberi potenziati per prevedere la fascia di reddito delle persone in base ai loro dati demografici. Il modello prevede se un valore rientra in una delle due categorie, in questo caso se il reddito annuo di un individuo è superiore o inferiore a 50.000 $.
Questo tutorial utilizza il set di dati
bigquery-public-data.ml_datasets.census_adult_income
. Questo set di dati contiene informazioni demografiche e sul reddito dei residenti negli Stati Uniti
nel 2000 e nel 2010.
Crea un set di dati
Crea un set di dati BigQuery per archiviare il tuo modello ML.
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro Explorer, fai clic sul nome del progetto.
Fai clic su
Visualizza azioni > Crea set di dati.Nella pagina Crea set di dati:
In ID set di dati, inserisci
bqml_tutorial
.Per Tipo di località, seleziona Multi-regione e poi Stati Uniti (più regioni negli Stati Uniti).
Lascia invariate le restanti impostazioni predefinite e fai clic su Crea set di dati.
bq
Per creare un nuovo set di dati, utilizza il
comando bq mk
con il flag --location
. Per un elenco completo dei possibili parametri, consulta la
documentazione di riferimento del
comando bq mk --dataset
.
Crea un set di dati denominato
bqml_tutorial
con la località dei dati impostata suUS
e una descrizione diBigQuery ML tutorial dataset
:bq --location=US mk -d \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Anziché utilizzare il flag
--dataset
, il comando utilizza la scorciatoia-d
. Se ometti-d
e--dataset
, il comando crea per impostazione predefinita un dataset.Verifica che il set di dati sia stato creato:
bq ls
API
Chiama il metodo datasets.insert
con una risorsa dataset 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 che utilizza BigQuery DataFrames. Per ulteriori informazioni, consulta la documentazione di riferimento di BigQuery DataFrames.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, vedi Configurare ADC per un ambiente di sviluppo locale.
Prepara i dati di esempio
Il modello creato in questo tutorial prevede la fascia di reddito per i rispondenti al censimento, in base alle seguenti caratteristiche:
- Età
- Tipo di lavoro svolto
- Stato civile
- Livello di istruzione
- Professione
- Ore lavorate a settimana
La colonna education
non è inclusa nei dati di addestramento perché
le colonne education
e education_num
esprimono entrambe il livello di istruzione
del rispondente in formati diversi.
Separa i dati in set di addestramento, valutazione e previsione creando
una nuova colonna dataframe
derivata dalla colonna functional_weight
.
L'80% dei dati viene utilizzato per l'addestramento del modello, mentre il restante
20% viene utilizzato per la valutazione e la previsione.
SQL
Per preparare i dati di esempio, crea una visualizzazione che contenga i dati di addestramento. Questa vista viene utilizzata dall'istruzione CREATE MODEL
più avanti in questo tutorial.
Esegui la query che prepara i dati di esempio:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, esegui la query seguente:
CREATE OR REPLACE VIEW `bqml_tutorial.input_data` AS SELECT age, workclass, marital_status, education_num, occupation, hours_per_week, income_bracket, CASE WHEN MOD(functional_weight, 10) < 8 THEN 'training' WHEN MOD(functional_weight, 10) = 8 THEN 'evaluation' WHEN MOD(functional_weight, 10) = 9 THEN 'prediction' END AS dataframe FROM `bigquery-public-data.ml_datasets.census_adult_income`;
Nel riquadro a sinistra, fai clic su
Explorer:Se non vedi il riquadro a sinistra, fai clic su
Espandi riquadro a sinistra per aprirlo.Nel riquadro Explorer, cerca il set di dati
bqml_tutorial
.Fai clic sul set di dati, poi su Panoramica > Tabelle.
Fai clic sulla visualizzazione
input_data
per aprire il riquadro delle informazioni. Lo schema della vista viene visualizzato nella scheda Schema.
BigQuery DataFrames
Crea un DataFrame chiamato input_data
. Utilizzerai input_data
più avanti in questo tutorial per addestrare il modello, valutarlo e fare previsioni.
Prima di provare questo esempio, segui le istruzioni di configurazione di BigQuery DataFrames nella guida rapida di BigQuery che utilizza BigQuery DataFrames. Per ulteriori informazioni, consulta la documentazione di riferimento di BigQuery DataFrames.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, vedi Configurare ADC per un ambiente di sviluppo locale.
Crea il modello boosted tree
Crea un modello di alberi potenziati per prevedere la fascia di reddito dei partecipanti al censimento e addestralo sui dati del censimento. Il completamento della query richiede circa 30 minuti.
SQL
Per creare il modello:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, incolla la seguente query e fai clic su Esegui:
CREATE MODEL `bqml_tutorial.tree_model` OPTIONS(MODEL_TYPE='BOOSTED_TREE_CLASSIFIER', BOOSTER_TYPE = 'GBTREE', NUM_PARALLEL_TREE = 1, MAX_ITERATIONS = 50, TREE_METHOD = 'HIST', EARLY_STOP = FALSE, SUBSAMPLE = 0.85, INPUT_LABEL_COLS = ['income_bracket']) AS SELECT * EXCEPT(dataframe) FROM `bqml_tutorial.input_data` WHERE dataframe = 'training';
Al termine della query, è possibile accedere al modello
tree_model
tramite il riquadro Explorer. Poiché la query utilizza un'istruzioneCREATE MODEL
per creare un modello, non vengono visualizzati i risultati della query.
BigQuery DataFrames
Prima di provare questo esempio, segui le istruzioni di configurazione di BigQuery DataFrames nella guida rapida di BigQuery che utilizza BigQuery DataFrames. Per ulteriori informazioni, consulta la documentazione di riferimento di BigQuery DataFrames.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, vedi Configurare ADC per un ambiente di sviluppo locale.
Valuta il modello
SQL
Per valutare il modello:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, incolla la seguente query e fai clic su Esegui:
SELECT * FROM ML.EVALUATE (MODEL `bqml_tutorial.tree_model`, ( SELECT * FROM `bqml_tutorial.input_data` WHERE dataframe = 'evaluation' ) );
I risultati dovrebbero essere simili ai seguenti:
+---------------------+---------------------+---------------------+-------------------+---------------------+---------------------+ | precision | recall | accuracy | f1_score | log_loss | roc_auc | +---------------------+---------------------+---------------------+-------------------+-------------------------------------------+ | 0.67192429022082023 | 0.57880434782608692 | 0.83942963422194672 | 0.621897810218978 | 0.34405456040833338 | 0.88733566433566435 | +---------------------+---------------------+ --------------------+-------------------+---------------------+---------------------+
BigQuery DataFrames
Prima di provare questo esempio, segui le istruzioni di configurazione di BigQuery DataFrames nella guida rapida di BigQuery che utilizza BigQuery DataFrames. Per ulteriori informazioni, consulta la documentazione di riferimento di BigQuery DataFrames.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, vedi Configurare ADC per un ambiente di sviluppo locale.
Le metriche di valutazione indicano un buon rendimento del modello, in particolare,
il fatto che il
punteggio roc_auc
sia superiore a 0.8
.
Per ulteriori informazioni sulle metriche di valutazione, vedi Output.
Utilizzare il modello per prevedere le classificazioni
SQL
Per prevedere i dati con il modello:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, incolla la seguente query e fai clic su Esegui:
SELECT * FROM ML.PREDICT (MODEL `bqml_tutorial.tree_model`, ( SELECT * FROM `bqml_tutorial.input_data` WHERE dataframe = 'prediction' ) );
Le prime colonne dei risultati dovrebbero essere simili alle seguenti:
+---------------------------+--------------------------------------+-------------------------------------+ | predicted_income_bracket | predicted_income_bracket_probs.label | predicted_income_bracket_probs.prob | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.05183430016040802 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.94816571474075317 | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.00365859130397439 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.99634140729904175 | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.037775970995426178 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.96222406625747681 | +---------------------------+--------------------------------------+-------------------------------------+
BigQuery DataFrames
Prima di provare questo esempio, segui le istruzioni di configurazione di BigQuery DataFrames nella guida rapida di BigQuery che utilizza BigQuery DataFrames. Per ulteriori informazioni, consulta la documentazione di riferimento di BigQuery DataFrames.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, vedi Configurare ADC per un ambiente di sviluppo locale.
predicted_income_bracket
contiene il valore previsto dal modello.
La colonna predicted_income_bracket_probs.label
mostra le due etichette tra cui il modello doveva scegliere, mentre la colonna predicted_income_bracket_probs.prob
mostra la probabilità che l'etichetta indicata sia quella corretta.
Per ulteriori informazioni sulle colonne di output, vedi Modelli di classificazione.