Questa è un'introduzione ai percorsi dei dati tabulari con AutoML. Per comprendere le principali differenze tra AutoML e l'addestramento personalizzato, consulta Scegliere un metodo di addestramento.
Casi d'uso dei dati tabulari
Immagina di lavorare nel reparto marketing di un rivenditore digitale. Tu e il tuo team state creando un programma email personalizzato basato sugli utenti tipo. Hai creato gli utenti tipo
e le email di marketing sono pronte per l'uso. Ora devi creare un sistema che includa i clienti
in ogni utente tipo in base alle preferenze di vendita al dettaglio e al comportamento di spesa, anche quando si tratta di nuovi
clienti. Per massimizzare il coinvolgimento dei clienti, devi anche prevedere le loro abitudini di spesa in modo da ottimizzare quando inviare loro le email.
In qualità di rivenditore digitale, hai a disposizione dati sui tuoi clienti e sugli acquisti che hanno effettuato. E i nuovi clienti? Gli approcci tradizionali sono in grado di calcolare questi valori per i clienti esistenti con una cronologia di acquisto lunga, ma non ottengono buoni risultati con i clienti con pochi dati storici. E se potessi creare un sistema per prevedere questi valori e aumentare la velocità con cui fornisci programmi di marketing personalizzati a tutti i tuoi clienti?
Fortunatamente, il machine learning e Vertex AI hanno tutte le carte in regola per risolvere questi problemi.
Questa guida illustra il funzionamento di Vertex AI per i set di dati e i modelli AutoML e illustra i tipi di problemi che Vertex AI è progettato per risolvere.
Come funziona Vertex AI?
Vertex AI applica il machine learning supervisionato
per ottenere il risultato desiderato.
Le specifiche dell'algoritmo e dei metodi di addestramento cambiano in base al tipo di dati e al caso d'uso. Esistono numerose sottocategorie di machine learning, ognuna delle quali risolve problemi diversi e lavora all'interno di vincoli differenti.
Addestra un modello di machine learning con dati di esempio. Vertex AI utilizza dati tabulari (strutturati) per addestrare un modello di machine learning al fine di fare previsioni su nuovi dati. Una colonna del set di dati, chiamata target, è ciò che il modello imparerà a prevedere. Alcune altre colonne di dati sono input (chiamati caratteristiche) da cui il modello apprenderà i pattern. Puoi utilizzare le stesse funzionalità di input per creare più tipi di modelli semplicemente modificando la colonna di destinazione e le opzioni di addestramento. Dall'esempio dell'email marketing, questo significa che puoi creare modelli con le stesse funzionalità di input ma con previsioni di destinazione diverse. Un modello potrebbe prevedere l'utente tipo di un cliente (target categorico), un altro modello potrebbe prevedere la sua spesa mensile (un target numerico) e un altro ancora prevedere la domanda giornaliera dei tuoi prodotti per i tre mesi successivi (serie di target numerici).
Flusso di lavoro di Vertex AI
Vertex AI utilizza un flusso di lavoro standard per il machine learning:
- Raccogli i dati: determina i dati necessari per l'addestramento e il test del modello in base al risultato che vuoi ottenere.
- Prepara i dati: assicurati che i dati siano formattati ed etichettati correttamente.
- Addestra: imposta i parametri e crea il tuo modello.
- Valutazione: esamina le metriche del modello.
- Esegui il deployment e prevedi: rendi il modello disponibile per l'uso.
Ma prima di iniziare a raccogliere i dati, devi pensare al problema che stai cercando di risolvere. In questo modo, verranno definiti i requisiti per i dati.
Preparazione dei dati
Valuta il tuo caso d'uso
Inizia con il tuo problema: qual è il risultato che vuoi ottenere?
Che tipo di dati è la colonna di destinazione? A quanti dati hai accesso? A seconda delle risposte, Vertex AI crea il modello necessario per risolvere il tuo caso d'uso:
- I modelli di classificazione binaria prevedono un risultato binario (una di due classi). Utilizza questo tipo di modello per le domande con sì o no. Ad esempio, potresti voler creare un modello di classificazione binario per prevedere se un cliente acquisterà un abbonamento. Generalmente, un problema di classificazione binaria richiede meno dati rispetto ad altri tipi di modelli.
- I modelli di classificazione multi-classe prevedono una classe da tre o più classi discrete. Utilizza questo tipo di modello per la classificazione. Ad esempio, in qualità di rivenditore potresti voler creare un modello di classificazione multiclasse per segmentare i clienti in utenti tipo diversi.
- I modelli di regressione prevedono un valore continuo. Ad esempio, in qualità di rivenditore potresti voler creare un modello di regressione per prevedere quanto spenderà un cliente il mese prossimo.
- I modelli di previsione prevedono una sequenza di valori. Ad esempio, in qualità di rivenditore potresti voler prevedere la domanda giornaliera relativa ai tuoi prodotti per i prossimi tre mesi, in modo da poter prevedere in anticipo e in modo appropriato le novità dei prodotti.
Le previsioni sui dati tabulari sono diverse dalla classificazione e dalla regressione per due motivi principali:
Nella classificazione e nella regressione, il valore previsto del target dipende solo dai valori delle colonne delle caratteristiche nella stessa riga. Nelle previsioni, i valori previsti dipendono anche dai valori di contesto del target e dalle caratteristiche.
Nei problemi di regressione e classificazione, l'output è un valore. Nei problemi di previsione, l'output è una sequenza di valori.
Raccogli i tuoi dati
Dopo aver definito il caso d'uso, devi raccogliere i dati che ti consentono di creare il modello che preferisci.
Dopo aver stabilito il tuo caso d'uso, dovrai raccogliere i dati per addestrare il modello. L'approvvigionamento e la preparazione dei dati sono passaggi fondamentali per la creazione di un modello di machine learning. I dati a tua disposizione indicano il tipo di problemi che puoi risolvere. Quanti dati hai a disposizione? I tuoi dati sono pertinenti alle domande a cui stai cercando di rispondere? Durante la raccolta dei dati, tieni presente le seguenti considerazioni chiave.
Seleziona le funzionalità pertinenti
Una caratteristica è un attributo di input utilizzato per l'addestramento del modello. Le caratteristiche sono il modo in cui il modello identifica i pattern per fare previsioni, quindi devono essere pertinenti al problema. Ad esempio, per creare un modello che prevede se la transazione con carta di credito è fraudolenta o meno, devi creare un set di dati contenente dettagli della transazione come acquirente, venditore, importo, data e ora e articoli acquistati. Altre funzionalità utili potrebbero essere le informazioni storiche su acquirente e venditore e sulla frequenza con cui l'articolo acquistato è stato coinvolto in attività fraudolente. Quali altre funzionalità potrebbero essere pertinenti?
Considera il caso d'uso dell'email marketing per la vendita al dettaglio che abbiamo visto nell'introduzione. Ecco alcune colonne di funzionalità che potresti richiedere:
- Elenco di articoli acquistati (inclusi brand, categorie, prezzi, sconti)
- Numero di articoli acquistati (ultimo giorno, settimana, mese, anno)
- Somma delle spese (giorno, settimana, mese, anno precedente)
- Per ogni articolo, il numero totale di articoli venduti ogni giorno
- Per ogni articolo, prezzo totale disponibile ogni giorno
- Se stai pubblicando una promozione per un determinato giorno
- Profilo demografico noto dell'acquirente
Includi dati sufficienti
In generale, più sono gli esempi di addestramento, migliore sarà il risultato. Anche la quantità di dati di esempio richiesti viene scalata di pari passo con la complessità del problema che stai cercando di risolvere. Non avrai bisogno di così tanti dati per ottenere un modello di classificazione binario accurato rispetto a un modello multi-classe perché è meno complicato prevedere una classe tra due anziché molte.
Non esiste una formula perfetta, ma esistono dati di esempio minimi consigliati:
- Problema di classificazione: 50 righe x le caratteristiche del numero
- Problema di previsione:
- 5000 righe x il numero di elementi
- 10 valori univoci nella colonna degli identificatori della serie temporale x il numero di caratteristiche
- Problema di regressione: 200 volte il numero di caratteristiche
Acquisisci variante
Il set di dati dovrebbe acquisire la diversità dello spazio dei problemi. Più sono gli esempi diversificati che un modello vede durante l'addestramento, più facilmente può generalizzare a esempi nuovi o meno comuni. Immagina se il tuo modello di retail sia stato addestrato solo utilizzando i dati di acquisto dell'inverno. Riuscirebbe a prevedere con successo le preferenze relative all'abbigliamento estivo o i comportamenti di acquisto?
Preparare i dati
Dopo aver identificato i dati disponibili, devi assicurarti che siano pronti per l'addestramento. Se i dati sono di parte o contengono valori mancanti o errati, la qualità del modello ne risente. Prima di iniziare l'addestramento del modello, considera quanto segue. Scopri di più.
Evitare fughe di dati e disallineamenti addestramento/produzione
La fuga di dati si verifica quando, durante l'addestramento, utilizzi funzionalità di input che "perdono" informazioni sul target che stai cercando di prevedere, che non è disponibile quando il modello viene effettivamente pubblicato. Questo può essere rilevato quando una caratteristica altamente correlata con la colonna di destinazione è inclusa come una delle caratteristiche di input. Ad esempio, se stai creando un modello per prevedere se un cliente sottoscriverà un abbonamento nel mese successivo e una delle funzionalità di input è il pagamento futuro dell'abbonamento di quel cliente. Ciò può portare a prestazioni del modello elevate durante i test, ma non durante il deployment in produzione, poiché i dati di pagamento degli abbonamenti futuri non sono disponibili al momento della pubblicazione.
Il disallineamento addestramento/produzione si verifica quando le caratteristiche di input utilizzate durante il tempo di addestramento sono diverse da quelle fornite al modello al momento della pubblicazione, causando una scarsa qualità del modello in produzione. Ad esempio, viene creato un modello per prevedere le temperature orarie, ma viene eseguito l'addestramento con dati che contengono solo temperature settimanali. Un altro esempio: fornire sempre i voti di uno studente nei dati di addestramento quando si prevede l'abbandono degli studenti, ma non fornire queste informazioni al momento della pubblicazione.
Comprendere i dati di addestramento è importante per prevenire le fughe di dati e il disallineamento addestramento/produzione:
- Prima di utilizzare qualsiasi dato, assicurati di conoscere il significato dei dati e se dovresti utilizzarli come funzionalità
- Controlla la correlazione nella scheda Addestra. Le correlazioni elevate dovrebbero essere segnalate per la revisione.
- Disallineamento addestramento/produzione: assicurati di fornire al modello solo funzionalità di input che sono disponibili nello stesso formato esatto al momento della pubblicazione.
Elimina i dati mancanti, incompleti e incoerenti
È frequente che nei dati di esempio manchino valori imprecisi. Prenditi il tempo necessario per rivedere e, se possibile, migliorare la qualità dei tuoi dati prima di utilizzarli per l'addestramento. Maggiore è il numero di valori mancanti, meno i dati saranno utili per l'addestramento di un modello di machine learning.
- Verifica l'eventuale presenza di valori mancanti nei dati e, se possibile, correggili oppure lascia vuoto il valore se la colonna è impostata su null. Vertex AI è in grado di gestire i valori mancanti, ma è più probabile che si ottengano risultati ottimali se tutti i valori sono disponibili.
- Per le previsioni, verifica che l'intervallo tra le righe di addestramento sia coerente. Vertex AI può attribuire valori mancanti, ma è più probabile che ottengano risultati ottimali se tutte le righe sono disponibili.
- Pulisci i tuoi dati correggendo o eliminando errori nei dati o rumori. Mantieni i tuoi dati coerenti: controlla ortografia, abbreviazioni e formattazione.
Analizza i dati dopo l'importazione
Vertex AI fornisce una panoramica del set di dati dopo che è stato importato. Esamina il set di dati importato per assicurarti che ogni colonna abbia il tipo di variabile corretto. Vertex AI rileverà automaticamente il tipo di variabile in base ai valori delle colonne, ma è preferibile esaminarle tutte. Devi inoltre esaminare la possibilità di annullare i valori di ogni colonna, che determina se una colonna può avere valori mancanti o NULL.
Addestra modello
Dopo l'importazione del set di dati, il passaggio successivo consiste nell'addestrare un modello. Vertex AI genererà un modello di machine learning affidabile con i valori predefiniti per l'addestramento, ma puoi modificare alcuni parametri in base al tuo caso d'uso.
Prova a selezionare il maggior numero possibile di colonne di caratteristiche per l'addestramento, ma esaminale per assicurarti che siano appropriate per l'addestramento. Per selezionare le funzionalità, tieni presente quanto segue:
- Non selezionare colonne di caratteristiche che creeranno rumore, ad esempio colonne di identificatori assegnati in modo casuale con un valore univoco per ogni riga.
- Assicurati di comprendere ogni colonna delle funzionalità e i relativi valori.
- Se stai creando più modelli da un set di dati, rimuovi le colonne di destinazione che non fanno parte del problema di previsione attuale.
- Ricorda i principi di equità: stai addestrando il tuo modello con una funzionalità che potrebbe portare a decisioni di parte o ingiuste per i gruppi emarginati?
In che modo Vertex AI utilizza il set di dati
Il set di dati verrà suddiviso in set di addestramento, convalida e test. La suddivisione predefinita di Vertex AI dipende dal tipo di modello che stai addestrando. Puoi anche specificare le suddivisioni (suddivisioni manuali), se necessario. Per maggiori informazioni, consulta Informazioni sulle suddivisioni di dati per i modelli AutoML.
Set per l'addestramento
La maggior parte dei tuoi dati dovrebbe essere nel set di addestramento. Si tratta dei dati che il modello "vede" durante l'addestramento: viene utilizzato per apprendere i parametri del modello, ovvero i pesi delle connessioni tra i nodi della rete neurale.
Set di convalida
Il set di convalida, a volte chiamato anche set "dev", viene utilizzato anche durante il processo di addestramento. Dopo che il framework di apprendimento del modello ha incorporato i dati di addestramento durante ogni iterazione del processo di addestramento, utilizza le prestazioni del modello sul set di convalida per ottimizzare gli iperparametri del modello, variabili che specificano la struttura del modello. Se provi a utilizzare il set di addestramento per ottimizzare gli iperparametri, è molto probabile che il modello finisca eccessivamente sui dati di addestramento e abbia difficoltà a generalizzare gli esempi che non corrispondono esattamente. L'utilizzo di un set di dati piuttosto nuovo per perfezionare la struttura del modello significa che il modello sarà generalizzato meglio.
Set di test
Il set di test non è coinvolto nel processo di addestramento. Dopo che il modello ha completato completamente l'addestramento, Vertex AI utilizza il set di test come una sfida completamente nuova per il tuo modello. Le prestazioni del modello nel set di test hanno lo scopo di darti un'idea piuttosto chiara delle prestazioni del modello sui dati reali.
Valuta, testa ed esegui il deployment del modello
Valuta modello
Dopo l'addestramento del modello, riceverai un riepilogo delle sue prestazioni. Le metriche di valutazione del modello si basano sulle prestazioni del modello rispetto a una sezione del tuo set di dati (il set di dati di test). Ci sono un paio di metriche e concetti chiave da considerare per determinare se il tuo modello è pronto per essere utilizzato con dati reali.
Metriche di classificazione
Soglia punteggio
Prendiamo in considerazione un modello di machine learning che prevede se un cliente acquisterà una giacca nel prossimo
anno. Quanto deve essere sicuro il modello prima di prevedere che un determinato cliente acquisterà una giacca? Nei modelli di classificazione, a ogni previsione viene assegnato un punteggio di affidabilità, ovvero una valutazione numerica del livello di certezza del modello che la classe prevista sia corretta. La soglia di punteggio è il numero che determina quando un determinato punteggio viene convertito in una decisione di tipo sì o no, ovvero il valore a cui il modello dice "Sì, questo punteggio di affidabilità è sufficientemente alto da concludere che questo cliente acquisterà un cappotto l'anno successivo.
Se la soglia di punteggio è bassa, il modello potrebbe essere classificato in modo errato. Per questo motivo, la soglia di punteggio dovrebbe essere basata su un determinato caso d'uso.
Risultati della previsione
Dopo aver applicato la soglia di punteggio, le previsioni effettuate dal modello rientrano in una di quattro categorie. Per comprendere queste categorie, immagina ancora un modello di classificazione binaria delle giacche. In questo esempio, la classe positiva (quella che il modello sta cercando di prevedere) è che il cliente acquisterà una giacca l'anno successivo.
- Vero positivo: il modello prevede correttamente la classe positiva. Il modello ha previsto correttamente che un cliente abbia acquistato una giacca.
- Falso positivo: il modello prevede erroneamente la classe positiva. Il modello ha previsto che un cliente ha acquistato una giacca, ma non l'ha fatto.
- Vero negativo: il modello prevede correttamente la classe negativa. Il modello ha previsto correttamente che un cliente non ha acquistato una giacca.
- Falso negativo: il modello prevede erroneamente una classe negativa. Il modello ha previsto che un cliente non ha acquistato una giacca, ma è successo.
Precisione e richiamo
Le metriche di precisione e richiamo ti aiutano a comprendere in che misura il tuo modello sta acquisendo le informazioni e cosa sta omettendo. Scopri di più su precisione e richiamo.
- La precisione è la frazione di previsioni positive che sono risultate corrette. Di tutte le previsioni relative all'acquisto di un cliente, quale frazione era costituita da acquisti effettivi?
- Richiamo indica la frazione di righe con questa etichetta che il modello ha previsto correttamente. Di tutti gli acquisti dei clienti che si sarebbero potuti identificare, quale frazione ha riguardato?
A seconda del tuo caso d'uso, potrebbe essere necessario ottimizzare per la precisione o il richiamo.
Altre metriche di classificazione
- AUC PR: l'area sotto la curva di precisione-richiamo (PR). Questo valore va da zero a uno, dove un valore più elevato indica un modello di qualità superiore.
- AUC ROC: l'area sotto la curva della caratteristica operativa del ricevitore (ROC). L'intervallo varia da zero a uno, dove un valore più elevato indica un modello di qualità superiore.
- Accuratezza: frazione di previsioni di classificazione prodotte dal modello che sono state corrette.
- Perdita di log: entropia incrociata tra le previsioni del modello e i valori target. L'intervallo va da zero a infinito, dove un valore più basso indica un modello di qualità migliore.
- Punteggio F1: la media armonica di precisione e richiamo. F1 è una metrica utile per trovare un equilibrio tra precisione e richiamo qualora esista una distribuzione non uniforme delle classi.
Metriche di previsione e regressione
Una volta creato il modello, Vertex AI offre una varietà di metriche standard da esaminare. Non esiste una risposta perfetta su come valutare il tuo modello; considera le metriche di valutazione nel contesto del tuo tipo di problema e degli obiettivi che vuoi ottenere con il modello. Di seguito è riportata una panoramica di alcune metriche che Vertex AI può fornire.
Errore assoluto medio (MAE)
Il MAE indica la differenza media assoluta tra i valori target e previsti. Misura l'entità media degli errori, ovvero la differenza tra un valore target e un valore previsto, in un insieme di previsioni. Inoltre, poiché utilizza valori assoluti, il MAE non considera la direzione della relazione, né indica prestazioni inferiori o superiori. Quando si valuta il MAE, un valore inferiore indica un modello di qualità superiore (0 rappresenta un predittore perfetto).
Radice errore quadratico medio (RMSE)
L'RMSE è la radice quadrata della differenza quadrata media tra i valori target e previsti. RMSE è più sensibile ai valori anomali rispetto al MAE, quindi se ti preoccupano gli errori di grandi dimensioni, l'RMSE può essere una metrica più utile da valutare. Analogamente al MAE, un valore inferiore indica un modello di qualità superiore (0 rappresenta un predittore perfetto).
Errore logaritmico quadratico medio (RMSLE)
Il valore RMSLE è l'RMSE in scala logaritmica. L'RMSLE è più sensibile agli errori relativi rispetto a quelli assoluti e dà più importanza alle prestazioni inferiori al previsto che alle sovraprestazioni.
Quantile osservato (solo previsione)
Per un determinato quantile target, il quantile osservato mostra la frazione effettiva dei valori osservati al di sotto dei valori di previsione dei quantili specificati. Il quantile osservato mostra quanto è distante o vicino il modello rispetto al quantile target. Una differenza minore tra i due valori indica un modello di qualità superiore.
Perdita di flipper scalata (solo previsione)
Misura la qualità di un modello per un determinato quantile target. Un numero inferiore indica un modello di qualità migliore. Puoi confrontare la metrica scalata della perdita di flipper a quantili diversi per determinare l'accuratezza relativa del tuo modello tra questi diversi quantili.
Testa il tuo modello
La valutazione delle metriche del modello è principalmente il modo in cui puoi determinare se il modello è pronto per il deployment, ma puoi anche testarlo con nuovi dati. Carica nuovi dati per vedere se le previsioni del modello corrispondono alle tue aspettative. In base alle metriche di valutazione o ai test con nuovi dati, potresti dover continuare a migliorare le prestazioni del modello.
Esegui il deployment del modello
Quando le prestazioni del modello sono soddisfacenti, è il momento di utilizzarlo. Forse questo significa utilizzo su scala di produzione o forse si tratta di una richiesta di previsione una tantum. A seconda del tuo caso d'uso, puoi utilizzare il modello in diversi modi.
Previsione batch
La previsione batch è utile per effettuare molte richieste di previsione contemporaneamente. La previsione batch è asincrona, ossia il modello attende che vengano elaborate tutte le richieste di previsione prima di restituire un file CSV o una tabella BigQuery con valori di previsione.
Previsione online
Esegui il deployment del modello per renderlo disponibile per le richieste di previsione utilizzando un'API REST. La previsione online è sincrona (in tempo reale), ossia restituisce rapidamente una previsione, ma accetta solo una richiesta di previsione per chiamata API. La previsione online è utile se il modello fa parte di un'applicazione e parti del sistema dipendono da tempi di previsione rapidi.
Esegui la pulizia
Per evitare addebiti indesiderati, annulla il deployment del modello quando non è in uso.
Quando hai finito di utilizzare il modello, elimina le risorse che hai creato per evitare addebiti indesiderati sul tuo account.
- Ciao dati immagine: pulisci il progetto
- Ciao dati tabulari: pulisci il progetto
- Dati di testo di esempio: pulisci il progetto
- Dati di Hello Video: ripulisci il progetto