Set di dati: caratteristiche dei dati

Un set di dati è una raccolta di esempi.

Molti set di dati memorizzano i dati in tabelle (griglie), ad esempio come valori separati da virgole (CSV) o direttamente da fogli di lavoro o tabelle di database. Le tabelle sono un formato di input intuitivo per i modelli di machine learning. Puoi immaginare ogni riga della tabella come un esempio e ogni colonna come una potenziale funzionalità o etichetta. Detto questo, i set di dati possono essere derivati anche da altri formati, tra cui file di log e buffer di protocollo.

Indipendentemente dal formato, la qualità del modello ML dipende dai dati su cui viene addestrato. Questa sezione esamina le caratteristiche principali dei dati.

Tipi di dati

Un set di dati può contenere molti tipi di dati, inclusi, a titolo esemplificativo:

  • dati numerici, trattati in un'unità distinta
  • dati categorici, trattati in un'unità distinta
  • linguaggio umano, incluse singole parole e frasi, fino a documenti di testo interi
  • multimediali (ad esempio immagini, video e file audio)
  • Output di altri sistemi di ML
  • vettori di embedding, che vengono coperti in un'unità successiva

Quantità di dati

Come regola empirica approssimativa, il modello deve essere addestrato su almeno un ordine di grandezza (o due) di esempi in più rispetto ai parametri addestrabili. Tuttavia, i modelli di buona qualità vengono generalmente addestrati su un numero notevolmente superiore di esempi.

I modelli addestrati su set di dati di grandi dimensioni con poche caratteristiche in genere superano i modelli addestrati su set di dati di piccole dimensioni con molte funzionalità. Google ha sempre avuto ottimi risultati nell'addestramento di modelli semplici su set di dati di grandi dimensioni.

Set di dati diversi per programmi di machine learning diversi possono richiedere quantità molto diverse di esempi per creare un modello utile. Per alcuni problemi relativamente semplici, potrebbero essere sufficienti alcune dozzine di esempi. Per altri problemi, un trilione di esempi potrebbe non essere sufficiente.

È possibile ottenere buoni risultati da un piccolo set di dati se stai adattando un modello esistente già addestrato su grandi quantità di dati dello stesso schema.

Qualità e affidabilità dei dati

Tutti preferiscono la qualità elevata a quella bassa, ma la qualità è un concetto così vago che potrebbe essere definito in molti modi diversi. Questo corso definisce la qualità in modo pragmatico:

Un set di dati di alta qualità aiuta il modello a raggiungere il suo obiettivo. Un set di dati di bassa qualità impedisce al modello di raggiungere il suo obiettivo.

Un set di dati di alta qualità è in genere anche affidabile. L'affidabilità si riferisce al grado in cui puoi fidare dei tuoi dati. Un modello addestrato su un set di dati affidabile ha maggiori probabilità di fornire predizioni utili rispetto a un modello addestrato su dati inaffidabili.

Per misurare l'affidabilità, devi determinare:

  • Quanto sono comuni gli errori delle etichette? Ad esempio, se i tuoi dati vengono etichettati da persone, con quale frequenza i tuoi valutatori hanno commesso errori?
  • Le tue funzionalità sono con molto rumore? In altre parole, i valori nelle caratteristiche contengono errori? Sii realistico: non puoi eliminare completamente il rumore dal set di dati. Un certo livello di rumore è normale; ad esempio, le misurazioni GPS di qualsiasi località fluttuano sempre un po' da una settimana all'altra.
  • I dati sono filtrati correttamente per il tuo problema? Ad esempio, il tuo set di dati deve includere le query di ricerca dei bot? Se stai creando un sistema di rilevamento dello spam, probabilmente la risposta è sì. Tuttavia, se stai cercando di migliorare i risultati di ricerca per le persone, la risposta è no.

Di seguito sono riportate le cause comuni di dati inaffidabili nei set di dati:

  • Valori omessi. Ad esempio, una persona ha dimenticato di inserire un valore per l'età di una casa.
  • Esempi duplicati. Ad esempio, un server ha caricato per errore le stesse voci di log due volte.
  • Valori delle funzionalità errati. Ad esempio, qualcuno ha digitato un numero in più o un termometro è stato lasciato al sole.
  • Etichette errate. Ad esempio, una persona ha erroneamente etichettato un'immagine di un quercia come acero.
  • Sezioni di dati non valide. Ad esempio, una determinata funzionalità è molto affidabile, tranne per quel giorno in cui la rete ha continuato ad arrestarsi in modo anomalo.

