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 i seguenti passaggi:
Addestra un modello
Console Google Cloud
Nella console Google Cloud, nella sezione Vertex AI, vai alla pagina Set di dati.
Fai clic sul nome del set di dati che vuoi utilizzare per addestrare il modello per aprire la relativa pagina dei dettagli.
Se il tipo di dati utilizza set di annotazioni, seleziona il set di annotazioni 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 che il modello prevederà.
Scopri di più sui requisiti delle colonne target.
Facoltativo: per esportare il set di dati di test in BigQuery, selezionate Esporta il set di dati di test in BigQuery e fornite il nome della tabella.
Facoltativo: per scegliere come suddividere i dati tra i set di addestramento, test e convalida, apri le Opzioni avanzate. Puoi scegliere tra le seguenti opzioni di suddivisione dei dati:
- Casuale (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 le righe di dati per ciascuno dei set di dati in base ai valori in una colonna di suddivisione dati. Specifica il nome della colonna di suddivisione dei dati.
- Cronologico: Vertex AI suddivide i dati in base al timestamp in una colonna di tempo. Specifica il nome della colonna della data e dell'ora.
Scopri di più sulle suddivisioni dei dati.
Fai clic su Continua.
(Facoltativo) Fai clic su Genera statistiche. La generazione delle statistiche compila i menu a discesa Trasformazione.
Nella pagina Opzioni di addestramento, esamina l'elenco delle colonne ed escludi dall'addestramento le colonne che non devono essere utilizzate per addestrare il modello.
Rivedi le trasformazioni selezionate per le funzionalità incluse, nonché se sono consentiti dati non validi, e apporta gli aggiornamenti necessari.
Scopri di più sulle trasformazioni e sui dati non validi.
Se vuoi specificare una colonna di peso o modificare lo scopo di ottimizzazione predefinito, apri le Opzioni avanzate ed effettua le selezioni.
Scopri di più sulle colonne di peso e sugli obiettivi di ottimizzazione.
Fai clic su Continua.
Nella finestra Compute e prezzi, configura come segue:
Inserisci il numero massimo di ore per cui vuoi addestrare il modello.
Questa impostazione ti consente di limitare i costi di addestramento. Il tempo reale trascorso può essere superiore a questo valore, perché sono coinvolte altre operazioni per la creazione di un nuovo modello.
Il tempo di addestramento suggerito è correlato alle dimensioni dei dati di addestramento. La tabella seguente mostra gli intervalli di tempo di addestramento suggeriti in base al numero di righe. Anche un gran numero 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 di addestramento, se ne hai specificato uno. Puoi chiudere questa scheda e tornarci in un secondo momento. Riceverai un'email al completamento dell'addestramento del modello.
API
Seleziona un obiettivo di tipo di dati tabulari.
Classificazione
Seleziona una scheda per la tua lingua o il tuo ambiente:
REST
Utilizza il comando trainingPipelines.create per addestrare un modello.
Addestrare il modello.
Prima di utilizzare i dati della richiesta, apporta 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 vuoi che il modello preveda.
- WEIGHT_COLUMN: (Facoltativo) la colonna del peso. Scopri di più.
- TRAINING_BUDGET: il tempo massimo di addestramento del modello in mille ore nodo (1000 milli ore 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 viene 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: l'ID del set di dati di addestramento.
-
Puoi fornire un oggetto
Split
per controllare la suddivisione dei dati. Per informazioni su come controllare la suddivisione dei dati, consulta Controllare la suddivisione dei dati utilizzando REST. - PROJECT_NUMBER: il numero di progetto generato automaticamente del 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 Java riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. 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 ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Vertex AI.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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
Utilizza il comando trainingPipelines.create per addestrare un modello.
Addestrare il modello.
Prima di utilizzare i dati della richiesta, apporta 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 vuoi che il modello preveda.
- WEIGHT_COLUMN: (Facoltativo) la colonna del peso. Scopri di più.
- TRAINING_BUDGET: il tempo massimo di addestramento del modello in mille ore nodo (1000 milli ore 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 viene 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: l'ID del set di dati di addestramento.
-
Puoi fornire un oggetto
Split
per controllare la suddivisione dei dati. Per informazioni su come controllare la suddivisione dei dati, consulta Controllare la suddivisione dei dati utilizzando REST. - PROJECT_NUMBER: il numero di progetto generato automaticamente del 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 Java riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. 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 ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Vertex AI.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori 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.
Controllare la suddivisione dei dati utilizzando REST
Puoi controllare la modalità di suddivisione dei dati di addestramento tra i set di addestramento, convalida e test. Quando utilizzi l'API Vertex AI, utilizza
l'oggetto Split
per
determinare la suddivisione dei dati. L'oggetto Split
può essere incluso nell'oggetto inputDataConfig
come uno di diversi tipi di oggetti, ognuno dei quali fornisce 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 usare 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, devono essere specificate tutte. La somma delle frazioni deve essere pari a 1,0. Scopri di più.
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
PredefinedSplit
:- DATA_SPLIT_COLUMN: la colonna contenente i valori di suddivisione dei dati
(
TRAIN
,VALIDATION
,TEST
).
Specifica manualmente la suddivisione dei dati per ogni riga utilizzando una colonna di suddivisione. Scopri di più.
"predefinedSplit": { "key": DATA_SPLIT_COLUMN },
- DATA_SPLIT_COLUMN: la colonna contenente i valori di suddivisione dei dati
(
TimestampSplit
:- TRAINING_FRACTION: la percentuale dei 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 di 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, devono essere specificate tutte. Le frazioni devono sommarsi a 1,0. Scopri di più.
"timestampSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION, "key": TIME_COLUMN }
Obiettivi di ottimizzazione per i modelli di classificazione o regressione
Quando addestri un modello, Vertex AI seleziona un obiettivo di ottimizzazione predefinito in base al tipo di modello e al tipo di dati utilizzati per la colonna di destinazione.
I modelli di classificazione sono ideali per:Obiettivo ottimizzazione | Valore dell'API | Utilizza questo obiettivo se vuoi… |
---|---|---|
AUC ROC | maximize-au-roc |
Massimizza 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 accurate per quanto possibile le probabilità delle previsioni. Unico obiettivo supportato per la classificazione multiclasse. |
AUC PR | maximize-au-prc |
Massimizza l'area sotto la curva di precisione-richiamo. Ottimizza i risultati per le previsioni della classe meno comune. |
Precisione al richiamo | maximize-precision-at-recall |
Ottimizza la precisione per un valore di richiamo specifico. |
Richiamo alla precisione | maximize-recall-at-precision |
Ottimizza il richiamo a un valore di precisione specifico. |
Obiettivo ottimizzazione | Valore dell'API | Utilizza questo obiettivo se vuoi… |
---|---|---|
RMSE | minimize-rmse |
Riduci al minimo l'errore quadratico medio (RMSE). Acquisisce con precisione valori più estremi. Valore predefinito. |
MAE | minimize-mae |
Riduci al minimo l'errore assoluto medio (MAE). Visualizza i valori estremi come outlier con un minore impatto sul modello. |
RMSLE | minimize-rmsle |
Riduci al minimo l'errore logaritmico quadratico 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.