Feature Engineering
Esplora il feature engineering per aumentare le prestazioni del modello. Impara tecniche come lo scaling e l’augmentation per ottimizzare Ultralytics YOLO26 e ottenere una maggiore accuratezza.
L'ingegneria delle feature è il processo di trasformazione dei dati grezzi in input significativi che migliorano le prestazioni dei modelli di machine learning. Consiste nell'utilizzare la conoscenza del dominio per selezionare, modificare o creare nuove variabili, note come feature, che aiutano gli algoritmi a comprendere meglio i pattern nei dati. Sebbene le moderne architetture di deep learning, come le reti neurali convoluzionali (CNN), siano in grado di apprendere automaticamente le feature, l'ingegneria esplicita delle feature rimane un passaggio fondamentale in molti workflow, in particolare quando si lavora con dati strutturati o si cerca di ottimizzare l'efficienza del modello sui dispositivi edge. Raffinando i dati di input, gli sviluppatori possono spesso ottenere una maggiore accuratezza con modelli più semplici, riducendo la necessità di enormi risorse computazionali.
Il ruolo dell'ingegneria delle feature nell'IA#
Nel contesto dell'intelligenza artificiale (AI), i dati grezzi sono raramente pronti per l'elaborazione immediata. Potrebbe essere necessario ridimensionare le immagini, tokenizzare il testo e gestire i valori mancanti o le colonne irrilevanti spesso presenti nei dati tabellari. L'ingegneria delle feature colma il divario tra le informazioni grezze e le rappresentazioni matematiche richieste dagli algoritmi. Un'ingegneria efficace può evidenziare relazioni critiche che altrimenti un modello potrebbe non rilevare, ad esempio combinando "distanza" e "tempo" per creare una feature "velocità". Questo processo è strettamente legato al preprocessing dei dati, ma mentre il preprocessing si concentra sulla pulizia e sulla formattazione, l'ingegneria delle feature riguarda il miglioramento creativo volto ad aumentare la capacità predittiva.
Per le attività di computer vision, l'ingegneria delle feature si è evoluta notevolmente. I metodi tradizionali prevedevano la creazione manuale di descrittori come lo Scale-Invariant Feature Transform (SIFT) per identificare bordi e angoli. Oggi, modelli di deep learning come YOLO26 eseguono l'estrazione automatica delle feature nei propri livelli nascosti. Tuttavia, l'ingegneria continua a svolgere un ruolo fondamentale nella preparazione dei dataset, ad esempio generando dati sintetici o applicando tecniche di data augmentation, come mosaici e mixup, per esporre i modelli a variazioni delle feature più robuste durante l'addestramento.
Tecniche e applicazioni comuni#
L'ingegneria delle feature comprende un'ampia gamma di strategie adattate al problema specifico e al tipo di dati.
- Riduzione della dimensionalità: tecniche come la Principal Component Analysis (PCA) riducono il numero di variabili conservando al contempo le informazioni essenziali e prevenendo l'overfitting nei dataset ad alta dimensionalità.
- Codifica delle variabili categoriche: gli algoritmi richiedono generalmente input numerici. Metodi come la codifica one-hot trasformano le etichette categoriche (ad es. "Rosso", "Blu") in vettori binari elaborabili dai modelli.
- Normalizzazione e ridimensionamento: ridimensionare le feature a un intervallo standard garantisce che le variabili con magnitudini maggiori (come i prezzi delle case) non predominino su quelle con intervalli più piccoli (come il numero di stanze), aspetto fondamentale per l'ottimizzazione basata sul gradiente nelle reti neurali.
- Raggruppamento e discretizzazione: raggruppare i valori continui in intervalli (ad es. fasce d'età) può aiutare i modelli a gestire gli outlier in modo più efficace e a catturare relazioni non lineari.
Esempi nel mondo reale#
L'ingegneria delle feature viene applicata in vari settori per risolvere problemi complessi.
-
Manutenzione predittiva nella produzione: nella produzione intelligente, i sensori raccolgono dati grezzi su vibrazioni e temperatura dai macchinari. Gli ingegneri possono creare feature che rappresentano il "tasso di variazione" della temperatura o la "media mobile" dell'intensità delle vibrazioni. Queste feature ingegnerizzate consentono ai modelli di rilevamento delle anomalie di prevedere il guasto delle apparecchiature con giorni di anticipo, invece di reagire soltanto alle letture correnti dei sensori.
-
Valutazione del rischio di credito: gli istituti finanziari utilizzano l'ingegneria delle feature per valutare l'idoneità ai prestiti. Invece di considerare soltanto un valore grezzo di "reddito", possono creare una feature come il "rapporto debito-reddito" o la "percentuale di utilizzo del credito". Queste feature derivate offrono una visione più sfumata della situazione finanziaria del richiedente, consentendo una classificazione del rischio più accurata.
Esempio di codice: data augmentation personalizzata delle feature#
Nella computer vision, possiamo "ingegnerizzare" le feature applicando la data augmentation alle immagini per simulare diverse condizioni ambientali. Questo aiuta modelli come YOLO26 a generalizzare meglio. L'esempio seguente mostra come applicare una semplice trasformazione in scala di grigi utilizzando gli strumenti ultralytics, costringendo il modello ad apprendere le feature strutturali invece di basarsi esclusivamente sul colore.
import cv2
from ultralytics.data.augment import Albumentations
# Load an example image using OpenCV
img = cv2.imread("path/to/image.jpg")
# Define a transformation pipeline to engineer new visual features
# Here, we convert images to grayscale with a 50% probability
transform = Albumentations(p=1.0)
transform.transform = A.Compose([A.ToGray(p=0.5)])
# Apply the transformation to create a new input variation
augmented_img = transform(img)
# This process helps models focus on edges and shapes, improving robustnessDistinzione dai termini correlati#
Per evitare confusione nelle discussioni sui workflow, è utile distinguere l'ingegneria delle feature da concetti simili.
- Ingegneria delle feature ed estrazione delle feature: sebbene siano spesso usati come sinonimi, esiste una differenza. L'ingegneria delle feature implica un processo manuale e creativo di costruzione di nuovi input basato sulla conoscenza del dominio. Al contrario, l'estrazione delle feature si riferisce spesso a metodi automatizzati o proiezioni matematiche (come la PCA) che distillano dati ad alta dimensionalità in una rappresentazione densa. Nel deep learning (DL), i livelli delle reti neurali convoluzionali (CNN) eseguono l'estrazione automatica delle feature apprendendo filtri per bordi e texture.
- Ingegneria delle feature ed embeddings: nell'odierna elaborazione del linguaggio naturale (NLP), la creazione manuale di feature (come il conteggio della frequenza delle parole) è stata in gran parte sostituita dagli embeddings. Gli embeddings sono rappresentazioni vettoriali dense apprese dal modello stesso per catturare il significato semantico. Sebbene gli embeddings siano una forma di feature, vengono appresi tramite processi di machine learning automatizzato (AutoML) invece di essere "ingegnerizzati" esplicitamente a mano.
Padroneggiando l'ingegneria delle feature, gli sviluppatori possono creare modelli non solo più accurati, ma anche più efficienti, che richiedono una minore potenza di calcolo per ottenere prestazioni elevate. Strumenti come la Ultralytics Platform facilitano questo processo offrendo interfacce intuitive per la gestione dei dataset e l'addestramento dei modelli, consentendo agli utenti di iterare rapidamente sulle proprie strategie per le feature.









