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à.
Purtroppo, gli esempi reali sono spesso incompleti, il che significa che manca almeno un valore della funzionalità.
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.
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?