Preparazione dei dati di addestramento

In questa pagina viene descritto come preparare i dati di addestramento prima di importarli in tabelle AutoML.

Introduzione

La qualità dei dati di addestramento influisce notevolmente sull'efficacia del modello creato e, per estensione, sulla qualità delle previsioni restituite da tale modello. Non puoi modificare i dati dopo averli caricati. Se devi modificare i dati di addestramento dopo l'importazione, devi aggiornare i dati di origine e reimportarli.

Comprendere il modo in cui i dati vengono interpretati e utilizzati da AutoML Tables consente di caricare dati puliti ed efficaci.

Comprendere il problema

Il primo passaggio per creare dati di addestramento efficaci è assicurarti che il problema sia ben definito e che fornisca i risultati delle previsioni di cui hai bisogno. Se non hai mai utilizzato il machine learning, consulta i tipi di problemi che riguardano le tabelle AutoML e decidi che tipo di modello creare. Per ulteriori informazioni sui tipi di problemi supportati da AutoML Tables, consulta i tipi di problemi.

Stabilire cosa includere nel set di dati

Successivamente, devi determinare i dati da includere nei dati di addestramento. In alcuni casi, puoi utilizzare una tabella già esistente nei dati aziendali. In altri casi, per creare i dati di addestramento più efficaci è necessario combinare i dati provenienti da fonti diverse o, se possibile, eseguire alcune trasformazioni dei dati.

Requisiti dei dati di addestramento

I dati di addestramento devono essere conformi ai seguenti requisiti:

  • Deve avere una dimensione massima di 100 GB.

  • Deve essere incluso il valore che vuoi prevedere (la colonna target).

    Se i dati non hanno questa colonna, AutoML Tables non può associare i dati di addestramento al risultato desiderato. Dal tipo di dati di questa colonna dipende anche il tipo di modello. Scopri di più.

  • Deve contenere almeno due colonne e non più di 1000.

    Una colonna deve essere l'attributo target e deve essere disponibile almeno una funzionalità per addestrare il modello. Idealmente, i dati di addestramento hanno molte più di due colonne.

  • Devono esserci almeno 1.000 e non più di 200.000.000 righe.

    A seconda delle funzionalità del set di dati, 1000 righe potrebbero non essere sufficienti per addestrare un modello ad alte prestazioni. Scopri di più.

Funzionalità aggiuntive basate sui dati di addestramento

Inoltre, alcune funzionalità di AutoML Tables richiedono dati specifici per essere inclusi nei dati di addestramento:

Per ulteriori best practice per i dati, consulta Best practice per la creazione di dati di addestramento.

Preparazione dell'origine dell'importazione

Puoi fornire dati di addestramento di modelli ad AutoML Tables in due modi:

L'origine da utilizzare dipende dal modo in cui vengono archiviati i dati e dalle dimensioni e complessità dei dati. Se il set di dati è ridotto e non hai bisogno di tipi di dati più complessi, il file CSV potrebbe essere più semplice. Per set di dati più grandi che includono array e strutture, devi utilizzare BigQuery.

Per entrambe le origini dell'importazione, i dati devono soddisfare i seguenti requisiti:

  • Ha da 1.000 a 200.000.000 righe.
  • Ha da 2 a 1000 colonne.
  • Massimo 100 GB.

BigQuery

La tabella BigQuery deve utilizzare un set di dati BigQuery su più aree geografiche nella località US o EU. A seconda della posizione della tabella BigQuery e della relativa origine dati (che può essere diversa), devi eseguire gli aggiornamenti delle autorizzazioni elencati nella tabella seguente. Tieni presente che potrebbero essere necessarie modifiche alle autorizzazioni nel tuo progetto home (il progetto in cui si trova AutoML Tables) o nel progetto straniero.

