Questa pagina fornisce alcuni concetti di base da considerare quando metti insieme i dati per un set di dati AutoML Tables. Non intende essere un trattamento esaustivo.
Introduzione
Un set di dati ben progettato aumenta la qualità del modello di machine learning risultante. Puoi utilizzare le linee guida in questa pagina per aumentare la qualità del set di dati e del modello.
Se hai esperienza nella creazione di dati di addestramento per i modelli di machine learning, consulta l'elenco delle attività di cui non devi preoccuparti. AutoML Tables esegue molte attività di preparazione dei dati al posto tuo.
Best practice per la preparazione dei dati
Evitare perdite di target
La perdita di destinazione si verifica quando i dati di addestramento includono informazioni predittive non disponibili quando richiedi una previsione. La perdita di destinazione può causare la visualizzazione da parte del modello di metriche di valutazione eccellenti, ma prestazioni scarse con i dati reali.
Ad esempio, supponiamo che tu voglia sapere quanto gelato venderà domani. Non puoi includere la temperatura del giorno target nei dati di addestramento, perché non conoscerai la temperatura (non c'è ancora stato). Tuttavia, potresti utilizzare la temperatura prevista del giorno precedente, che potrebbe essere inclusa nella richiesta di previsione.
Evitare il disallineamento addestramento/produzione
Il disallineamento addestramento/produzione si verifica quando i dati di addestramento vengono generati in modo diverso rispetto a quelli utilizzati per richiedere le previsioni.
Ad esempio, se utilizzi un valore medio a scopo di addestramento, la tua media corrisponde all'ultimo mese, ma quando richiedi una previsione.
In generale, qualsiasi differenza tra il modo in cui generi i dati di addestramento e i dati di pubblicazione (i dati che utilizzi per generare previsioni) deve essere esaminata per evitare disallineamenti nell'addestramento/produzione.
Disallineamento addestramento/produzione e distribuzione dei dati
Il disallineamento addestramento/produzione può verificarsi anche in base alla distribuzione dei dati nelle suddivisioni dei dati di addestramento, convalida e test. Esiste spesso una differenza tra la distribuzione dei dati che un modello vedrà quando viene eseguito il deployment in produzione e la distribuzione dei dati del set di dati su cui viene addestrato un modello. Ad esempio, in produzione, un modello può essere applicato a una popolazione di utenti completamente diversa da quella osservata durante l'addestramento oppure può essere utilizzato per fare previsioni 30 giorni dopo la registrazione dei dati di addestramento finali.
Per ottenere risultati ottimali, assicurati che la distribuzione delle suddivisioni dei dati utilizzate per creare il modello rifletta accuratamente la differenza tra il set di dati di addestramento e i dati su cui eseguirai previsioni nel tuo ambiente di produzione. AutoML Tables potrebbe produrre previsioni non monotoniche e, se i dati di produzione vengono campionati da una distribuzione molto diversa rispetto ai dati di addestramento, le previsioni non monotoniche non sono molto affidabili.
Inoltre, la differenza tra i dati di produzione e i dati di addestramento deve essere riflessa nella differenza tra la suddivisione dei dati di convalida e quella dei dati di addestramento e tra la suddivisione dei dati di test e la suddivisione dei dati di convalida.
Ad esempio, se hai intenzione di fare previsioni sul lifetime value utente (LTV) nei prossimi 30 giorni, assicurati che i dati nella suddivisione dei dati di convalida risalgano a 30 giorni dopo la suddivisione dei dati di addestramento e che i dati nella suddivisione dei dati di test provengano da 30 giorni dopo la suddivisione dei dati di convalida.
Allo stesso modo, se vuoi che il tuo modello sia ottimizzato per effettuare previsioni generalizzate sui nuovi utenti, assicurati che i dati di un utente specifico siano contenuti solo in una singola suddivisione dei dati di addestramento. Ad esempio, tutte le righe che appartengono a user1
sono nella suddivisione dei dati di addestramento, tutte quelle che riguardano user2
sono nella suddivisione dei dati di convalida e tutte quelle relative a user3
sono nella suddivisione dei dati di test.
Fornisci un indicatore di data e ora
Se è probabile che il pattern sottostante nei dati cambi nel tempo (non è distribuito casualmente nel tempo), assicurati di fornire queste informazioni ad AutoML Tables. Puoi fornire un indicatore di data e ora in diversi modi:
Se ogni riga di dati ha un timestamp, assicurati che la colonna sia inclusa, abbia un tipo di dati
Timestamp
e sia impostata come colonna Ora quando crei il set di dati. Questo ordine viene utilizzato per suddividere i dati, con i dati più recenti come dati di test e i primi dati come dati di addestramento. Scopri di più.Se la colonna Ora non ha molti valori distinti, per suddividere i dati devi utilizzare una suddivisione manuale anziché la colonna Tempo. In caso contrario, potresti non ottenere un numero sufficiente di righe in ogni set di dati, con conseguente errore dell'addestramento.
Se le informazioni sull'ora non sono contenute in una singola colonna, puoi utilizzare una suddivisione manuale dei dati in modo da utilizzare i dati più recenti come dati di test e i dati meno recenti come dati di addestramento.
Rendere esplicite le informazioni quando necessario
In genere, non è necessario eseguire il feature engineering quando si crea un modello utilizzando AutoML Tables. Tuttavia, per alcune primitive di dati, puoi migliorare la qualità del modello a livello di progettazione delle caratteristiche.
Ad esempio, se i dati includono longitudine e latitudine, queste colonne vengono trattate come numeri, senza calcoli speciali. Se la posizione o la distanza forniscono un segnale per il problema, devi progettare una funzionalità che fornisca esplicitamente queste informazioni.
Alcuni tipi di dati che potrebbero richiedere il feature engineering:
- Longitudine/Latitudine
- URL
- Indirizzi IP
- Indirizzi email
- Numeri di telefono
- Altri codici geografici (ad es. i codici postali)
Includi dati calcolati o aggregati in una riga
AutoML Tables utilizza solo i dati di input in una singola riga per prevedere il valore target per quella riga. Se hai calcolato o aggregato dati di altre righe o origini che sarebbero utili per determinare il valore previsto per una riga, includi tali dati nella riga di origine. Fai attenzione che la nuova colonna non causi fuga di destinazione o disallineamenti addestramento/produzione.
Ad esempio, se vuoi prevedere la domanda di un prodotto della prossima settimana, puoi migliorare la qualità della previsione includendo colonne con i seguenti valori:
- Il numero totale di articoli disponibili della stessa categoria del prodotto.
- Il prezzo medio di articoli disponibili della stessa categoria del prodotto, disponibili.
- Il numero di giorni prima di una festività nota in cui viene richiesta la previsione.
- E così via...
In un altro esempio, se vuoi prevedere se un utente specifico acquisterà un prodotto, puoi migliorare la qualità della previsione includendo colonne con i seguenti valori:
- Il tasso di conversione storico medio o la percentuale di clic per utente specifico.
- Quanti prodotti sono attualmente presenti nel carrello degli acquisti dell'utente.
Rappresentare i valori null come stringhe vuote
Se i tuoi dati utilizzano caratteri speciali o numeri per rappresentare valori nulli, questo può presentare problemi per AutoML Tables, in quanto non sappiamo che cosa significano. Se esegui l'importazione da CSV, utilizza stringhe vuote per rappresentare i valori nulli. Da BigQuery, utilizza il valore NULL.
Se possibile, evita valori mancanti
Verifica l'eventuale presenza di valori mancanti nei dati e correggili, se possibile. In caso contrario, puoi lasciare vuoto il valore, se la colonna è impostata per essere null.
Utilizza gli spazi per separare il testo
AutoML Tables tokenizza le stringhe di testo e può ricavare segnale di addestramento da singole parole. Utilizza gli spazi per separare le parole; le parole separate da altri caratteri vengono trattate come una singola entità.
Ad esempio, se fornisci il testo "rosso/verde/blu", non viene tokenizzato in "rosso", "verde" e "blu". Se queste singole parole possono essere importanti per l'addestramento del modello, devi trasformare il testo in "rosso verde blu" prima di includerlo nei dati di addestramento.
Assicurati che le funzionalità categoriche siano accurate e chiare
Le incoerenze nei dati possono causare la suddivisione errata delle categorie. Ad esempio, se i dati includono "Marrone" e "marrone", AutoML Tables utilizza questi valori come categorie separate, se volevi che fossero uguali. Gli errori ortografici possono avere un effetto simile. Assicurati di rimuovere questi tipi di incoerenze dai dati categorici prima di creare i dati di addestramento.
Presta particolare attenzione con le lezioni non bilanciate
Se le tue classi non sono bilanciate (un problema di classificazione con uno o più risultati che si verifica raramente), esamina i seguenti suggerimenti.
Fornire dati di addestramento sufficienti per la classe di minoranza
Avere solo poche righe di dati per una classe influisce sulla qualità del modello. Se possibile, devi fornire almeno 100 righe di dati per ogni classe.
Valutare la possibilità di utilizzare una suddivisione manuale
AutoML Tables seleziona le righe per il set di dati di test in modo casuale (ma in modo deterministico). Per le classi sbilanciate, potresti finire con un piccolo numero di classi di minoranza nel tuo set di dati di test, o addirittura nessuna classe, causando un errore dell'addestramento.
Se hai classi non bilanciate, potresti assegnare una suddivisione manuale per assicurarti che in ogni suddivisione siano incluse un numero sufficiente di righe con i risultati minoriti.
Evitare bias
Assicurati che i tuoi dati di addestramento siano rappresentativi dell'intero universo dei dati potenziali per i quali eseguirai previsioni. Ad esempio, se hai clienti che vivono in tutto il mondo, non dovresti utilizzare i dati di addestramento di un solo paese.
Fornire dati di addestramento sufficienti
Se non fornisci dati di addestramento sufficienti (righe), il modello risultante potrebbe avere prestazioni scarse. Più caratteristiche (colonne) utilizzi per addestrare il modello, più dati (righe) devi fornire. Un buon obiettivo per i modelli di classificazione è almeno 10 volte il numero di righe delle colonne. Per i modelli di regressione, è necessario fornire un numero di righe pari ad almeno 50 volte il numero di colonne.
Il set di dati deve sempre includere almeno 1000 righe.
Lascia tutte le altre pre-elaborazione e trasformazioni in AutoML Tables
Se non diversamente indicato in precedenza, AutoML Tables si occupa di ingegneria delle funzionalità. AutoML Tables funziona meglio quando ha accesso ai dati sottostanti. Consulta Preparazione dei dati eseguita da AutoML Tables.
Preparazione dei dati eseguita da AutoML Tables
Questa sezione elenca i requisiti comuni per i dati di addestramento che AutoML Tables esegue automaticamente. Non è necessario includere questi calcoli nei dati di addestramento. Infatti, se esegui queste trasformazioni autonomamente e le includi nei dati di addestramento, potresti peggiorare la qualità del modello risultante.
A ogni colonna delle caratteristiche vengono applicate le seguenti trasformazioni automatiche a seconda del tipo di colonna:
Tipo di colonna | Trasformazione |
---|---|
Numerico |
|
Array numerico |
|
Categoria |
|
Array categorico |
|
Testo |
|
Array di testo |
|
Timestamp |
|
Array timestamp |
|
Struttura |
|
Valori null o mancanti
Puoi scegliere in che modo vengono gestiti i valori null per i dati di addestramento impostando la colonna in modo che sia nullo o meno nello schema del set di dati. Per ulteriori informazioni, consulta la sezione Creazione di un set di dati.
Se viene visualizzato un valore null in una colonna che non supporta valori null, l'intera riga viene esclusa dall'addestramento.
I valori null nelle colonne null sono rappresentati con una variabile indicatore speciale che indica che il valore era nullo o mancante. Per le trasformazioni categoriche e di testo, l'indicatore genera un incorporamento.
AutoML Tables tratta i seguenti valori come valori null:
Un valore NULL BigQuery.
NaN o valori numerici infiniti.
Una stringa vuota. AutoML Tables non taglia gli spazi dalle stringhe. Ciò significa che " " non è considerato un valore nullo.
Una stringa che può essere convertita in NaN o in un valore numerico infinito.
- Per "NAN": ignora maiuscole/minuscole, precedute dal segno più o meno facoltativo.
- Per "INF": ignora maiuscole/minuscole, precedute dal segno più o meno facoltativo.
Valori mancanti.
Passaggi successivi
- I miei dati sono utili? un elenco di controllo pre-ML
- Preparare e curare i dati per il machine learning