Questa pagina mostra come addestrare un modello di classificazione o regressione da un set di dati tabulare utilizzando la console Google Cloud o l'API Vertex AI.
Prima di iniziare
Prima di poter addestrare un modello, devi completare quanto segue:
Addestra un modello
Console Google Cloud
Nella sezione Vertex AI della console Google Cloud, vai alla pagina Set di dati.
Fai clic sul nome del set di dati da utilizzare per addestrare il modello in modo da aprire la relativa pagina dei dettagli.
Se il tipo di dati utilizza set di annotazioni, seleziona quello da utilizzare per questo modello.
Fai clic su Addestra nuovo modello.
Seleziona Altro.
Nella pagina Addestra nuovo modello, completa i seguenti passaggi:
Seleziona il metodo di addestramento del modello.
AutoML
è una buona scelta per una vasta gamma di casi d'uso.
Fai clic su Continua.
Inserisci il nome visualizzato per il nuovo modello.
Seleziona la colonna di destinazione.
La colonna target è il valore previsto dal modello.
Scopri di più sui requisiti della colonna di destinazione.
(Facoltativo) Per esportare il set di dati di test in BigQuery, seleziona Esporta set di dati di test in BigQuery e specifica il nome della tabella.
Facoltativo: per scegliere come suddividere i dati tra set di addestramento, test e convalida, apri Opzioni avanzate. Puoi scegliere tra le seguenti opzioni di suddivisione dati:
- Casuale (valore predefinito): Vertex AI seleziona in modo casuale le righe associate a ciascun set di dati. Per impostazione predefinita, Vertex AI seleziona l'80% delle righe di dati per il set di addestramento, il 10% per il set di convalida e il 10% per il set di test.
- Manuale: Vertex AI seleziona righe di dati per ogni set di dati in base ai valori in una colonna di suddivisione dati. Indica il nome della colonna di suddivisione dati.
- Cronologico: Vertex AI suddivide i dati in base al timestamp in una colonna temporale. Indica il nome della colonna dell'ora.
Scopri di più sulle suddivisioni dei dati.
Fai clic su Continua.
(Facoltativo) Fai clic su Genera statistiche. La generazione delle statistiche inserisce i menu a discesa Trasformazione.
Nella pagina Opzioni di addestramento, rivedi l'elenco delle colonne ed escludi dall'addestramento eventuali colonne che non devono essere utilizzate per addestrare il modello.
Esamina le trasformazioni selezionate per le funzionalità incluse e verifica se sono consentiti dati non validi, quindi apporta gli aggiornamenti necessari.
Scopri di più sulle trasformazioni e sui dati non validi.
Se vuoi specificare una colonna di ponderazione o modificare il tuo obiettivo di ottimizzazione da quello predefinito, apri Opzioni avanzate ed effettua le selezioni desiderate.
Scopri di più sulle colonne di ponderazione e sugli obiettivi di ottimizzazione.
Fai clic su Continua.
Nella finestra Calcolo e prezzi, configura come segue:
Inserisci il numero massimo di ore per le quali vuoi eseguire l'addestramento del modello.
Questa impostazione consente di porre un limite ai costi di addestramento. Il tempo effettivo trascorso può essere più lungo di questo valore, perché la creazione di un nuovo modello prevede altre operazioni.
Il tempo di addestramento suggerito dipende dalle dimensioni dei dati di addestramento. La tabella seguente mostra gli intervalli di tempo di addestramento suggeriti per numero di righe; anche un numero elevato di colonne aumenterà il tempo di addestramento richiesto.
Righe Tempo di addestramento suggerito Meno di 100.000 1-3 ore 100.000 - 1.000.000 1-6 ore 1.000.000 - 10.000.000 1-12 ore Più di 10.000.000 3-24 ore Fai clic su Inizia addestramento.
L'addestramento del modello può richiedere molte ore, a seconda delle dimensioni e della complessità dei dati e del budget per l'addestramento, se ne hai specificato uno. Puoi chiudere questa scheda e riaprirla in un secondo momento. Riceverai un'email al termine dell'addestramento del modello.
API
Seleziona un obiettivo del tipo di dati tabulari.
Classificazione
Seleziona una scheda per la tua lingua o il tuo ambiente:
REST
Puoi utilizzare il comando trainingPipelines.create per addestrare un modello.
Addestrare il modello.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION: la tua regione.
- PROJECT: il tuo ID progetto.
- TRAININGPIPELINE_DISPLAY_NAME: nome visualizzato della pipeline di addestramento creata per questa operazione.
- TARGET_COLUMN: la colonna (valore) che il modello deve prevedere.
- (Facoltativo) WEIGHT_COLUMN: la colonna del peso. Scopri di più.
- TRAINING_BUDGET: il tempo massimo durante l'addestramento del modello, in milli ore nodo (1000 milliore di nodo equivalgono a un'ora nodo).
- OPTIMIZATION_OBJECTIVE: obbligatorio solo se non vuoi l'obiettivo di ottimizzazione predefinito per il tipo di previsione. Scopri di più.
- TRANSFORMATION_TYPE: il tipo di trasformazione è fornito per ogni colonna utilizzata per addestrare il modello. Scopri di più.
- COLUMN_NAME: il nome della colonna con il tipo di trasformazione specificato. È necessario specificare ogni colonna utilizzata per addestrare il modello.
- MODEL_DISPLAY_NAME: nome visualizzato del modello appena addestrato.
- DATASET_ID: ID per il set di dati di addestramento.
-
Puoi fornire un oggetto
Split
per controllare la suddivisione dei dati. Per informazioni sul controllo della suddivisione dei dati, consulta Controllo della suddivisione dei dati tramite REST. - PROJECT_NUMBER: il numero di progetto generato automaticamente per il tuo progetto
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
Corpo JSON della richiesta:
{ "displayName": "TRAININGPIPELINE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "trainingTaskInputs": { "targetColumn": "TARGET_COLUMN", "weightColumn": "WEIGHT_COLUMN", "predictionType": "classification", "trainBudgetMilliNodeHours": TRAINING_BUDGET, "optimizationObjective": "OPTIMIZATION_OBJECTIVE", "transformations": [ {"TRANSFORMATION_TYPE_1": {"column_name" : "COLUMN_NAME_1"} }, {"TRANSFORMATION_TYPE_2": {"column_name" : "COLUMN_NAME_2"} }, ... }, "modelToUpload": {"displayName": "MODEL_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/4567", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-08-18T01:22:57.479336Z", "updateTime": "2020-08-18T01:22:57.479336Z" }
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Regressione
Seleziona una scheda per la tua lingua o il tuo ambiente:
REST
Puoi utilizzare il comando trainingPipelines.create per addestrare un modello.
Addestrare il modello.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION: la tua regione.
- PROJECT: il tuo ID progetto.
- TRAININGPIPELINE_DISPLAY_NAME: nome visualizzato della pipeline di addestramento creata per questa operazione.
- TARGET_COLUMN: la colonna (valore) che il modello deve prevedere.
- (Facoltativo) WEIGHT_COLUMN: la colonna del peso. Scopri di più.
- TRAINING_BUDGET: il tempo massimo durante l'addestramento del modello, in milli ore nodo (1000 milliore di nodo equivalgono a un'ora nodo).
- OPTIMIZATION_OBJECTIVE: obbligatorio solo se non vuoi l'obiettivo di ottimizzazione predefinito per il tipo di previsione. Scopri di più.
- TRANSFORMATION_TYPE: il tipo di trasformazione è fornito per ogni colonna utilizzata per addestrare il modello. Scopri di più.
- COLUMN_NAME: il nome della colonna con il tipo di trasformazione specificato. È necessario specificare ogni colonna utilizzata per addestrare il modello.
- MODEL_DISPLAY_NAME: nome visualizzato del modello appena addestrato.
- DATASET_ID: ID per il set di dati di addestramento.
-
Puoi fornire un oggetto
Split
per controllare la suddivisione dei dati. Per informazioni sul controllo della suddivisione dei dati, consulta Controllo della suddivisione dei dati tramite REST. - PROJECT_NUMBER: il numero di progetto generato automaticamente per il tuo progetto
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
Corpo JSON della richiesta:
{ "displayName": "TRAININGPIPELINE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "trainingTaskInputs": { "targetColumn": "TARGET_COLUMN", "weightColumn": "WEIGHT_COLUMN", "predictionType": "regression", "trainBudgetMilliNodeHours": TRAINING_BUDGET, "optimizationObjective": "OPTIMIZATION_OBJECTIVE", "transformations": [ {"TRANSFORMATION_TYPE_1": {"column_name" : "COLUMN_NAME_1"} }, {"TRANSFORMATION_TYPE_2": {"column_name" : "COLUMN_NAME_2"} }, ... }, "modelToUpload": {"displayName": "MODEL_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/4567", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-08-18T01:22:57.479336Z", "updateTime": "2020-08-18T01:22:57.479336Z" }
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Controlla la suddivisione dei dati utilizzando REST
Puoi controllare il modo in cui i dati di addestramento vengono suddivisi tra set di addestramento, convalida e test. Quando usi l'API Vertex AI, usa l'oggetto Split
per determinare la suddivisione dei dati. L'oggetto Split
può essere incluso
nell'oggetto inputDataConfig
come uno dei vari tipi di oggetti, ognuno dei quali offre un
modo diverso per suddividere i dati di addestramento.
I metodi che puoi utilizzare per suddividere i dati dipendono dal tipo di dati:
FractionSplit
:- TRAINING_FRACTION: la frazione dei dati di addestramento da utilizzare per il set di addestramento.
- VALIDATION_FRACTION: la frazione dei dati di addestramento da utilizzare per il set di convalida.
- TEST_FRACTION: la frazione dei dati di addestramento da utilizzare per il set di test.
Se viene specificata una delle frazioni, specifica tutte le frazioni. La somma delle frazioni deve essere pari a 1,0. Ulteriori informazioni
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
PredefinedSplit
:- DATA_SPLIT_COLUMN: la colonna contenente i valori di suddivisione dati
(
TRAIN
,VALIDATION
,TEST
).
Specifica manualmente la suddivisione dati per ogni riga utilizzando una colonna di suddivisione. Ulteriori informazioni
"predefinedSplit": { "key": DATA_SPLIT_COLUMN },
- DATA_SPLIT_COLUMN: la colonna contenente i valori di suddivisione dati
(
TimestampSplit
:- TRAINING_FRACTION: la percentuale di dati di addestramento da utilizzare per il set di addestramento. Il valore predefinito è 0,80.
- VALIDATION_FRACTION: la percentuale di dati di addestramento da utilizzare per il set di convalida. Il valore predefinito è 0,10.
- TEST_FRACTION: la percentuale dei dati di addestramento da utilizzare per il set di test. Il valore predefinito è 0,10.
- TIME_COLUMN: la colonna contenente i timestamp.
Se viene specificata una delle frazioni, specifica tutte le frazioni. La somma delle frazioni deve essere pari a 1,0. Ulteriori informazioni
"timestampSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION, "key": TIME_COLUMN }
Obiettivi di ottimizzazione per i modelli di classificazione o regressione
Quando addestra un modello, Vertex AI seleziona un obiettivo di ottimizzazione predefinito in base al tipo di modello e al tipo di dati utilizzato per la colonna di destinazione.
I modelli di classificazione sono i migliori per:Obiettivo ottimizzazione | Valore API | Utilizza questo scopo se vuoi... |
---|---|---|
AUC ROC | maximize-au-roc |
Ingrandisci l'area sotto la curva della caratteristica operativa del ricevitore (ROC). Distingue tra le classi. Valore predefinito per la classificazione binaria. |
Perdita logaritmica | minimize-log-loss |
Mantieni le probabilità di previsione il più precise possibile. Obiettivo supportato solo per la classificazione multiclasse. |
AUC PR | maximize-au-prc |
Ingrandisci l'area sotto la curva di precisione-richiamo. Ottimizza i risultati per le previsioni per la classe meno comune. |
Precisione al richiamo | maximize-precision-at-recall |
Ottimizza la precisione con un valore di richiamo specifico. |
Richiamo alla precisione | maximize-recall-at-precision |
Ottimizza il richiamo con un valore di precisione specifico. |
Obiettivo ottimizzazione | Valore API | Utilizza questo scopo se vuoi... |
---|---|---|
RMSE | minimize-rmse |
Riduci al minimo l'errore quadratico medio (RMSE). Acquisisce i valori più estremi in modo accurato. Valore predefinito. |
MAE | minimize-mae |
Riduci al minimo l'errore medio assoluto (MAE). Considera i valori estremi come valori anomali con un minore impatto sul modello. |
RMSLE | minimize-rmsle |
Riduci al minimo l'errore di log radice quadrato medio (RMSLE). Penalizza l'errore sulla dimensione relativa anziché sul valore assoluto. Utile quando i valori previsti ed effettivi possono essere molto grandi. |
Passaggi successivi
- Valuta il modello.
- Scopri come esportare il modello.