Tipo di tabella Località tabella Località origine dati Aggiunta del ruolo obbligatoria
Tabella BigQuery nativa Progetto di casa N/A Nessuno.
Tabella BigQuery nativa Progetto straniero N/A BigQuery Data Viewer per il progetto estero. Scopri di più.
Vista BigQuery Stesso progetto N/A Nessuno.
Vista BigQuery Progetto diverso N/A BigQuery Data Viewer per il progetto estero. Scopri di più.
Origine dati BigQuery esterna supportata da Bigtable Progetto di casa Progetto di casa Bigtable Reader per il progetto domestico. Scopri di più.
Origine dati BigQuery esterna supportata da Bigtable Progetto di casa Progetto straniero Bigtable Reader per il progetto estero. Scopri di più.
Origine dati BigQuery esterna supportata da Bigtable Progetto straniero Progetto straniero BigQuery Reader e Bigtable Reader per il progetto straniero. Scopri di più.
Origine dati BigQuery esterna supportata da Cloud Storage Progetto di casa Progetto di casa Nessuno.
Origine dati BigQuery esterna supportata da Cloud Storage Progetto di casa Progetto straniero Storage Object Viewer per il progetto estero. Scopri di più.
Origine dati BigQuery esterna supportata da Cloud Storage Progetto straniero Progetto straniero Storage Object Viewer e BigQuery Data Viewer per il progetto straniero. Scopri di più.
Origine dati BigQuery esterna supportata da Fogli Google Progetto di casa N/A Condividi il file di Fogli con l'account di servizio AutoML. Scopri di più.
Origine dati BigQuery esterna supportata da Fogli Google Progetto straniero N/A BigQuery Reader per il progetto straniero e condividi il tuo file di Fogli con l'account di servizio AutoML.

Non è necessario specificare uno schema per la tabella BigQuery. AutoML Tables deduce automaticamente lo schema per la tabella quando importi i dati.

L'URI BigQuery (specificando la posizione dei dati di addestramento) deve essere conforme al seguente formato:

bq://<project_id>.<dataset_id>.<table_id>

L'URI non può contenere altri caratteri speciali.

Per informazioni sui tipi di dati BigQuery e su come vengono mappati nelle tabelle AutoML, consulta Tabelle BigQuery. Per ulteriori informazioni sull'utilizzo di origini dati esterne di BigQuery, consulta Introduzione alle origini dati esterne.

File CSV

Requisiti dei file CSV

I file CSV possono essere archiviati in Cloud Storage o sul tuo computer locale. Devono essere conformi ai seguenti requisiti:

  • La prima riga del primo file deve essere un'intestazione e contenere i nomi delle colonne. Se la prima riga di un file successivo è uguale all'intestazione, viene a sua volta trattata come un'intestazione, in caso contrario viene trattata come dati.
  • I nomi delle colonne possono includere qualsiasi carattere alfanumerico o un trattino basso (_). Il nome della colonna non può iniziare con un trattino basso.
  • Il carattere del separatore deve essere una virgola (",").
  • Le dimensioni di ogni file non devono superare i 10 GB.

    Puoi includere più file, fino a un massimo di 100 GB.

Non è necessario specificare uno schema per i dati CSV. AutoML Tables descrive automaticamente lo schema per la tabella quando importi i dati e utilizza la riga di intestazione per i nomi delle colonne.

Per ulteriori informazioni sul formato del file CSV e sui tipi di dati, consulta la sezione File CSV.

Requisiti dei bucket Cloud Storage

Se importi i dati da Cloud Storage, questo deve essere in un bucket che soddisfa i seguenti requisiti:

Se importi i dati dal computer locale, devi avere un bucket Cloud Storage che soddisfi i seguenti requisiti:

AutoML Tables utilizza questo bucket come area temporanea prima di importare i dati.

Per importare i file CSV dal computer locale devi utilizzare Google Cloud Console.

Come vengono utilizzate le suddivisioni di dati

Quando utilizzi un set di dati per addestrare un modello, i dati vengono suddivisi in tre parti: un set di addestramento, un set di convalida e un set di test.

