Questo documento descrive come Feature Transform Engine esegue l'ingegneria delle funzionalità. Il motore di trasformazione delle funzionalità esegue la selezione e le trasformazioni delle funzionalità. Se la selezione delle funzionalità è attivata, il motore di trasformazione delle funzionalità crea un insieme classificato di funzionalità importanti. Se le trasformazioni delle funzionalità sono attivate, il motore di trasformazione delle funzionalità elabora le funzionalità per garantire la coerenza dell'input per l'addestramento e il servizio del modello. Feature Transform Engine può essere utilizzato da solo o insieme a uno dei flussi di lavoro di addestramento tabulari. Supporta sia i framework TensorFlow che quelli non TensorFlow.
Input
Devi fornire i seguenti input a Feature Transform Engine:
- Dati non elaborati (set di dati BigQuery o CSV).
- Configurazione della suddivisione dei dati.
- Configurazione della selezione delle funzionalità.
- Configurazione della trasformazione delle funzionalità.
Output
Il motore di trasformazione delle funzionalità genera i seguenti output:
dataset_stats
: statistiche che descrivono il set di dati non elaborato. Ad esempio,dataset_stats
restituisce il numero di righe nel set di dati.feature_importance
: il punteggio di importanza delle funzionalità. Questo output viene generato se è attivata la selezione delle funzionalità.materialized_data
, ovvero la versione trasformata di un gruppo di suddivisione dei dati contenente la suddivisione per l'addestramento, la suddivisione per la valutazione e la suddivisione per il test.training_schema
: schema dei dati di addestramento nella specifica OpenAPI, che descrive i tipi di dati di addestramento.instance_schema
: schema dell'istanza nella specifica OpenAPI, che descrive i tipi di dati delle previsioni.transform_output
: i metadati della trasformazione. Se utilizzi TensorFlow per la trasformazione, i metadati includono il grafico TensorFlow.
Passaggi di elaborazione
Il motore di trasformazione delle funzionalità esegue i seguenti passaggi:
- Genera suddivisioni del set di dati per l'addestramento, la valutazione e i test.
- Genera statistiche del set di dati di input
dataset_stats
che descrivono il set di dati non elaborato. - Esegui la selezione delle funzionalità.
- Elabora la configurazione della trasformazione utilizzando le statistiche del set di dati, risolvendo i parametri di trasformazione automatica in parametri di trasformazione manuale.
- Trasforma le funzionalità non elaborate in funzionalità create. Vengono eseguite trasformazioni diverse per tipi diversi di elementi.
Selezione delle caratteristiche
Lo scopo principale della selezione delle funzionalità è ridurre il numero di funzionalità utilizzate nel modello. L'insieme di funzionalità ridotto dovrebbe acquisire la maggior parte delle informazioni della scheda in modo più compatto. La selezione delle funzionalità consente di ridurre il costo di addestramento e pubblicazione dei modelli senza influire in modo significativo sulla qualità del modello.
Se la selezione delle funzionalità è attivata, il motore di trasformazione delle funzionalità assegna un punteggio di importanza a ogni funzionalità. Puoi scegliere di stampare i punteggi di importanza dell'intero insieme di funzionalità o di un sottoinsieme ridotto delle funzionalità più importanti.
Vertex AI offre i seguenti algoritmi di selezione delle caratteristiche:
- Informazioni reciproche aggiustate (AMI)
- Massimizzazione dell'informazione mutua condizionale (CMIM)
- Massimizzazione dell'informazione reciproca congiunta (JMIM)
- Massima pertinenza, ridondanza minima (MRMR)
Tieni presente che non esiste un algoritmo di selezione delle funzionalità che funzioni sempre al meglio su tutti i set di dati e per tutti gli scopi. Se possibile, esegui tutti gli algoritmi e combina i risultati.
Informazioni mutuali aggiustate (AMI)
L'AMI è un aggiustamento del punteggio di informazione reciproca (MI) per tenere conto del caso. Tiene conto del fatto che l'MI è generalmente più elevato per due raggruppamenti con un numero maggiore di cluster, indipendentemente dal fatto che siano effettivamente condivise più informazioni.
AMI è efficace nel rilevare la pertinenza degli elementi e dell'etichetta, ma non è sensibile alla ridondanza degli elementi. L'AMI deve essere considerata se sono presenti molte funzionalità (ad esempio più di 2000) e non c'è molta ridondanza delle funzionalità. È più veloce degli altri algoritmi descritti qui, ma potrebbe rilevare funzionalità ridondanti.
Massimizzazione dell'informazione mutua condizionale (CMIM)
CMIM è un algoritmo avido che sceglie le funzionalità in modo iterativo in base all'informazione mutua condizionale delle funzionalità candidate rispetto a quelle selezionate. In ogni iterazione, seleziona l'attributo che massimizza l'informazione mutua minima con l'etichetta che non è ancora stata acquisita dagli attributi selezionati.
Il CMIM è efficace nel gestire la ridondanza delle funzionalità e funziona bene nei casi tipici.
Massimizzazione dell'informazione reciproca congiunta (JMIM)
JMIM è un algoritmo avido simile a CMIM. JMIM seleziona l'attributo che massimizza l'informazione mutua congiunta della nuova etichetta e delle funzionalità predefinite con l'etichetta, mentre CMIM prende maggiormente in considerazione la ridondanza.
JMIM è un algoritmo di selezione delle caratteristiche di alta qualità.
Massima pertinenza, ridondanza minima (MRMR)
MRMR è un algoritmo avido che funziona in modo iterativo. È simile al CMIM. Ogni Iterazione sceglie l'attributo che massimizza la pertinenza rispetto all'etichetta riducendo al minimo la ridondanza a coppie rispetto agli attributi selezionati nelle Iterazioni precedenti.
MRMR è un algoritmo di selezione delle caratteristiche di alta qualità.
Passaggi successivi
Dopo aver eseguito l'feature engineering, puoi addestrare un modello per la classificazione o la regressione:
- Addestrare un modello con AutoML end-to-end.
- Addestrare un modello con TabNet.
- Addestra un modello con Wide & Deep.