Ingegneria delle feature (Feature Engineering)
Aumenta l'accuratezza del machine learning con l'feature engineering avanzato. Scopri le tecniche per creare, trasformare e selezionare feature di impatto.
L'ingegneria delle caratteristiche è l'arte e la scienza di sfruttare la conoscenza del dominio per trasformare i dati grezzi in attributi informativi che rappresentano meglio il problema di fondo per i modelli predittivi.
attributi informativi che rappresentano il problema sottostante in modo più efficace per i modelli predittivi. Nell'ambito più ampio dell'apprendimento
apprendimento automatico (ML), i dati grezzi sono raramente pronti per essere
per l'elaborazione immediata; spesso contengono rumore, valori mancanti o formati che gli algoritmi non possono interpretare direttamente.
direttamente. Creando nuove caratteristiche o modificando quelle esistenti, gli ingegneri possono migliorare significativamente l'accuratezza e le prestazioni dei modelli.
l'accuratezza e le prestazioni del modello, ottenendo spesso risultati migliori
risultati migliori rispetto al semplice passaggio a un algoritmo più complesso. Questo processo colma il divario tra le informazioni grezze raccolte e la rappresentazione matematica necessaria per
raccolte e la rappresentazione matematica necessaria per
modellizzazione predittiva.
Tecniche fondamentali nell'ingegneria delle caratteristiche
Il processo prevede in genere diverse fasi iterative, volte a individuare i segnali più rilevanti nei dati. Mentre
strumenti come la libreriaPandas di Python facilitano queste manipolazioni, la strategia si basa molto sulla
strategia si basa molto sulla comprensione dello specifico dominio del problema.
-
Imputazione e pulizia: Prima di creare nuove caratteristiche, i dati devono essere stabilizzati. Questo comporta
gestire i valori mancanti attraverso
tecniche di pulizia dei dati, come il riempimento degli spazi mancanti con
con la media, la mediana o un valore previsto, un processo noto come
imputazione.
-
Trasformazione e scalatura: Molti algoritmi hanno scarse prestazioni quando le variabili di ingresso hanno
scale diverse. Tecniche come
la normalizzazione (scalare i dati in un intervallo compreso tra 0 e 1)
o la standardizzazione (centratura dei dati intorno alla media) assicurano che nessuna singola caratteristica domini il processo di apprendimento
solo a causa della sua grandezza.
-
Codifica di dati categorici: I modelli richiedono generalmente input numerici. L'ingegnerizzazione delle caratteristiche comporta
la conversione di etichette di testo o di
dati categorici in
numeri. I metodi più comuni includono la codifica delle etichette e
la codifica a un punto, che crea colonne binarie per ogni categoria.
-
Costruzione delle caratteristiche: È l'aspetto creativo in cui vengono ricavate nuove variabili. Per esempio, in
un set di dati immobiliari, invece di usare separatamente "lunghezza" e "larghezza", un ingegnere potrebbe moltiplicarle per creare una caratteristica di "metratura", che si correla più fortemente con il prezzo.
un ingegnere potrebbe moltiplicarle per creare una caratteristica "metratura", che ha una correlazione più forte con il prezzo.
-
Selezione delle caratteristiche: L'aggiunta di troppe caratteristiche può portare
overfitting, in cui il modello memorizza il rumore.
Tecniche come l'eliminazione ricorsiva delle caratteristiche o la riduzione della
riduzione della dimensionalità aiutano a identificare
e mantenere solo gli attributi di maggiore impatto.
Ingegneria delle caratteristiche nella visione artificiale
Nel campo della computer vision (CV), l'ingegnerizzazione delle feature
spesso l'ingegnerizzazione delle feature assume la forma di
aumento dei dati. Mentre i moderni modelli di deep learning
apprendimento automatico di gerarchie e modelli, possiamo "ingegnerizzare" i dati di addestramento per renderli più robusti simulando condizioni ambientali diverse.
simulando diverse condizioni ambientali. Modificando
configurazioni di sintonizzazione degli iperparametri per
geometriche permette al modello di apprendere caratteristiche invarianti rispetto all'orientamento o alla prospettiva.
Il seguente frammento di codice dimostra come applicare l'augmentation-based feature engineering durante l'addestramento di una classe di dati
YOLO11 modello. Modificando argomenti come
degrees e shearsintetizziamo nuove variazioni di caratteristiche a partire dal set di dati originale.
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Train with augmentation hyperparameters acting as on-the-fly feature engineering
# 'degrees' rotates images +/- 10 deg, 'shear' changes perspective
model.train(data="coco8.yaml", epochs=3, degrees=10.0, shear=2.5)
Applicazioni nel mondo reale
Il valore dell'ingegneria delle caratteristiche si comprende meglio attraverso la sua applicazione pratica in diversi settori.
-
Valutazione del rischio finanziario: Nel settore finanziario, i registri grezzi delle transazioni non sono sufficienti per
valutare il merito creditizio. Gli esperti utilizzano
l'intelligenza artificiale in finanza
per costruire indici come il "rapporto debito/reddito" o il "tasso di utilizzo del credito". Queste caratteristiche
forniscono un segnale diretto della salute finanziaria, consentendo una più precisa
di rischio di credito più preciso rispetto all'utilizzo
stipendio o i numeri del debito in modo isolato.
-
La manutenzione predittiva nella produzione: In
AI nel settore manifatturiero, i sensori raccolgono
dati ad alta frequenza su vibrazioni e temperatura. L'alimentazione delle letture grezze dei sensori direttamente in un modello è spesso rumorosa
e inefficace. Invece, gli ingegneri utilizzano
analisi delle serie temporali per creare caratteristiche come
"media mobile della temperatura nell'ultima ora" o "deviazione standard delle vibrazioni". Queste caratteristiche
Queste caratteristiche aggregate catturano le tendenze e le anomalie indicative dell'usura della macchina molto meglio dei valori istantanei.
valori istantanei.
Distinzione dai termini correlati
È utile distinguere l'ingegneria delle caratteristiche da concetti simili per evitare confusione nelle discussioni sui flussi di lavoro.
-
Feature Engineering vs. Feature Extraction: Anche se spesso vengono usati in modo intercambiabile, c'è una sfumatura.
Il Feature Engineering implica un processo manuale e creativo di costruzione di nuovi input basati sulla conoscenza del dominio.
conoscenza del dominio. Al contrario,
l 'estrazione delle caratteristiche si riferisce spesso a metodi
metodi automatizzati o a proiezioni matematiche (come la PCA) che distillano i dati ad alta dimensionalità in una rappresentazione densa. Nell'apprendimento
apprendimento profondo (DL), gli strati delle
reti neurali convoluzionali (CNN)
eseguono l'estrazione automatica delle caratteristiche apprendendo i filtri per i bordi e le texture.
-
Ingegneria delle caratteristiche vs. Embeddings: Nella moderna
elaborazione del linguaggio naturale (NLP), la creazione manuale di caratteristiche (come il conteggio della frequenza delle parole) è stata ampiamente sostituita dagli embeddings.
embeddings. Gli embeddings sono rappresentazioni vettoriali
rappresentazioni vettoriali dense apprese dal modello stesso per catturare il significato semantico. Gli embeddings sono una forma di caratteristiche,
sono apprese tramite
processi di apprendimento automatico (AutoML)
processi di apprendimento automatico (AutoML) piuttosto che essere esplicitamente "ingegnerizzati" a mano.
Padroneggiando l'ingegneria delle caratteristiche, gli sviluppatori possono costruire modelli non solo più accurati ma anche più efficienti,
che richiedono meno potenza di calcolo per ottenere prestazioni elevate.