Ti consigliamo di utilizzare l'automazione per segnalare i dati inaffidabili. Ad esempio, i test di unità che definiscono o si basano su uno schema di dati formali esterno possono segnalare i valori che non rientrano in un intervallo definito.

Esempi completi ed esempi incompleti

In un mondo perfetto, ogni esempio è completo, ovvero contiene un valore per ogni funzionalità.

Figura 1. Un esempio contenente i valori per tutte e cinque le sue
       funzionalità.
Figura 1. Un esempio completo.

 

Purtroppo, gli esempi reali sono spesso incompleti, il che significa che manca almeno un valore della funzionalità.

Figura 2. Un esempio contenente i valori di quattro delle sue cinque
            funzionalità. Una funzionalità è contrassegnata come mancante.
Figura 2. Un esempio incompleto.

 

Non addestrare un modello su esempi incompleti. Correggi o elimina gli esempi incompleti eseguendo una delle seguenti operazioni:

  • Elimina gli esempi incompleti.
  • Impute dei valori mancanti, ovvero conversione dell'esempio incompleto in un esempio completo fornendo supposizioni ben motivate per i valori mancanti.
Figura 3. Un set di dati contenente tre esempi, di cui due sono
            esempi incompleti. Qualcuno ha eliminato questi due esempi incomplete
            dal set di dati.
Figura 3. Eliminazione di esempi incompleti dal set di dati.

 

Figura 4. Un set di dati contenente tre esempi, di cui due erano esempi incompleti contenenti dati mancanti. Qualche entità (una persona o un software di imputazione) ha imputato valori che hanno sostituito i dati mancanti.
Figura 4. Attribuzione di valori mancanti per esempi incompleti.

 

Se il set di dati contiene esempi completi sufficienti per addestrare un modello utile, valuta la possibilità di eliminare gli esempi incompleti. Analogamente, se a una sola funzionalità manca una quantità significativa di dati e probabilmente non può essere molto utile per il modello, valuta la possibilità di eliminarla dagli input del modello e di verificare la quantità di qualità persa con la sua rimozione. Se il modello funziona altrettanto bene o quasi senza, è fantastico. Al contrario, se non hai esempi completi sufficienti per addestrare un modello utile, potresti prendere in considerazione l'imputation dei valori mancanti.

È possibile eliminare esempi inutili o ridondanti, ma non quelli importanti. Purtroppo, può essere difficile distinguere tra esempi utili e inutili. Se non riesci a decidere se eliminare o eseguire l'imputation, valuta la possibilità di creare due set di dati: uno formato dall'eliminazione di esempi incompleti e l'altro dall'imputation. Poi, determina quale set di dati addestra il modello migliore.


Un algoritmo comune è utilizzare la media o la mediana come valore imputed. Di conseguenza, quando rappresenti un attributo numerico con punteggi Z, il valore imputato è in genere 0 (poiché 0 è in genere il punteggio Z medio).

Esercizio: verifica di aver compreso

Di seguito sono riportate due colonne di un set di dati ordinate in base a Timestamp.

Timestamp Temperatura
8 giugno 2023 09:00 12
8 giugno 2023, ore 10:00 18
8 giugno 2023, ore 11:00 mancante
8 giugno 2023 12:00 24
8 giugno 2023 13:00 38

Quale dei seguenti sarebbe un valore ragionevole da assegnare al valore mancante di Temperatura?

23
È probabile. 23 è la media dei valori adiacenti (12, 18, 24 e 38). Tuttavia, non vediamo il resto del set di dati, quindi è possibile che 23 sia un valore anomalo per le 11:00 in altri giorni.
31
Improbabile. La parte limitata del set di dati che possiamo vedere suggerisce che 31 è un valore troppo alto per la Temperatura delle 11:00. Tuttavia, non possiamo esserne certi senza basare l'attribuzione su un numero maggiore di esempi.
51
Molto improbabile. 51 è molto più alto di qualsiasi valore visualizzato (e, di conseguenza, molto più alto della media).