L'ingegneria delle caratteristiche è il processo cruciale di selezione, trasformazione e creazione di caratteristiche dai dati grezzi per renderli più adatti ai modelli di Machine Learning (ML). Si tratta di utilizzare la conoscenza del dominio e le tecniche di analisi dei dati per creare input che rappresentino meglio il problema di fondo, migliorando in ultima analisi le prestazioni, l'accuratezza e l'interpretabilità del modello. Pensa a questa fase come alla preparazione degli ingredienti migliori per una ricetta; anche il cuoco più abile (o il modello) ha difficoltà con ingredienti di scarsa qualità(dati di addestramento). Questa fase è spesso considerata una delle parti più critiche e lunghe del flusso di lavoro del ML.
Perché il Feature Engineering è importante?
I dati grezzi raccolti nel mondo reale raramente sono pronti per essere utilizzati direttamente negli algoritmi di ML. Potrebbero contenere valori mancanti, incongruenze, informazioni irrilevanti o essere in formati non adatti al consumo del modello (come i dati testuali o categorici). L'ingegneria delle caratteristiche affronta questi problemi
- Miglioramento delle prestazioni del modello: Le caratteristiche ben congegnate evidenziano i modelli rilevanti per il problema, facilitando l'apprendimento e la generalizzazione dei modelli.
- Riduzione della complessità: può semplificare i modelli fornendo input più informativi, riducendo talvolta la necessità di architetture o algoritmi di rilevamento degli oggetti molto complessi.
- Gestione di diversi tipi di dati: Fornisce metodi per convertire vari tipi di dati (testo, immagini, categoriali) in rappresentazioni numeriche comprensibili agli algoritmi. Per ulteriori letture, esplora le tecniche di pre-elaborazione dei dati.
- Migliorare l'interpretabilità: Le caratteristiche significative possono talvolta rendere più facile capire perché un modello fa determinate previsioni, contribuendo all'Explainable AI (XAI).
Tecniche comuni di ingegneria delle caratteristiche
Diverse tecniche rientrano nell'ambito dell'ingegneria delle caratteristiche:
- Imputazione: Gestire i dati mancanti riempiendo le lacune con valori stimati (ad esempio, media, mediana o metodi più sofisticati). La gestione dei dati mancanti è un primo passo comune.
- Scalatura e normalizzazione: Regolazione dell'intervallo o della distribuzione delle caratteristiche numeriche (ad esempio, scalatura Min-Max, normalizzazione del punteggio Z) per evitare che le caratteristiche con valori più grandi dominino il processo di apprendimento.
- Codifica di variabili categoriche: Conversione di dati non numerici (come le categorie "rosso", "verde", "blu") in formati numerici (ad esempio, codifica One-Hot, codifica di etichette). Vedi codifica di dati categorici.
- Creazione di caratteristiche (generazione): Derivazione di nuove caratteristiche da quelle esistenti sulla base della conoscenza del dominio o dell'analisi dell'interazione (ad esempio, creazione di "età" da "data_di_nascita", combinazione di "altezza" e "peso" in "BMI" o estrazione di caratteristiche testuali utilizzando TF).
- Binning (Discretizzazione): Raggruppamento di dati numerici continui in bins o intervalli discreti.
- Trasformazione logica: Applicare una trasformazione logaritmica per gestire distribuzioni di dati distorte. Esplora le trasformazioni dei dati per maggiori dettagli.
- Selezione delle caratteristiche: Identificare e mantenere solo le caratteristiche più rilevanti, scartando quelle ridondanti o irrilevanti per semplificare il modello e potenzialmente migliorare le prestazioni. Questo aspetto è strettamente correlato alla riduzione della dimensionalità.
Ingegneria delle caratteristiche vs. estrazione delle caratteristiche
Anche se spesso vengono utilizzate in modo intercambiabile, l'ingegneria delle caratteristiche e l'estrazione delle caratteristiche hanno sfumature distinte.
- Ingegneria delle caratteristiche: Un processo più ampio che include l' estrazione di caratteristiche, ma che comporta anche la creazione manuale di nuove caratteristiche, la trasformazione di quelle esistenti in base all'esperienza del dominio e la selezione delle caratteristiche migliori. Spesso richiede creatività e una profonda comprensione dei dati e del problema.
- Estrazione di caratteristiche: Si concentra in particolare sulla trasformazione automatica di dati grezzi, spesso ad alta densità (come le immagini o le letture grezze dei sensori) in un insieme di caratteristiche a bassa densità e più gestibili. Tecniche come l'analisi delle componenti principali (PCA) o l'apprendimento automatico delle caratteristiche da parte degli strati delle reti neurali convoluzionali (CNN) sono esempi di estrazione di caratteristiche.
In sostanza, l'estrazione delle caratteristiche è spesso uno strumento utilizzato nell'ambito del più ampio processo di ingegneria delle caratteristiche.
Applicazioni del mondo reale
- Manutenzione predittiva: Nel settore manifatturiero, i dati grezzi dei sensori (vibrazioni, temperatura, pressione) provenienti dalle macchine possono essere rumorosi e altamente dimensionali. L'ingegnerizzazione delle caratteristiche potrebbe comportare il calcolo di medie mobili, deviazioni standard su finestre temporali, caratteristiche nel dominio della frequenza (come la FFT) o la creazione di caratteristiche che indichino picchi o cambiamenti improvvisi. Queste caratteristiche ingegnerizzate rendono più facile per un modello di ML prevedere potenziali guasti alle apparecchiature prima che si verifichino, come discusso in AI nel settore manifatturiero.
- Previsione del tasso di abbandono dei clienti: Per prevedere quali clienti potrebbero smettere di utilizzare un servizio, i dati grezzi includono i log di utilizzo, i dati demografici, la cronologia dei ticket di assistenza e i record di acquisto. L'ingegnerizzazione delle caratteristiche potrebbe comportare la creazione di caratteristiche come la "durata media della sessione", il "tempo trascorso dall'ultimo acquisto", il "numero di ticket di assistenza nell'ultimo mese", il "rapporto tra feedback positivi e negativi" o il "valore della vita del cliente". Queste caratteristiche derivate forniscono segnali più ricchi per prevedere l'abbandono rispetto ai soli log grezzi. Questo aspetto è rilevante per l'intelligenza artificiale nei settori della finanza e della vendita al dettaglio.
Ingegneria delle caratteristiche e Ultralytics
Mentre i modelli avanzati come Ultralytics YOLO eccellono in compiti come il rilevamento di oggetti e la segmentazione di immagini grazie all'apprendimento automatico di caratteristiche visive rilevanti attraverso le loro architetture di reti neurali profonde(spina dorsale, collo, testa), i principi di ingegneria delle caratteristiche rimangono rilevanti. Ad esempio, la pre-elaborazione delle immagini in ingresso (ad esempio l'equalizzazione dell'istogramma per variare l'illuminazione, la riduzione del rumore utilizzando librerie come OpenCV o l'applicazione di incrementi di dati specifici per il dominio del problema) prima di inserirle in un modello YOLO è una forma di ingegneria delle caratteristiche che può migliorare la robustezza e le prestazioni del modello. Inoltre, i risultati di YOLO (come le coordinate dei riquadri di delimitazione, le classi di oggetti, i conteggi) possono essere ingegnerizzati in caratteristiche per attività a valle o combinati con altre fonti di dati per analisi più complesse, magari gestite all'interno di piattaforme come Ultralytics HUB che aiutano a organizzare i set di dati e i modelli. Esplora la documentazione e i tutorial di Ultralytics per saperne di più sull'utilizzo dei modelli, sulla formazione personalizzata e sulla pre-elaborazione dei dati annotati. Strumenti come Featuretools possono anche aiutare ad automatizzare parti del processo di feature engineering, allineandosi ai concetti dell'Automated Machine Learning (AutoML). Un'ingegnerizzazione efficace delle funzionalità, anche in presenza di potenti modelli di deep learning, rimane un aspetto fondamentale delle pratiche MLOps di successo.