Selezione delle funzionalità nell'apprendimento automatico: motivazione
Questo breve articolo è il primo di una serie che spiega le tecniche di selezione delle funzionalità. Ho iniziato con un'introduzione amichevole e ho presentato le potenti ragioni alla base del processo di selezione delle funzionalità. Nei prossimi articoli menzionerò in dettaglio ogni metodo di selezione delle funzionalità.
La selezione delle funzionalità è il processo di selezione di un sottoinsieme di funzionalità rilevanti (variabili, predittori) dalle funzionalità totali di un livello in un set di dati per creare algoritmi di apprendimento automatico. Dato un set di dati iniziale che in genere contiene un gran numero di variabili, cosa possiamo fare per selezionare il pool di caratteristiche che sono importanti al momento di fare previsioni? Ci sono una varietà di procedure o tecniche che possiamo applicare come parte del processo di selezione delle caratteristiche.
Prima di immergerci nelle tecniche di selezione delle funzionalità, perché selezioniamo le funzionalità, tanto per cominciare? Ecco alcuni motivi.
- I modelli più semplici sono più facili da interpretare. È più facile per gli utenti del modello comprendere l'output di un modello che utilizza 10 variabili rispetto all'output di un modello che utilizza 100 variabili.
- Tempi di allenamento più brevi. La riduzione del numero di variabili utilizzate per costruire i modelli di machine learning riduce il costo computazionale e quindi accelera la costruzione del modello. Ma soprattutto, i modelli più semplici ottengono punteggi più rapidi rispetto alle applicazioni, il che è particolarmente importante se il modello si trova in un ambiente live in cui le decisioni devono essere prese in meno di un secondo.
- Generalizzazione potenziata riducendo l'overfitting. Molto spesso, molte delle variabili sono rumore con poco o nessun valore predittivo. I modelli di machine learning imparano però da questo rumore causando overfitting e riducendo la generalizzazione. Eliminando le caratteristiche rumorose irrilevanti possiamo migliorare sostanzialmente la generalizzazione di un modello di apprendimento automatico.
- Più facile da implementare da parte degli sviluppatori di software. Quando viene implementato il modello di apprendimento automatico, spesso gli sviluppatori di software devono scrivere codice per richiamare le variabili che devono essere inserite nel modello per produrre l'output. È molto più veloce scrivere codice per 10-50 variabili che per 400 variabili. Inoltre, meno codice è meno soggetto a bug e quindi fornisce un ambiente più sicuro.
- Riduzione del rischio di errori nei dati durante l'utilizzo del modello. Spesso le aziende fanno affidamento su chiamate a dati di terze parti da cui selezioneranno le variabili per trasmettere il modello di machine learning. La riduzione dell'utilizzo del numero di variabili utilizzate nel modello di apprendimento automatico riduce l'esposizione dell'azienda a errori nella raccolta e archiviazione dei dati di terze parti e anche i potenziali errori nella raccolta dei dati che possono verificarsi all'interno della stessa azienda.
- Ridondanza variabile. Abbastanza spesso le funzionalità all'interno di un set di dati sono altamente correlate. Caratteristiche altamente correlate forniscono l'essenza delle stesse informazioni. Pertanto sono in qualche modo ridondanti. Potremmo tenerne uno e rimuovere tutto il resto senza perdere informazioni.
- Cattivo comportamento di apprendimento in spazi ad alta dimensione. Le prestazioni del modello di Machine Learning in particolari algoritmi basati su albero sono favorite da spazi di funzionalità ridotti. Ciò significa, in altre parole, che dimensioni elevate causano scarse prestazioni nei metodi basati su albero, e quindi ridurre lo spazio delle caratteristiche aiuta a costruire modelli più robusti e predittivi.
Un algoritmo di selezione delle caratteristiche può essere visto come la combinazione di una tecnica di ricerca per proporre nuovi sottoinsiemi di funzionalità, insieme a una misura di evoluzione che valuta i diversi sottoinsiemi di funzionalità. Idealmente, un metodo di selezione delle funzionalità cercherà in tutti i possibili sottoinsiemi di combinazioni di funzionalità che possono essere ottenute da un determinato set di dati e troverà la combinazione di funzionalità che produce le migliori prestazioni del modello di machine learning. In pratica, questa in genere non è un'opzione a causa del costo computazionale. Inoltre, diversi sottoinsiemi di funzionalità possono produrre prestazioni ottimali per diversi algoritmi di apprendimento automatico. Ciò significa che non esiste solo un sottoinsieme di funzionalità ma potenzialmente molti sottoinsiemi di funzionalità ottimali a seconda dell'algoritmo di apprendimento automatico che intendiamo utilizzare. Pertanto, nel corso degli anni, Sono stati sviluppati molti metodi diversi per selezionare le funzionalità per cercare di soddisfare il maggior numero possibile di avvertimenti e limitazioni. In questa serie di articoli, descriverò molti metodi diversi per la selezione delle funzionalità, quali sono i vantaggi e gli svantaggi e come implementarli nella pratica utilizzando esempi di set di dati aziendali.