Ingegneria delle caratteristiche
Aumentate l'accuratezza dell'apprendimento automatico con l'ingegnerizzazione di funzioni esperte. Imparate le tecniche per la creazione, la trasformazione e la selezione di caratteristiche di grande impatto.
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 sottostante, migliorando in ultima analisi le prestazioni, l'accuratezza e l'interpretabilità del modello. È come preparare gli ingredienti migliori per una ricetta; anche lo chef (o il modello) più abile 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 dal mondo reale raramente sono pronti per essere utilizzati direttamente negli algoritmi di ML. Potrebbero contenere valori mancanti, incoerenze, 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, esplorare le tecniche di preelaborazione dei dati.
- Migliorare l'interpretabilità: Le caratteristiche significative possono talvolta rendere più facile capire perché un modello fa determinate previsioni, contribuendo all'IA spiegabile (XAI).
Tecniche comuni di ingegnerizzazione 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 categoriali: Conversione di dati non numerici (come le categorie "rosso", "verde", "blu") in formati numerici (ad esempio, codifica One-Hot, codifica di etichette). Vedere codifica di dati categorici.
- Creazione di caratteristiche (generazione): Derivazione di nuove caratteristiche da quelle esistenti in base alla conoscenza del dominio o all'analisi dell'interazione (ad esempio, creazione di "età" da "data_di_nascita", combinazione di "altezza" e "peso" in "BMI" o estrazione di caratteristiche di testo utilizzando TF-IDF).
- Binning (Discretizzazione): Raggruppamento di dati numerici continui in bins o intervalli discreti.
- Trasformazione logica: Applicazione di una trasformazione logaritmica per gestire distribuzioni di dati oblique. Per maggiori dettagli, esplorare le trasformazioni dei dati.
- 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
Sebbene siano spesso usate 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 delle 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: Nella produzione, 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 indicano 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 nella produzione.
- 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. Ciò è rilevante per l'intelligenza artificiale nei settori finanziario e della vendita al dettaglio.
Ingegneria delle caratteristiche e Ultralytics
Sebbene modelli avanzati come Ultralytics YOLO eccellano in compiti quali il rilevamento di oggetti e la segmentazione di immagini grazie all'apprendimento automatico di caratteristiche visive rilevanti attraverso le loro architetture di rete neurale profonda(spina dorsale, collo, testa), i principi dell'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 adattati al dominio del problema) prima di alimentarle 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 funzioni 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 set di dati e modelli. Esplorate la documentazione e le esercitazioni di Ultralytics per saperne di più sull'uso dei modelli, sull'addestramento personalizzato 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'efficace ingegnerizzazione delle funzionalità, anche in presenza di potenti modelli di deep learning, rimane un aspetto fondamentale delle pratiche MLOps di successo.