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, vengono spiegati i requisiti e le limitazioni per i dati di input.

Algoritmi tabulari integrati

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

Per dettagli specifici su come funziona la pre-elaborazione per ogni algoritmo tabulare integrato, consulta la guida corrispondente:

La versione distribuita dell'algoritmo XGBoost non supporta la pre-elaborazione automatica.

Formatta i dati di input

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

Devi preparare il file CSV di input per soddisfare i seguenti requisiti:

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

Come funziona la pre-elaborazione

La pre-elaborazione automatica funziona per dati categorici e numerici. La routine di pre-elaborazione 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 tipo di dati, identifica come deve essere trattata la colonna per la trasformazione dei dati e calcola alcune statistiche per i dati nella colonna. Il job di addestramento acquisisce i risultati di questa analisi nel file metadata.json, che è incluso con altri artefatti di addestramento nel bucket Cloud Storage.

  • Tipo: la colonna può essere numerica o categorica.
  • Trattamento: l'algoritmo identifica come trattare ogni colonna. Le colonne possono essere trattate come constants o constants. Le colonne categoriche possono anche essere codificate per identity o vocabulary, a seconda che i valori categorici siano numeri interi o stringhe. Una colonna con un numero elevato di categorie viene sottoposta a un trattamento di hashing per calcolare un numero minore e più gestibile di categorie.
  • Statistiche: le statistiche vengono calcolate per aiutare a trasformare le caratteristiche in ogni colonna, in base al tipo e al trattamento della colonna.

Trasformazione

Una volta completata l'analisi iniziale del set di dati, AI Platform Training trasforma i dati in base ai tipi, ai gruppi sperimentali 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 mancano più del 10% di funzionalità.
  3. Compila i campi dei valori mancanti. La media viene utilizzata per le colonne numeriche. Per XGBoost, gli zeri vengono utilizzati per le colonne categoriche.

Esempi di trasformazioni

Le righe con il 10% di valori mancanti vengono rimosse. Negli esempi seguenti, supponiamo che la riga abbia 10 valori. Per semplicità, ogni riga di esempio viene troncata.

Problema con la riga Valori originali Valori trasformati Spiegazione
Riga di esempio senza valori mancanti [3, 0,45, ...,
'fruits', 0, 1]
[3; 0,45; ...,
1, 0, 0, 0, 1]
La stringa "fruits" 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', __, __]
La riga è stata rimossa Manca più del 10% dei valori nella riga.
Valore numerico mancante [3, 0,45, ...,
'fruits', 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 "fruits" 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.
Valore categoriale 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 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 delle caratteristiche create nel modello TensorFlow. AI Platform Training assegna semplicemente colonne delle caratteristiche al modello TensorFlow Estimator, quindi la trasformazione dei dati diventa parte della pre-elaborazione che avviene all'interno del modello TensorFlow Estimator.

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

Passaggi successivi

  • Inizia a usare uno degli algoritmi integrati.