I set di addestramento e convalida vengono utilizzati per provare un'ampia gamma di combinazioni di opzioni di pre-elaborazione, architettura e iperparametri. Queste prove consentono di generare modelli addestrati che vengono quindi valutati per stabilire la qualità del set di convalida e per guidare l'esplorazione di ulteriori combinazioni di opzioni.

Quando un numero maggiore di prove non comporta più miglioramenti della qualità, tale versione del modello viene considerata il modello finale con il rendimento migliore. Dopodiché, Tabelle AutoML esegue l'addestramento di altri due modelli, utilizzando i parametri e l'architettura determinati nella fase di ottimizzazione parallela:

  1. Un modello addestrato con i set di addestramento e convalida.

    AutoML Tables genera le metriche di valutazione del modello in questo modello, utilizzando il set di test. Si tratta della prima volta che viene utilizzato il set di test. Questo approccio garantisce che le metriche di valutazione finale riflettano in maniera obiettiva il rendimento del modello finale addestrato in produzione.

  2. Un modello addestrato con i set di addestramento, convalida e test.

    Questo modello è quello che utilizzi per richiedere le previsioni.

Informazioni sul controllo della suddivisione dei dati

Per impostazione predefinita, AutoML Tables seleziona casualmente l'80% delle righe di dati per l'addestramento, il 10% per la convalida e il 10% per il test. Per i set di dati che non cambiano nel tempo, sono relativamente bilanciati e riflettono la distribuzione dei dati che verranno utilizzati per le previsioni in produzione, l'algoritmo di selezione casuale è generalmente sufficiente. L'obiettivo principale è assicurarsi che un set di test rappresenti in modo accurato i dati che il modello visualizzerà in produzione. Ciò garantisce che le metriche di valutazione forniscano un indicatore preciso del rendimento del modello sui dati del mondo reale.

Di seguito sono riportati alcuni casi in cui potresti voler scegliere attivamente quali righe utilizzare in quale suddivisione dati:

  • I tuoi dati sono urgenti.

    In questo caso, devi utilizzare una colonna Ora o una suddivisione manuale che comporta l'utilizzo dei dati più recenti come set di test.

  • I dati dei test includono dati di popolazioni che non verranno rappresentate in produzione.

    Ad esempio, supponiamo che tu stia addestrando un modello con dati di acquisto provenienti da diversi negozi. Tuttavia, sai che il modello verrà utilizzato principalmente per generare previsioni per negozi non presenti nei dati di addestramento. Per garantire che il modello possa essere generico per negozi non visibili, devi separare i set di dati in base ai negozi. In altre parole, il set di test dovrebbe includere solo gli store diversi dal set di valutazione, mentre il set di valutazione deve includere solo i negozi diversi dal set di addestramento.

  • I tuoi corsi non sono bilanciati.

    Se nei tuoi dati di addestramento sono presenti più classi di un'altra, potrebbe essere necessario includere manualmente più esempi di classe delle minoranze nei dati di test. AutoML Tables non esegue il campionamento stratificato, quindi il set di test potrebbe includere troppi esempi o anche zero esempi di classe di minoranza.

Puoi controllare quali righe vengono selezionate per ciascuna suddivisione utilizzando uno dei due approcci seguenti:

Se specifichi sia una colonna di suddivisione dati che una colonna Tempo, solo la colonna di suddivisione dati verrà utilizzata per suddividere i dati.

Colonna Suddivisione dati

La colonna di suddivisione dati consente di selezionare righe specifiche da utilizzare per l'addestramento, la convalida e i test. Quando crei i dati di addestramento, aggiungi una colonna che può contenere uno dei seguenti valori (sensibili alle maiuscole):

  • TRAIN
  • VALIDATE
  • TEST
  • UNASSIGNED

I valori di questa colonna devono essere una delle due combinazioni seguenti:

  • Tutti in TRAIN, VALIDATE e TEST
  • Solo TEST e UNASSIGNED

Ogni riga deve contenere un valore per questa colonna, che non può essere la stringa vuota.

