L'ingegneria delle funzionalità preelabora i dati non elaborati in un formato leggibile dalla macchina. Ottimizza le prestazioni del modello ML trasformando e selezionando le funzionalità pertinenti.
L'ingegneria delle caratteristiche è il processo di trasformazione dei dati non elaborati in informazioni pertinenti per l'utilizzo da parte dei modelli di machine learning. In altre parole, l'ingegneria delle caratteristiche è il processo di creazione delle caratteristiche per modelli predittivi. Una caratteristica, detta anche dimensione, è una variabile di input utilizzata per generare previsioni del modello. Poiché le prestazioni del modello si basano in gran parte sulla qualità dei dati utilizzati durante l'addestramento, l'ingegneria delle caratteristiche è una tecnica di pre-elaborazione cruciale che richiede la selezione degli aspetti più rilevanti dei dati di addestramento non elaborati sia per l'attività predittiva che per il tipo di modello in esame.1
Prima di procedere, una breve nota sulla terminologia. Molte fonti utilizzano i termini ingegneria delle caratteristiche ed estrazione di caratteristiche in modo intercambiabile per indicare l'elaborazione della creazione delle variabili del modello.2 Talvolta, le fonti usano il termine estrazione di caratteristiche per riferirsi alla rimappatura di uno spazio delle caratteristiche originale su uno spazio delle caratteristiche di dimensione inferiore.3 La selezione delle caratteristiche, al contrario, è una forma di riduzione della dimensionalità. In particolare, è l'elaborazione della selezione di un sottoinsieme di variabili al fine di creare un nuovo modello con lo scopo di ridurre la multicollinearità e quindi massimizzare la generalizzabilità e l'ottimizzazione del modello.
Dato che un modello è valido solo quanto lo sono i dati su cui si basa, i data scientist dedicano gran parte del tempo alla data preparation e alla creazione di funzioni per creare modelli di alta qualità. A seconda della complessità dei dati non elaborati e del modello predittivo desiderato, la progettazione di funzioni può richiedere molti tentativi ed errori.
Alcune fonti e tutorial online suddividono l'ingegneria delle caratteristiche in passaggi discreti, il cui numero e nomi in genere variano. Questi passaggi possono includere la comprensione, la strutturazione o la costruzione, la trasformazione, la valutazione, l'ottimizzazione delle caratteristiche, e l'elenco potrebbe continuare.4 Sebbene possa essere utile per fornire una panoramica generale delle attività coinvolte nell'ingegneria delle caratteristiche, tale stratificazione suggerisce che l'ingegneria delle caratteristiche è un processo lineare. In effetti, l'ingegneria delle caratteristiche è un processo iterativo.
L'ingegneria delle caratteristiche dipende dal contesto. Richiede un'analisi sostanziale dei dati e una conoscenza del dominio. Questo perché una codifica efficace delle caratteristiche può essere determinata dal tipo di modello utilizzato, dalla relazione tra predittori e output e dal problema che un modello intende risolvere.5 A ciò si aggiunge il fatto che diversi tipi di set di dati, ad es. testo e immagini, potrebbero essere più adatti a tecniche di ingegneria delle caratteristiche diverse.6 Pertanto, può essere difficile fare osservazioni specifiche su come implementare al meglio l'ingegneria delle caratteristiche all'interno di un determinato algoritmo di machine learning.
Sebbene non esista un metodo o una pipeline per la progettazione di funzioni universalmente preferibile, esistono alcune attività comuni utilizzate per creare delle funzioni da diversi tipi di dati per modelli diversi. Prima di implementare una qualsiasi di queste tecniche, tuttavia, è necessario ricordarsi di svolgere un'analisi approfondita dei dati per determinare sia le caratteristiche rilevanti che il numero appropriato di funzioni per affrontare un determinato problema. Inoltre, è meglio implementare varie tecniche di pulizia e pre-elaborazione dei dati, come l'assegnazione dei dati o dei valori mancanti, affrontando anche gli outlier che possono avere un impatto negativo sulle previsioni dei modelli.
La trasformazione delle funzioni è il processo di conversione di un tipo di funzione in un altro formato più leggibile per un modello specifico. Consiste nel trasformare i dati continui in dati categorici, o viceversa.
Binning. Questa tecnica sostanzialmente trasforma i valori numerici continui in caratteristiche categoriche. In particolare, il binning confronta ogni valore con l'intorno dei valori che lo circondano e quindi ordina i punti dati in una serie di bin. Un esempio rudimentale di binning sono i dati demografici relativi all'età, in cui le età continue vengono suddivise in fasce di età, ad esempio 18-25, 25-30 e così via. Una volta che i valori sono stati inseriti nei bin, è possibile uniformarli ulteriormente con medie, mediane o limiti. L'uniformazione dei bin sostituisce i valori in essi contenuti con valori derivati dal bin. Ad esempio, se uniformiamo un bin contenente valori di età compresi tra 18 e 25 anni con la media, sostituiamo ogni valore in quel bin con la sua media dei valori. Il binning crea valori categorici da quelli continui. L'uniformazione dei bin è una forma di livellamento locale destinata a ridurre il rumore nei dati di input.7
Codifica one-hot. Si tratta dell'inverso del binning; crea caratteristiche numeriche da variabili categoriche. La codifica one-hot mappa le caratteristiche categoriche in rappresentazioni binarie, che vengono utilizzate per mappare la caratteristica in una matrice o in uno spazio vettoriale. La letteratura si riferisce spesso a questa rappresentazione binaria come a una variabile dummy. Poiché la codifica one-hot ignora l'ordine, è meglio utilizzarla per le categorie nominali. I modelli Bag of words sono un esempio di codifica one-hot frequentemente utilizzata nelle attività di elaborazione del linguaggio naturale. Un altro esempio di codifica one-hot è la classificazione del filtro anti-spam in cui le categorie spam e non spam vengono convertite rispettivamente in 1 e 0.8
L'estrazione di caratteristiche è una tecnica per creare un nuovo spazio dimensionale per un modello combinando le variabili in nuove variabili surrogate o per ridurre le dimensioni dello spazio delle caratteristiche del modello.9 Per confronto, la selezione delle caratteristiche denota le tecniche per selezionare un sottoinsieme delle caratteristiche più rilevanti per rappresentare un modello. Sia l'estrazione che la selezione delle caratteristiche sono forme di riduzione della dimensionalità e quindi adatte per problemi di regressione con un gran numero di caratteristiche e campioni di dati disponibili limitati.
Analisi delle componenti principali. L'analisi delle componenti principali (PCA) è un metodo comune di estrazione delle caratteristiche che combina e trasforma le caratteristiche originali di un set di dati per produrre nuove caratteristiche, denominate componenti principali. La PCA seleziona un sottoinsieme di variabili da un modello che, insieme, rappresentano la maggior parte o tutta la varianza presente nell'insieme originale di variabili del modello. La PCA quindi proietta i dati su un nuovo spazio definito da questo sottoinsieme di variabili.10
Analisi discriminante lineare. L'analisi discriminante lineare (LDA) è apparentemente simile alla PCA in quanto proietta i dati del modello in un nuovo spazio dimensionale di livello inferiore. Come nella PCA, le dimensioni (o caratteristiche) di questo spazio modello derivano dalle caratteristiche del modello iniziale. Tuttavia, la LDA differisce dalla PCA per la preoccupazione di mantenere le etichette di classificazione nel set di dati originale. Mentre la PCA produce nuove variabili componente destinate a massimizzare la varianza dei dati, la LDA produce variabili componente destinate principalmente a massimizzare la differenza tra le classi nei dati.11
Alcune caratteristiche hanno limiti superiori e inferiori intrinseci ai dati che ne limitano i valori possibili, come nel caso dei dati temporali o dell'età. Tuttavia, in molti casi, le caratteristiche del modello potrebbero non avere una limitazione sui valori possibili e tali scale di caratteristiche così grandi (dato che rappresentano la differenza tra i valori più bassi e più alti di una caratteristica) possono influire negativamente su alcuni modelli. La normalizzazione delle caratteristiche è una tecnica di standardizzazione per ridimensionare le caratteristiche e limitare l'impatto delle grandi scale sui modelli.12 Mentre la trasformazione delle caratteristiche trasforma i dati da un tipo a un altro, la normalizzazione delle caratteristiche trasforma i dati in termini di intervallo e distribuzione, mantenendo il tipo di dati originale.13
Normalizzazione min-max. La normalizzazione min-max ridimensiona tutti i valori per una determinata caratteristica in modo che rientrino tra i valori minimi e massimi specificati, spesso 0 e 1. Il valore di ciascun punto dati per la caratteristica selezionata (rappresentato da x) viene calcolato in base ai valori minimi e massimi decisi della caratteristica, rispettivamente min(x) e max(x), che producono il nuovo valore della caratteristica per quel punto dati (rappresentato da x̃ ). La normalizzazione min-max viene calcolata utilizzando la formula:14
Scalabilità del punteggio Z. In letteratura questo fenomeno viene anche definito standardizzazione e scala della varianza. Mentre la scala min-max ridimensiona i valori funzione in modo che rientrino nei valori minimi e massimi designati, la scalabilità del punteggio z ridimensiona la funzione in modo che presenti una deviazione standard condivisa di 1 con una media di 0. La scalabilità del punteggio Z è rappresentata dalla formula:
Qui, un dato valore della caratteristica (x) viene calcolato rispetto alla media della caratteristica ridimensionata e diviso per la deviazione standard standardizzata (rappresentata come sqrt(var(x))). La normalizzazione z-score può essere utile quando si implementano metodi di estrazione di caratteristiche come PCA e LDA, poiché richiedono che le caratteristiche condividano la stessa scala.15
Automazione. L'ingegneria delle caratteristiche automatizzata è un'area di ricerca in corso da alcuni decenni.16 Librerie Python come "tsflex" e "featuretools" aiutano ad automatizzare l'estrazione e la trasformazione delle caratteristiche per i dati delle serie temporali. Gli sviluppatori continuano a fornire nuovi pacchetti e algoritmi per automatizzare l'ingegneria delle caratteristiche per i modelli di regressione lineare e altri tipi di dati che aumentano la precisione del modello.17 Più recentemente, l'ingegneria delle caratteristiche automatizzata è stata considerata come una parte di un impegno più ampio per creare sistemi di machine learning automatizzati (AutoML), che mirano a rendere il machine learning più accessibile ai non esperti.18
Deep learning. L'ingegneria delle caratteristiche può risultare un processo lungo e laborioso, che comporta una quantità significativa di tentativi ed errori. Il deep learning consente all'utente di specificare un piccolo set di caratteristiche di base che l'architettura della rete neurale aggrega in caratteristiche di livello superiore, chiamate anche rappresentazioni.19 Un esempio di ciò è l'elaborazione delle immagini nella computer vision e il riconoscimento di schemi,in cui un modello impara a identificare oggetti semanticamente significativi (come auto, persone e così via) in termini di concetti semplici (come bordi, contorni, e così via) concatenando mappe di caratteristiche. 20 Studi recenti, tuttavia, hanno combinato l'ingegneria delle caratteristiche con le reti neurali e altre tecniche di deep learning per compiti di classificazione, come il rilevamento delle frodi, con risultati promettenti.21
IBM Granite è la nostra famiglia di modelli AI aperti, efficienti e affidabili, su misura per le aziende e ottimizzati per scalare le applicazioni di AI. Esplora le opzioni di linguaggio, codice, serie temporali e guardrail.
Abbiamo intervistato 2.000 organizzazioni in merito alle loro iniziative di AI per scoprire cosa funziona, cosa non funziona e come giocare d'anticipo.
Esplora gli approcci di apprendimento supervisionato, come le macchine a vettori di supporto e i classificatori probabilistici.
Impara i concetti fondamentali e sviluppa le tue competenze con laboratori pratici, corsi, progetti guidati, prove e molto altro.
Scopri come scegliere il foundation model di AI più adatto al tuo caso d'uso.
Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.
Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.
Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.
1 Alice Zheng e Amanda Casari, Feature Engineering for Machine Learning, O’Reilly, 2018. Sinan Ozdemir e Divya Susarla, Feature Engineering Made Easy, Packt, 2018.
2 Yoav Goldberg, Neural Network Methods for Natural Language Processing, Springer, 2022.
3 Suhang Wang, Jiliang Tang e Huan Liu, "Feature Selection", Encyclopedia of Machine Learning and Data Mining, Springer, 2017.
4 Sinan Ozdemir, Feature Engineering Bookcamp, Manning Publications, 2022. Sinan Ozdemir e Divya Susarla, Feature Engineering Made Easy, Packt, 2018.
5 Max Kuhn e Kjell Johnson, Applied Predictive Modeling, Springer, 2016.
6 Alice Zheng e Amanda Casari, Feature Engineering for Machine Learning, O’Reilly, 2018.
7 Jaiwei Han, Data Mining: Concepts and Techniques, 3a edizione, 2012.
8 Kevin Murphy, Machine Learning: A Probabilistic Perspective, MIT Press, 2012. Soledad Galli, Python Feature Engineering Cookbook, 2a edizione, Packt, 2022.
9 Max Kuhn e Kjell Johnson, Applied Predictive Modeling, Springer, 2016.
10 I.T. Jollife, Principal Component Analysis, Springer, 2002.
11 Chris Albon, Machine Learning with Python Cookbook, O’Reilly, 2018.
12 Alice Zheng e Amanda Casari, Feature Engineering for Machine Learning, O’Reilly, 2018.
13 Zahraa Abdallah, Lan Du e Geoffrey Webb, "Data preparation", Encyclopedia of Machine Learning and Data Mining, Springer, 2017.
14 Alice Zheng and Amanda Casari, Feature Engineering for Machine Learning, O’Reilly, 2018.
15 Zahraa Abdallah, Lan Du e Geoffrey Webb, "Data preparation", Encyclopedia of Machine Learning and Data Mining, Springer, 2017. Alice Zheng e Amanda Casari, Feature Engineering for Machine Learning, O’Reilly, 2018.
16 James Kanter and Kalyan Veeramachaneni, "Deep feature synthesis: Towards automating data science endeavors", IEEE International Conference on Data Science and Advanced Analytics, 2015, https://ieeexplore.ieee.org/document/7344858.
17 Udayan Khurana, Deepak Turaga, Horst Samulowitz e Srinivasan Parthasrathy, "Cognito: Automated Feature Engineering for Supervised Learning", IEEE 16th International Conference on Data Mining Workshops, 2016, pagg. 1304-130, https://ieeexplore.ieee.org/abstract/document/7836821. Franziska Horn, Robert Pack e Michael Rieger, "The autofeat Python Library for Automated Feature Engineering and Selection", Joint European Conference on Machine Learning and Knowledge Discovery in Databases, 2019, pagg. 111-120, https://link.springer.com/chapter/10.1007/978-3-030-43823-4_10.
18 Ahmad Alsharef, Karan Aggarwal, Sonia, Manoj Kumar, and Ashutosh Mishra, "Review of ML and AutoML Solutions to Forecast Time‑Series Data", Archives of Computational Methods in Engineering, Vol. 29, 2022, pagg. 5297–5311, https://link.springer.com/article/10.1007/s11831-022-09765-0. Sjoerd Boeschoten, Cagatay Catal, Bedir Tekinerdogan, Arjen Lommen e Marco Blokland, "The automation of the development of classification models andimprovement of model quality using feature engineering techniques", Expert Systems with Applications, Vol. 213, 2023, https://www.sciencedirect.com/science/article/pii/S0957417422019303. Shubhra Kanti Karmaker, Mahadi Hassan, Micah Smith, Lei Xu, Chengxiang Zhai e Kalyan Veeramachaneni, "AutoML to Date and Beyond: Challenges and Opportunities," ACM Computing Surveys, Vol. 54, n. 8, 2022, pagg. 1-36, https://dl.acm.org/doi/abs/10.1145/3470918.
19 Yoav Goldberg, Neural Network Methods for Natural Language Processing, Springer, 2022.
20 Ian Goodfellow, Yoshua Bengio, and Aaron Courville, Deep Learning, MIT Press, 2016, https://www.deeplearningbook.org/
21 Xinwei Zhang, Yaoci Han, Wei Xu e Qili Wang, "HOBA: A novel feature engineering methodology for credit card fraud detection with a deep learning architecture", Information Sciences, Vol. 557, 2021, pagg. 302-316, https://www.sciencedirect.com/science/article/abs/pii/S002002551930427X. Daniel Gibert, Jordi Planes, Carles Mateu e Quan Le, "Fusing feature engineering and deep learning: A case study for malware classification", Expert Systems with Applications, Vol. 207, 2022, https://www.sciencedirect.com/science/article/pii/S0957417422011927. Ebenezerm Esenogho, Ibomoiye Domor Mienye, Theo Swart, Kehinde Aruleba e George Obaido, "A Neural Network Ensemble With Feature Engineering for Improved Credit Card Fraud Detection", IEEE Access, Vol. 10, 2020, pagg. 16400-16407, https://ieeexplore.ieee.org/abstract/document/9698195.