I dati non elaborati devono essere sottoposti a feature engineering (trasformati). Quando trasformare i dati? In linea di massima, puoi eseguire la creazione di funzionalità in uno dei seguenti due periodi:
- Prima di addestrare il modello.
- Durante l'addestramento del modello.
Trasformazione dei dati prima dell'addestramento
In questo approccio, segui due passaggi:
- Scrivi codice o utilizza strumenti specializzati per trasformare i dati non elaborati.
- Archivia i dati trasformati in un luogo in cui il modello possa importarli, ad esempio su disco.
Vantaggi
- Il sistema trasforma i dati non elaborati una sola volta.
- Il sistema può analizzare l'intero set di dati per determinare la migliore strategia di trasformazione.
Svantaggi
- Devi ricreare le trasformazioni al momento della previsione. Fai attenzione al disallineamento addestramento/erogazione.
Lo scostamento tra addestramento e pubblicazione è più pericoloso quando il sistema esegue l'inferenza dinamica (online). In un sistema che utilizza l'inferenza dinamica, il software che trasforma il set di dati non elaborato in genere è diverso da quello che genera le previsioni, il che può causare un disallineamento addestramento/produzione. I sistemi che utilizzano l'inferenza statica (offline), invece, a volte possono utilizzare lo stesso software.
Trasformazione dei dati durante l'addestramento
In questo approccio, la trasformazione fa parte del codice del modello. Il modello importa i dati non elaborati e li trasforma.
Vantaggi
- Puoi comunque utilizzare gli stessi file di dati non elaborati se modifichi le trasformazioni.
- Avrai le stesse trasformazioni al momento dell'addestramento e della previsione.
Svantaggi
- Le trasformazioni complicate possono aumentare la latenza del modello.
- Le trasformazioni vengono eseguite per ogni batch.
La trasformazione dei dati per batch può essere complicata. Ad esempio, supponiamo che tu voglia utilizzare la normalizzazione del punteggio Z per trasformare i dati numerici non elaborati. La normalizzazione del punteggio z richiede la media e la deviazione standard della caratteristica. Tuttavia, le trasformazioni per batch ti consentono di accedere solo a un batch di dati, non all'intero set di dati. Pertanto, se i batch sono molto diversi, un valore Z di, ad esempio, -2,5 in un batch non avrà lo stesso significato di -2,5 in un altro batch. Come soluzione alternativa, il sistema può precompilare la media e la deviazione standard in tutto il set di dati e poi utilizzarle come costanti nel modello.