Un dataset è un insieme di dati organizzati che costituiscono il fondamento del machine learning e dell’analisi dei dati. I dataset sono essenziali per l'allenamento e la valutazione dei modelli di machine learning, poiché contengono le informazioni di input (caratteristiche) e le etichette di output (target) necessarie per addestrare un modello e testarne le prestazioni.
I dataset sono presenti in vari formati, come tabelle, file CSV, database, immagini, testo e altro, a seconda del tipo di problema che si sta affrontando. Possono variare notevolmente in termini di dimensioni, con dataset piccoli che contengono solo alcune centinaia di esempi e dataset enormi con milioni o addirittura miliardi di punti dati. Ecco una panoramica dettagliata sui dataset nel machine learning.
Componenti
Un dataset è generalmente suddiviso in due componenti principali:
- Caratteristiche (Features): Questa parte del dataset contiene le informazioni di input che il modello deve analizzare e utilizzare per fare previsioni o compiere decisioni. Le caratteristiche possono essere numeriche (ad esempio, altezza, peso), categoriche (ad esempio, genere, colore), immagini, testo o qualsiasi altra forma di dati.
- Etichette (Labels o Target): Le etichette rappresentano l'output o l'obiettivo desiderato. In altre parole, sono le risposte corrette o le aspettative a cui il modello mira. Ad esempio, se stiamo sviluppando un modello per il riconoscimento di immagini di gatti e cani, le etichette saranno “gatto” o “cane” associate a ciascuna immagine.
Tipi di Dataset
I dataset possono essere classificati in base a diversi criteri:
Esistenza di label
Questa categoria richiama esattamente le tipologie di machine learning.
- Supervisionato: In un dataset supervisionato, sia le caratteristiche che le etichette sono presenti. Questo tipo di dataset è utilizzato per l’allenamento e la valutazione dei modelli di machine learning, poiché contiene esempi con cui il modello può apprendere le relazioni tra le caratteristiche e le etichette.
- Non Supervisionato: In un dataset non supervisionato, solo le caratteristiche sono presenti, e il modello deve scoprire autonomamente modelli o strutture nei dati. Questo è spesso utilizzato per il clustering e la riduzione della dimensionalità.
- Semisupervisionato: Questo tipo di dataset è una combinazione di supervisionato e non supervisionato, in cui alcune etichette sono presenti, ma non tutte. È utile quando non è pratico etichettare manualmente tutti i dati.
- Reinforcement Learning: In un contesto di apprendimento per rinforzo, il dataset è costituito da esperienze dell'agente e dalle ricompense corrispondenti. È utilizzato per addestrare agenti di apprendimento per rinforzo.
Struttura
Dataset Strutturati
- Dati organizzati: In un dataset strutturato, i dati sono organizzati in una tabella o in una forma simile, con righe e colonne chiaramente definite. Ogni colonna rappresenta un attributo o una variabile specifica, mentre ogni riga rappresenta un’istanza o un record dei dati.
- Schema ben definito: I dataset strutturati seguono uno schema di dati ben definito, in cui il tipo di dati, la lunghezza e il formato di ogni attributo sono noti in anticipo. Questo facilita la gestione, la query e l’analisi dei dati.
Esempi di dataset strutturati includono tabelle di database relazionali, fogli di calcolo Excel, file CSV (Comma-Separated Values) e molti dati aziendali, finanziari e scientifici.
Dataset Non Strutturati
- Dati non organizzati: In un dataset non strutturato, i dati non seguono una struttura tabellare e possono essere presentati in vari formati, come testo libero, immagini, audio, video o file binari. Questi dati possono essere disorganizzati e non hanno una chiara separazione tra attributi e record.
- Schema flessibile o assente: I dataset non strutturati possono mancare di uno schema dati predefinito o seguire uno schema molto flessibile, il che li rende più complessi da gestire e analizzare rispetto ai dataset strutturati.
Esempi di dataset non strutturati includono testi in linguaggio naturale, foto, video, tweet sui social media, registrazioni audio, e-mail e altro contenuto multimediale.
Pandas
Pandas è la libreria fondamentale per Python per l’analisi di dati e quindi l’esplorazione dei dataset.
Dataset famosi
Esistono vari siti dove poter scaricare dei dataset per i propri progetti.
MNIST
Il dataset MNIST (Modified National Institute of Standards and Technology) è un famoso set di dati utilizzato comunemente per l’allenamento e la valutazione di algoritmi di riconoscimento di cifre scritte a mano. Contiene un insieme di immagini in scala di grigi di dimensioni 28x28 pixel, ciascuna rappresentante un singolo cifra da 0 a 9. Il dataset è composto da 60.000 immagini di allenamento e 10.000 immagini di test.
Ecco un esempio di come puoi utilizzare il dataset MNIST in Python utilizzando la libreria TensorFlow e Keras:
Questo esempio utilizza una semplice rete neurale con un singolo strato nascosto per classificare le cifre del dataset MNIST. La rete viene allenata per 5 epoche, e alla fine viene valutata sulla base del set di test. Infine, viene mostrato un esempio di predizione su una singola immagine di test.