Elaborazione preliminare dei dati per gli algoritmi tabulari integrati

Questa pagina fornisce una panoramica generale di come AI Platform Training pre-elabora i dati per l'addestramento con algoritmi tabulari integrati. Inoltre, spiega i requisiti e le limitazioni per i dati di input.

Algoritmi tabulari integrati

Gli algoritmi integrati che accettano dati tabulari (numerici e categorici) hanno alcune funzionalità di pre-elaborazione.

Per informazioni specifiche sul funzionamento dell'elaborazione preliminare per ogni algoritmo tabulare integrato, consulta la guida corrispondente:

La versione distribuita dell'algoritmo XGBoost non supporta la preelaborazione automatica.

Formattare i dati di input

I dati di input devono essere un file CSV con codifica UTF-8.

Devi preparare il file CSV di input in modo che soddisfi i seguenti requisiti:

  • Rimuovi la riga di intestazione. La riga di intestazione contiene le etichette per ogni colonna. Rimuovi la riga di intestazione per evitare di inviarla con il resto delle istanze di dati come parte dei dati di addestramento.
  • Assicurati che la colonna di destinazione sia la prima. La colonna target contiene il valore che stai cercando di prevedere. Per un algoritmo di classificazione, tutti i valori nella colonna target sono una classe o una categoria. Per un algoritmo di regressione, tutti i valori nella colonna di destinazione sono numerici.

Come funziona l'elaborazione preliminare

La pre-elaborazione automatica funziona per i dati categorici e numerici. La routine di preelaborazione analizza e poi trasforma i dati.

Analisi

Innanzitutto, AI Platform Training analizza il set di dati colonna per colonna. Per ogni colonna, AI Platform Training rileva automaticamente il relativo tipo di dati, identifica come deve essere trattata la colonna per la trasformazione dei dati e calcola alcune statistiche per i dati al suo interno. Il job di addestramento acquisisce i risultati di questa analisi nel file metadata.json, incluso con gli altri artefatti di addestramento nel bucket Cloud Storage.

  • Tipo: la colonna può essere numerica o categorica.
  • Trattamento: l'algoritmo identifica la modalità di trattamento di ogni colonna. Le colonne possono essere trattate come costanti o identificatori di riga. Le colonne categoriche possono anche essere contrassegnate per identità o vocabolario, a seconda che i valori categorici siano interi o stringhe. Una colonna con un numero elevato di categorie viene sottoposta a un trattamento di hashing per calcolare un numero inferiore e più gestibile di categorie.
  • Statistiche: vengono calcolate per contribuire a trasformare le funzionalità in ogni colonna in base al tipo e al trattamento della colonna.

Trasformazione

Al termine dell'analisi iniziale del set di dati, AI Platform Training trasforma i dati in base ai tipi, ai trattamenti e alle statistiche applicati al set di dati. AI Platform Training esegue le trasformazioni nel seguente ordine:

  1. Suddivide il set di dati di addestramento in set di dati di convalida e test se specifichi le percentuali di suddivisione.
  2. Rimuove le righe in cui manca più del 10% delle funzionalità.
  3. Compila i valori mancanti. La media viene utilizzata per le colonne numeriche. Per XGBoost, vengono utilizzati zeri per le colonne categoriche.

Trasformazioni di esempio

Le righe con il 10% di valori mancanti vengono rimosse. Negli esempi seguenti, si suppone che la riga contenga 10 valori. Per semplicità, ogni riga di esempio è troncata.

Problema con la riga Valori originali Valori trasformati Spiegazione
Riga di esempio senza valori mancanti [3, 0,45, ...,
'frutti', 0, 1]
[3, 0,45, ...,
1, 0, 0, 0, 1]
La stringa "frutti" viene trasformata nei valori "1, 0, 0" nella codifica one-hot. Per gli algoritmi basati su TensorFlow, questo avviene nel grafico TensorFlow. Per XGBoost, AI Platform Training esegue questa trasformazione.
Troppi valori mancanti [3, 0,45, ...,
'frutti', __, __]
Riga rimossa Manca più del 10% dei valori nella riga.
Valore numerico mancante [3, 0,45, ...,
'frutti', 0, __]
[3, 0,45, ...,
1, 0, 0, 0, 0,54]
  • Il valore medio della colonna sostituisce il valore numerico mancante. In questo esempio, la media è 0,54.
  • La stringa "frutti" viene trasformata nei valori "1, 0, 0" nella codifica one-hot. Per gli algoritmi basati su TensorFlow, questo avviene nel relativo grafico. Per XGBoost, AI Platform Training esegue questa trasformazione.
Valore categorico mancante [3, 0,45, ...,
__, 0, 1]
[3, 0,45, ...,
0, 0, 0, 0, 1]
  • Il valore categorico mancante viene trasformato nei valori "0, 0, 0" nella codifica one-hot. Per gli algoritmi basati su TensorFlow, questo avviene nel grafico TensorFlow. Per XGBoost, AI Platform Training esegue questa trasformazione.

Esistono ulteriori differenze nel processo di trasformazione, a seconda del framework di ML su cui si basa l'algoritmo integrato. Per gli algoritmi integrati basati su TensorFlow (Linear Learner, Wide and Deep), i trattamenti delle colonne corrispondono direttamente alle colonne di funzionalità create nel modello TensorFlow. L'AI Platform Training assegna semplicemente le colonne delle funzionalità per il modello TensorFlow Estimator, quindi la trasformazione dei dati diventa parte della pre-elaborazione che avviene all'interno del modello.

In caso contrario, come con XGBoost, AI Platform Training applica i trattamenti delle colonne e esegue direttamente le trasformazioni dei dati.

Passaggi successivi

  • Inizia con uno degli algoritmi integrati.