Campionamento e suddivisione dei dati

Introduzione al campionamento

Spesso è difficile raccogliere dati sufficienti per un progetto di machine learning. A volte, però, i dati sono troppi e devi selezionare un sottoinsieme di esempi per l'addestramento.

In che modo selezioni il sottoinsieme? Prendiamo ad esempio la Ricerca Google. A quale livello di granularità dovresti campionare le sue enormi quantità di dati? Utilizzeresti le query casuali? Sessioni casuali? Utenti casuali?

In definitiva, la risposta dipende dal problema: cosa vogliamo prevedere e quali funzionalità vogliamo ottenere?

  • Per utilizzare la funzionalità query precedente, devi campionare a livello di sessione, poiché le sessioni contengono una sequenza di query.
  • Per utilizzare la funzionalità Comportamento degli utenti dei giorni precedenti, devi eseguire un campionamento a livello di utente.

Filtri per PII (informazioni che consentono l'identificazione personale)

Se i tuoi dati includono PII (informazioni che consentono l'identificazione personale), potrebbe essere necessario filtrarli dai tuoi dati. Un criterio potrebbe richiedere la rimozione delle funzionalità infrequenti, ad esempio.

Questo filtro altera la distribuzione. Perderai le informazioni nella coda (la parte della distribuzione con valori molto bassi, ben lontana dalla media).

Questo filtro è utile perché le funzionalità molto rare sono difficili da imparare. Tuttavia, è importante comprendere che il tuo set di dati avrà bias nei confronti delle query head. Al momento della pubblicazione, puoi aspettarti che peggiori per la pubblicazione di esempi dalla coda, poiché questi sono gli esempi filtrati dai tuoi dati di addestramento. Sebbene non sia possibile evitare questo disallineamento, tienilo presente durante l'analisi.