Ad esempio, con tutti gli insiemi specificati:

"TRAIN","John","Doe","555-55-5555"
"TEST","Jane","Doe","444-44-4444"
"TRAIN","Roger","Rogers","123-45-6789"
"VALIDATE","Sarah","Smith","333-33-3333"

Con il solo set di test specificato:

"UNASSIGNED","John","Doe","555-55-5555"
"TEST","Jane","Doe","444-44-4444"
"UNASSIGNED","Roger","Rogers","123-45-6789"
"UNASSIGNED","Sarah","Smith","333-33-3333"

La colonna di suddivisione dati può avere un nome di colonna valido.

Se il valore della colonna di suddivisione dati è UNASSIGNED, Tabelle AutoML assegna automaticamente la riga al set di addestramento o convalida.

Dopo aver importato i dati, seleziona una suddivisione dati manuale e specifica questa colonna come suddivisione dati. (puoi anche utilizzare il campo mlUseColumnSpecId).

Colonna Colonna Ora

Puoi utilizzare la colonna Time per indicare ad AutoML Tables l'importanza del tempo per i tuoi dati, che non viene distribuita casualmente nel tempo. Quando specifichi la colonna Tempo, AutoML Tables utilizza il primo 80% delle righe per l'addestramento, il 10% successivo per la convalida e l'ultimo 10% per le righe di test.

AutoML Tables considera ogni riga come un esempio di addestramento indipendente e distribuito in modo identico; l'impostazione della colonna Tempo non modifica questa impostazione. La colonna Data/Ora viene utilizzata solo per suddividere il set di dati.

Devi includere un valore per la colonna Data/Ora di ogni riga nel set di dati. Assicurati che la colonna Data abbia un numero sufficiente di valori distinti, in modo che i set di valutazione e test non siano vuoti. In genere, è necessario che siano presenti almeno 20 valori distinti.

Il tipo di dati della colonna Ora deve essere Timestamp.

Durante la revisione dello schema, selezioni questa colonna come colonna Tempo. Nell'API, utilizza il campo timeColumnSpecId. Questa selezione ha effetto solo se non hai specificato la colonna di suddivisione dati.

Se hai una colonna correlata al tempo che non vuoi utilizzare per suddividere i dati, imposta il tipo di dati per tale colonna su Timestamp, ma non impostarla come colonna Tempo.

Informazioni sull'utilizzo dei pesi nei dati di addestramento

Per impostazione predefinita, AutoML Tables assegna lo stesso peso a ogni riga dei dati di addestramento: nessuna riga è considerata più importante ai fini dell'addestramento di un'altra.

Talvolta potresti volere che alcune righe abbiano una maggiore importanza per l'addestramento. Ad esempio, se utilizzi i dati di spesa, potresti volere che i dati associati agli utenti che spendono di più abbiano un impatto maggiore sul modello. Se qualcosa che vuoi evitare non è pertinente, puoi ponderare le righe con un risultato maggiore.

Per assegnare un peso relativo alle righe puoi aggiungere una colonna di peso al tuo set di dati. La colonna ponderazione deve essere una colonna numerica. che devi utilizzare per specificare un valore compreso tra 0 e 10000. Valori più alti indicano ad AutoML Tables che la riga è più importante durante l'addestramento del modello. Una ponderazione di 0 significa che la riga viene ignorata. Se includi una colonna di ponderazione, deve contenere un valore per ogni riga.

In seguito, quando rivedi il tuo schema, dovrai specificare questa colonna come ponderazione. Puoi anche utilizzare il campo weightColumnSpecId.

Gli schemi di ponderazione personalizzati vengono utilizzati solo per l'addestramento del modello e non influiscono sulla valutazione del modello.

Requisiti per la colonna target

La colonna target deve rispettare i seguenti requisiti:

  • Deve essere Categorica o Numerica.
  • Se è Categorical, deve avere almeno 2 e non più di 500 valori distinti.
  • Non può essere vuoto.

Passaggi successivi