Visualizzazione casuale

Considerazioni pratiche

Rendi riproducibile la pipeline di generazione dei dati. Supponiamo che tu voglia aggiungere una funzionalità per vedere come influisce sulla qualità del modello. Per un esperimento equo, i tuoi set di dati devono essere identici, tranne per questa nuova funzionalità. Se le esecuzioni di generazione dati non sono riproducibili, non puoi creare questi set di dati.

In questo senso, assicurati che ogni randomizzazione nella generazione dei dati possa essere determinata deterministica:

  • Distribuzione dei generatori di numeri casuali (RNG). Seeding assicura che il RNG restituisca gli stessi valori nello stesso ordine ogni volta che lo esegui, ricreando il tuo set di dati.
  • Utilizza chiavi hash invarianti. L'hashing è un modo comune per suddividere o campionare i dati. Puoi eseguire l'hashing di ogni esempio e utilizzare il numero intero risultante per decidere in quale suddivisione posizionarlo. Gli input per la funzione hash non devono essere modificati ogni volta che esegui il programma per la generazione di dati. Non utilizzare l'ora corrente o un numero casuale nell'hash, ad esempio se vuoi ricreare gli hash on demand.

Gli approcci precedenti si applicano sia al campionamento che alla suddivisione dei dati.

Considerazioni per l'hashing

Immaginate di nuovo di raccogliere le query di ricerca e di utilizzare l'hashing per includere o escludere le query. Se la chiave hash ha utilizzato solo la query, nell'intervallo di più giorni di dati, la includerai sempre o la escluderai sempre. L'inclusione o l'esclusione di una query è sempre un errore perché:

  • Il set di addestramento vedrà un insieme di query meno diversificato.
  • I set di valutazione saranno artificialmente difficili, perché non si sovrapporteranno ai dati di addestramento. In realtà, al momento della pubblicazione, avrai visto una parte del traffico in tempo reale nei dati di addestramento, quindi la tua valutazione dovrebbe riflettere ciò.

Puoi invece eseguire l'hashing alla query + data, il che si traduce in un hashing diverso ogni giorno.

 

Visualizzazione animata che mostra in che modo l'hashing solo nella query fa sì che i dati vengano inviati nello stesso bucket ogni giorno, ma l'hashing nella query più il tempo della query fa sì che i dati vengano spostati in bucket diversi ogni giorno. I tre bucket sono Formazione, Valutazione e Ignorato.