Le 6 migliori tecniche utilizzate nell'ingegneria delle funzionalità [apprendimento automatico]
Pubblicato: 2021-03-12Sommario
introduzione
L'ingegneria delle funzionalità è uno degli aspetti più importanti di qualsiasi progetto di scienza dei dati. L'ingegneria delle caratteristiche si riferisce alle tecniche utilizzate per estrarre e perfezionare le caratteristiche dai dati grezzi. Le tecniche di ingegneria delle caratteristiche vengono utilizzate per creare dati di input appropriati per il modello e per migliorare le prestazioni del modello.
I modelli vengono addestrati e costruiti sulle funzionalità che deriviamo dai dati grezzi per fornire l'output richiesto. Può succedere che i dati che abbiamo non siano abbastanza buoni perché il modello possa imparare qualcosa da esso. Se siamo in grado di derivare le caratteristiche che trovano la soluzione al nostro problema sottostante, risulterebbe essere una buona rappresentazione dei dati. Migliore è la rappresentazione dei dati, migliore sarà l'adattamento del modello e migliori risultati saranno mostrati dal modello.
Il flusso di lavoro di qualsiasi progetto di data science è un processo iterativo piuttosto che un processo una tantum. Nella maggior parte dei progetti di scienza dei dati, viene creato un modello di base dopo aver creato e perfezionato le funzionalità dai dati grezzi. Dopo aver ottenuto i risultati del modello di base, alcune funzionalità esistenti possono essere ottimizzate e dai dati vengono derivate anche alcune nuove funzionalità per ottimizzare i risultati del modello.
Ingegneria delle funzionalità
Le tecniche utilizzate nel processo di ingegneria delle caratteristiche possono fornire i risultati allo stesso modo per tutti gli algoritmi e gli insiemi di dati. Alcune delle tecniche comuni utilizzate nel processo di progettazione delle funzionalità sono le seguenti:
1. Trasformazione del valore
I valori delle caratteristiche possono essere trasformati in qualche altra metrica utilizzando parametri come la funzione logaritmica, la funzione radice, la funzione esponenziale, ecc. Esistono alcune limitazioni per queste funzioni e potrebbero non essere utilizzate per tutti i tipi di set di dati. Ad esempio, la trasformazione radice o la trasformazione logaritmica non può essere applicata alle funzioni che contengono valori negativi.
Una delle funzioni più comunemente utilizzate è la funzione logaritmica. La funzione logaritmica può aiutare a ridurre l'asimmetria dei dati che possono essere distorti verso un'estremità. La trasformazione logaritmica tende a normalizzare i dati riducendo l'effetto dei valori anomali sulle prestazioni del modello.
Aiuta anche a ridurre l'entità dei valori in una funzione. Ciò è utile quando si utilizzano alcuni algoritmi che considerano le caratteristiche con valori maggiori di maggiore importanza rispetto alle altre.
2. Imputazione dei dati
L'imputazione dei dati si riferisce al riempimento dei valori mancanti in un set di dati con un valore statistico. Questa tecnica è importante poiché alcuni algoritmi non funzionano sui valori mancanti che ci limitano a utilizzare altri algoritmi o ad imputare questi valori mancanti. È preferibile utilizzarlo se la percentuale di valori mancanti in una caratteristica è inferiore (intorno al 5-10%) altrimenti porterebbe a una maggiore distorsione nella distribuzione dei dati. Esistono diversi metodi per farlo per le caratteristiche numeriche e categoriali.
Possiamo imputare i valori mancanti nelle caratteristiche numeriche con valori arbitrari all'interno di un intervallo specificato o con misure statistiche come media, mediana, ecc. Queste imputazioni devono essere fatte con attenzione poiché le misure statistiche sono soggette a valori anomali che degraderebbero piuttosto le prestazioni del modello . Per le caratteristiche categoriali, possiamo imputare i valori mancanti con una categoria aggiuntiva che manca nel set di dati o semplicemente imputarli come mancanti se la categoria è sconosciuta.
Il primo richiede un buon senso di conoscenza del dominio per essere in grado di trovare la categoria corretta, mentre il secondo è più un'alternativa per la generalizzazione. Possiamo anche usare la modalità per imputare le caratteristiche categoriali. L'attribuzione dei dati con modalità potrebbe anche portare a una rappresentazione eccessiva dell'etichetta più frequente se i valori mancanti sono in numero troppo elevato.
Partecipa ai corsi di intelligenza artificiale online delle migliori università del mondo: master, programmi post-laurea esecutivi e programma di certificazione avanzata in ML e AI per accelerare la tua carriera.
3. Codifica categoriale
Uno dei requisiti in molti algoritmi è che i dati di input debbano essere di natura numerica. Questo risulta essere un vincolo per l'utilizzo di caratteristiche categoriali in tali algoritmi. Per rappresentare le caratteristiche categoriali come numeri, dobbiamo eseguire la codifica categoriale. Alcuni dei metodi per convertire le caratteristiche categoriali in numeri sono i seguenti:
1. Codifica one-hot: – La codifica one-hot crea una nuova funzione che assume un valore (0 o 1) per ciascuna etichetta in una caratteristica categoriale. Questa nuova funzionalità indica se quell'etichetta della categoria è presente per ogni osservazione. Ad esempio, supponiamo che ci siano 4 etichette in una caratteristica categoriale, quindi applicando la codifica one-hot, creerebbe 4 funzioni booleane.
La stessa quantità di informazioni può essere estratta anche con 3 caratteristiche come se tutte le caratteristiche contenessero 0, quindi il valore della caratteristica categoriale sarebbe la 4a etichetta. L'applicazione di questo metodo aumenta lo spazio delle funzionalità se sono presenti molte funzionalità categoriali con un numero elevato di etichette nel set di dati.
2. Codifica della frequenza: – Questo metodo calcola il conteggio o la percentuale di ciascuna etichetta nella caratteristica categoriale e lo mappa rispetto alla stessa etichetta. Questo metodo non estende lo spazio delle funzionalità del set di dati. Uno svantaggio di questo metodo è che se le due o più etichette hanno lo stesso conteggio nel set di dati, darebbe alla mappa lo stesso numero per tutte le etichette. Ciò comporterebbe la perdita di informazioni cruciali.
3. Codifica ordinale: – Conosciuto anche come codifica dell'etichetta, questo metodo mappa i valori distinti di una caratteristica categoriale con un numero compreso tra 0 e n-1, dove n è il numero distinto di etichette nella caratteristica. Questo metodo non ingrandisce lo spazio delle funzioni del set di dati. Ma crea una relazione ordinale all'interno delle etichette in una funzione.
4. Gestione dei valori anomali
I valori anomali sono i punti dati i cui valori sono molto diversi dal resto del lotto. Per gestire questi valori anomali, dobbiamo prima rilevarli. Possiamo rilevarli utilizzando visualizzazioni come box-plot e scatter-plot in Python, oppure possiamo utilizzare l'intervallo interquartile (IQR). L'intervallo interquartile è la differenza tra il primo trimestre (25° percentile) e il terzo trimestre (75° percentile).
I valori che non rientrano nell'intervallo (Q1 – 1,5*IQR) e (Q3 + 1,5*IQR) sono definiti valori anomali. Dopo aver rilevato i valori anomali, possiamo gestirli rimuovendoli dal set di dati, applicando alcune trasformazioni, trattandoli come valori mancanti per attribuirli utilizzando un metodo, ecc.
5. Ridimensionamento delle funzionalità
Il ridimensionamento delle funzionalità viene utilizzato per modificare i valori delle funzionalità e per portarli all'interno di un intervallo. È importante applicare questo processo se utilizziamo algoritmi come SVM, Regressione lineare, KNN, ecc., che sono sensibili all'entità dei valori. Per ridimensionare le funzionalità, possiamo eseguire la standardizzazione, la normalizzazione, il ridimensionamento min-max. La normalizzazione ridimensiona i valori di un intervallo di funzionalità da -1 a 1. È il rapporto tra la sottrazione di ciascuna osservazione e la media rispetto alla sottrazione del valore massimo e minimo di quella caratteristica. cioè [X – media(X)]/[max(X) – min(X)].
Nel ridimensionamento min-max, utilizza il valore minimo della funzione anziché la media. Questo metodo è molto sensibile ai valori anomali poiché considera solo i valori finali della funzione. La standardizzazione ridimensiona i valori di una caratteristica da 0 a 1. Non normalizza la distribuzione dei dati mentre il metodo precedente lo farà.
6. Gestione delle variabili di data e ora
Ci imbattiamo in molte variabili che indicano la data e l'ora in diversi formati. Possiamo ricavare più caratteristiche dalla data come il mese, il giorno della settimana/mese, l'anno, il fine settimana o meno, la differenza tra le date, ecc. Questo può permetterci di estrarre informazioni più approfondite dal set di dati. Dalle caratteristiche del tempo, possiamo anche estrarre informazioni come ore, minuti, secondi, ecc.
Una cosa che la maggior parte delle persone perde è che tutte le variabili di data e ora sono caratteristiche cicliche. Ad esempio, supponiamo di dover controllare quale giorno tra mercoledì (3) e sabato (7) è più vicino alla domenica (essendo un 1). Ora sappiamo che sabato è più vicino ma in termini numerici sarà un mercoledì in quanto la distanza tra 3 e 1 è inferiore a quella tra 7 e 1. Lo stesso può essere applicato quando il formato dell'ora è nel formato 24 ore.
Per affrontare questo problema, possiamo esprimere queste variabili come una rappresentazione della funzione sin e cos. Per la funzione 'minuto', possiamo applicare la funzione sin e cos usando NumPy per rappresentarla in natura ciclica come segue:
minute_feature_sin = np.sin(df['minute_feature']*(2*π/60))
minute_feature_cos = np.cos(df['minute_feature']*(2*π/60))
(Nota: dividere per 60 perché ci sono 60 minuti in un'ora. Se vuoi farlo per mesi, dividilo per 12 e così via)
Tracciando queste caratteristiche su un grafico a dispersione, noterai che queste caratteristiche mostrano una relazione ciclica tra di loro.
Leggi anche: Idee e argomenti per progetti di apprendimento automatico
Conclusione
L'articolo si è concentrato sull'importanza dell'ingegneria delle funzionalità, oltre a citare alcune tecniche comuni utilizzate nel processo di ingegneria delle funzionalità. Dipende dall'algoritmo e dai dati disponibili per decidere quali tecniche di tutte le sopra elencate fornirebbero informazioni migliori.
Ma questa è davvero una presa difficile e non sicura da presumere poiché i set di dati possono essere diversi e anche gli algoritmi utilizzati per i dati possono variare. L'approccio migliore è seguire un approccio incrementale e tenere traccia dei modelli che sono stati costruiti insieme ai loro risultati piuttosto che eseguire l'ingegneria delle funzionalità in modo sconsiderato.
Se sei interessato a saperne di più sull'apprendimento automatico, dai un'occhiata al programma Executive PG di IIIT-B e upGrad in Machine Learning e AI , progettato per i professionisti che lavorano e offre oltre 450 ore di formazione rigorosa, oltre 30 casi di studio e incarichi, IIIT -B Status di Alumni, oltre 5 progetti pratici pratici e assistenza sul lavoro con le migliori aziende.
Quali sono gli svantaggi dell'utilizzo della tecnica di imputazione dei dati basata sulla mediana media?
Quando si utilizza l'imputazione media, i collegamenti e le correlazioni tra le variabili non vengono preservati. Ma imputando la media si mantiene la media dei dati osservati. Di conseguenza, anche se tutti i dati mancassero casualmente, la stima media rimarrebbe imparziale. La varianza delle variabili imputate viene ridotta utilizzando l'imputazione media. L'imputazione media riduce gli errori standard, rendendo imprecisi la maggior parte dei test di ipotesi e dei calcoli dell'intervallo di confidenza. In questo modo, gli errori di tipo I vengono commessi inconsciamente.
Perché è richiesta l'estrazione delle caratteristiche?
L'estrazione delle caratteristiche viene utilizzata per individuare la raccolta di caratteristiche più piccola e informativa (modelli distinti) al fine di migliorare l'efficacia del classificatore. L'estrazione delle caratteristiche aiuta a ridurre i dati non necessari in una raccolta di dati in modo che l'accento sia posto solo sulle informazioni e sulle caratteristiche rilevanti. Infine, la riduzione dei dati rende più facile per la macchina sviluppare il modello con meno sforzo, oltre a velocizzare i processi di apprendimento e generalizzazione nel processo di apprendimento automatico. L'applicazione più importante dell'ingegneria delle caratteristiche è nella classificazione dei segnali biomedici, dove l'estrazione delle caratteristiche è un elemento importante, poiché se le caratteristiche non vengono scelte con attenzione, le prestazioni della classificazione potrebbero risentirne.
Ci sono degli svantaggi nell'usare la tecnica di estrazione delle caratteristiche?
L'estrazione delle funzionalità ha creato alcune nuove funzionalità che non possono essere lette o comprese dalla gente comune. La scalabilità è un'altra sfida affrontata durante l'estrazione delle funzionalità. Se i set di dati sono di grandi dimensioni, alcune delle tecniche di estrazione delle caratteristiche non potranno essere eseguite. Approcci complessi di estrazione di caratteristiche non lineari, in particolare, sarebbero impossibili da implementare. La maggior parte delle tecniche si basa su una qualche forma di approssimazione per gestire in modo efficiente il problema di selezione delle caratteristiche, che in determinate situazioni non è in grado di affrontare il problema preciso.