Introduzione alla trasformazione dei dati

Ingegneria delle caratteristiche è il processo di determinazione delle caratteristiche che potrebbero essere utili per addestrare un modello e quindi per creare quelle caratteristiche trasformando i dati non elaborati trovati in file di log e in altre origini. In questa sezione, ci concentriamo su quando e come trasformare i dati numerici e categorici e sui relativi compromessi.

Motivi della trasformazione dei dati

Trasformiamo le funzionalità principalmente per i seguenti motivi:

  1. Trasformazioni obbligatorie per la compatibilità dei dati. Ecco alcuni esempi:

    • Conversione delle funzionalità non numeriche in numeri. Non puoi eseguire la moltiplicazione a matrice su una stringa, quindi dobbiamo convertire la stringa in una rappresentazione numerica.
    • Ridimensionamento degli input a una dimensione fissa. I modelli lineari e le reti neurali con inoltro di feed hanno un numero fisso di nodi di input, quindi i tuoi dati di input devono sempre avere le stesse dimensioni. Ad esempio, i modelli di immagine devono rimodellare le immagini nel loro set di dati in una dimensione fissa.
  2. Trasformazioni di qualità facoltative che possono aiutare il modello a ottenere un rendimento migliore. Ecco alcuni esempi:

    • Tokenizzazione o uso inferiore di funzionalità di testo.
    • Funzionalità numeriche normalizzate (la maggior parte dei modelli ha un rendimento migliore in un secondo momento).
    • Consentono ai modelli lineari di introdurre non linearità nello spazio delle funzionalità.

Rigorosamente, le trasformazioni di qualità non sono necessarie e il modello potrebbe comunque essere eseguito senza queste modifiche. Tuttavia, l'utilizzo di queste tecniche può consentire al modello di fornire risultati migliori.

Dove trasformarsi?

Puoi applicare le trasformazioni durante la generazione dei dati su disco o all'interno del modello.

Trasformazione prima dell'addestramento

Questo approccio si basa sulla trasformazione prima dell'addestramento. Questo codice risiede separatamente dal tuo modello di machine learning.

Vantaggi

  • Il calcolo viene eseguito una sola volta.
  • Il calcolo può prendere in considerazione l'intero set di dati per determinare la trasformazione.

Svantaggi

  • Le trasformazioni devono essere riprodotte al momento della previsione. Attenzione al disallineamento!
  • Eventuali modifiche alla trasformazione richiedono una nuova generazione di dati, con conseguente iterazione più lenta.

L'asimmetria è più pericolosa per i casi che riguardano la pubblicazione online. Nella pubblicazione offline, potresti essere in grado di riutilizzare il codice che genera i tuoi dati di addestramento. Nella pubblicazione online, il codice che crea il set di dati e il codice utilizzato per gestire il traffico in tempo reale sono quasi necessariamente diversi, il che rende più facile introdurre un disallineamento.

Trasformazione all'interno del modello

In questo approccio, la trasformazione fa parte del codice del modello. Il modello acquisisce i dati non trasformati come input e li trasforma all'interno del modello.

Vantaggi

  • Iterazioni facili. Se cambi le trasformazioni, puoi comunque usare gli stessi file di dati.
  • Ti vengono garantite le stesse trasformazioni al momento dell'addestramento e della previsione.

Svantaggi

  • Le trasformazioni costose possono aumentare la latenza del modello.
  • Le trasformazioni sono per batch.

Esistono molte considerazioni per la trasformazione per gruppo. Supponiamo che tu voglia normalizzare una caratteristica in base al suo valore medio, ovvero modificare i valori delle caratteristiche in modo che abbiano una media 0 e una deviazione standard 1. Durante la trasformazione all'interno del modello, questa normalizzazione avrà accesso a un solo batch di dati, non all'intero set di dati. Puoi normalizzare il valore medio all'interno di un batch (pericoloso se i batch sono altamente varianti) o precalcolare la media e correggerlo come costante nel modello. Esploreremo la normalizzazione nella prossima sezione.

Esplora, pulisci e visualizza i tuoi dati

Esplora ed esegui la pulizia dei tuoi dati prima di trasformarli. Potresti aver eseguito alcune delle seguenti attività durante la raccolta e la creazione del tuo set di dati:

  • Esaminare diverse righe di dati.
  • Controllare le statistiche di base.
  • Correggi le voci numeriche mancanti.

Visualizza spesso i tuoi dati. I grafici possono aiutarti a trovare anomalie o pattern non chiari rispetto alle statistiche numeriche. Pertanto, prima di analizzare i dati in modo approfondito, dai un'occhiata ai dati in forma grafica, tramite grafici a dispersione o istogrammi. Visualizza i grafici non solo all'inizio della pipeline, ma anche durante la trasformazione. Le visualizzazioni ti aiuteranno a verificare continuamente le tue ipotesi e a vedere gli effetti di eventuali modifiche importanti.