Il machine learning è una disciplina potente che ha rivoluzionato numerosi settori, dalla medicina alla finanza, dalla visione artificiale all’analisi dei dati. Al cuore di questa rivoluzione ci sono i concetti fondamentali del “training set” (insieme di addestramento) e del “test set” (insieme di test). In questo articolo, esploreremo cosa sono il training set e il test set, perché sono così cruciali nel machine learning e come vengono utilizzati per valutare le prestazioni dei modelli.

Cos’è il Training Set?

Il training set è la parte del nostro dataset utilizzata per addestrare un modello di machine learning. È composto da un insieme di esempi, ognuno dei quali contiene le feature (variabili indipendenti) e il valore target (variabile dipendente) che il modello deve imparare a predire. L’obiettivo del training set è insegnare al modello le relazioni tra le feature e il target, consentendogli di imparare a fare previsioni accurate.

Cos’è il Test Set?

Il test set è una porzione separata del nostro dataset che viene utilizzata per valutare le prestazioni del modello dopo che è stato addestrato. Questo insieme di dati è completamente indipendente dal training set e contiene gli stessi tipi di esempi, ma il modello non ha mai “visto” questi dati prima. Il test set viene utilizzato per misurare l’effettiva capacità del modello di generalizzare le conoscenze acquisite durante l’addestramento.

L’Importanza della Separazione tra Training Set e Test Set

La separazione tra training set e test set è fondamentale per valutare in modo accurato le prestazioni di un modello di machine learning. Se il modello venisse valutato sugli stessi dati su cui è stato addestrato, potrebbe sembrare che il modello funzioni bene, ma questa valutazione sarebbe ingannevole. In realtà, il vero test di un modello è la sua capacità di fare previsioni su dati che non ha mai visto prima.

La Procedura di Valutazione

La procedura tipica di valutazione di un modello con training set e test set è la seguente:

  1. Divisione dei Dati: Il dataset viene suddiviso in due parti: il training set, solitamente composto dal 70% – 80% dei dati, e il test set, che costituisce il rimanente 20% – 30%.
  2. Addestramento del Modello: Il modello di machine learning viene addestrato utilizzando il training set. Il modello apprende dalle feature e dai target presenti in questo insieme di dati.
  3. Valutazione delle Prestazioni: Una volta addestrato, il modello viene testato sul test set. Le previsioni del modello vengono confrontate con i valori target reali nel test set per calcolare metriche di valutazione come l’accuratezza, l’errore quadratico medio o l’R-squared.
  4. Ottimizzazione e Raffinamento: In base alle prestazioni sul test set, è possibile apportare modifiche al modello o ai suoi iperparametri per migliorarne le prestazioni. Questo processo può essere iterato fino a ottenere un modello soddisfacente.

Esempio pratico di training set e di test set

Supponiamo di avere un dataset che contiene dati sui clienti di un negozio online e vogliamo creare un modello di machine learning per prevedere se un cliente effettuerà un acquisto o meno in base a determinate caratteristiche.

Training Set

Il training set è il sottoinsieme dei dati utilizzato per addestrare il modello. In questo caso, potrebbe includere le seguenti informazioni su una serie di clienti:

  • Età del cliente
  • Genere (maschio o femmina)
  • Numero di visite precedenti al negozio online
  • Tempo medio trascorso sul sito web
  • Prodotti visualizzati
  • Prodotti aggiunti al carrello
  • Storico degli acquisti precedenti (ad esempio, se hanno effettuato acquisti in passato o no)

Ogni riga in questo set di dati rappresenta un cliente, e una colonna rappresenta una caratteristica diversa. Inoltre, avremmo una colonna aggiuntiva che indica se il cliente ha effettuato un acquisto (1) o no (0).

Test Set

Il test set è un altro sottoinsieme dei dati che non viene utilizzato durante l’addestramento del modello. È riservato per valutare le prestazioni del modello una volta addestrato. Il test set contiene dati simili al training set, ma senza le etichette o target (cioè, senza l’informazione su se il cliente ha effettuato un acquisto o no).

Ad esempio, il test set potrebbe avere le stesse caratteristiche dei clienti (età, genere, visite precedenti, ecc.), ma senza la colonna che indica se hanno effettuato un acquisto.

Una volta addestrato il modello sul training set, lo utilizzeremo per fare previsioni sul test set. Questo ci permetterà di valutare quanto bene il modello è in grado di generalizzare e fare previsioni accurate su nuovi dati, ovvero su clienti che non facevano parte del training set.

L’obiettivo è che il modello sia in grado di apprendere dai dati nel training set e di generalizzare in modo efficace sui dati del test set e su nuovi dati che potrebbero incontrare in futuro.

Conclusioni

Il concetto di training set e test set è cruciale nel machine learning. Questa separazione ci consente di addestrare modelli che possono generalizzare correttamente a nuovi dati, rendendo le previsioni affidabili e utili in una vasta gamma di applicazioni. Assicurarsi di avere un set di test indipendente e ben progettato è essenziale per valutare le prestazioni dei modelli in modo accurato e prendere decisioni informate sulla loro efficacia nell’affrontare problemi del mondo reale.