Selezione delle funzionalità Sklearn

Selezione delle funzionalità Sklearn
La migliore tecnica per risolvere un problema di apprendimento automatico è iniziare con un set di dati, eseguire un EDA accurato su di esso e afferra molti alla maggior parte delle caratteristiche chiave dei predittori prima di addestrare attivamente i modelli su queste variabili. Tuttavia, non è sempre possibile farlo. A volte è necessario un approccio automatizzato per scegliere un sottoinsieme di dati appropriato poiché il set di dati include troppe variabili. In questo articolo sono discusse tecniche simili trovate nella biblioteca Sklearn.

Cos'è la selezione delle funzionalità?

Il processo di selezione delle funzionalità prevede la riduzione del numero di variabili predittive impiegate nei modelli che crea. Ad esempio, la prima inclinazione dovrebbe essere quella di selezionare il modello con meno variabili quando presentato con due modelli con il punteggio stesso o quasi identico. Ma quest'ultimo modello ha più variabili. Questo modello ha meno probabilità di essere perde, più facile da eseguire e più semplice da capire e addestrare. Arriva facilmente come parte del processo di costruzione del modello per ottimizzare il numero di parametri in un modello, che è una componente naturale della scienza dei dati nella pratica. La selezione delle funzionalità è principalmente una procedura manuale, anche quando ci sono poche caratteristiche, o hai il tempo di sederti e pensarci. La selezione delle funzionalità automatizzata o semi-automatizzata può accelerare i processi in situazioni in cui ci sono troppe variabili o non hai molto tempo.

Implementazione della selezione delle funzionalità in Sklearn

Per prima cosa importa i dati utilizzando i panda. Il set di dati è disponibile qui.

Importa panda come PD
df = pd.read_csv ('Iris.CSV ')
df = df.drop ('id', axis = 1)
df.Testa()

Produzione

Sepallegthcm Sepalwidthcm Petallengthcm Petalwidthcm Specie
0 5.1 3.5 1.4 0.2 Iris-Setosa
1 4.9 3.0 1.4 0.2 Iris-Setosa
2 4.7 3.2 1.3 0.2 Iris-Setosa
3 4.6 3.1 1.5 0.2 Iris-Setosa
4 5.0 3.6 1.4 0.2 Iris-Setosa

Selezione delle funzionalità di soglia di varianza

Una soglia di varianza è un metodo semplice per rimuovere le funzionalità a seconda della varianza che prevediamo per ogni funzione. Senza considerare alcun dato dalla variabile dipendente, la selezione delle funzionalità di soglia di varianza considera semplicemente le funzionalità di input. Di conseguenza, è efficace solo per la modellazione senza supervisione quando vengono eliminate le caratteristiche. Di seguito è riportato l'implementazione dell'approccio:

da Sklearn.Feature_Selection Import VarianceTreshold
df = df.Select_Dtypes ('Number')
Selector = VarianCethReshold (2)
selettore.Fit (DF)
df.colonne [selettore.Ottieni supporto()]

Produzione

INDICE (['petAllengthcm'], dType = "Object")

SelectKBest

Una tecnica di selezione delle funzionalità chiamata selezione univariata delle caratteristiche si basa sul test statistico univariato. La fondazione di "SelectKBest" è la combinazione di un test statistico univariato con la selezione delle caratteristiche del numero K in base alla correlazione statistica tra le variabili dipendenti e indipendenti. Di seguito è riportata l'implementazione di "SelectKBest".

X = df.Drop ('Specie', Asse = 1)
y = df ['specie']
da Sklearn.Feature_Selection Import SelectKBest, Mutual_info_regression
dalla preelaborazione dell'importazione di Sklearn
encoder = preprocessing.LabelenCoder ()
y = encoder.fit_transform (y)
Selector = SelectKBest (mutual_info_regression, k = 2)
selettore.Fit (x, y)
X.colonne [selettore.Ottieni supporto()]

Produzione

INDICE (['PetalleNtongthcm', 'PetalWidThcm'], dType = 'Object')

Conclusione

Abbiamo discusso dei metodi di selezione delle funzionalità in Sklearn. La selezione delle funzionalità è importante quando si lavora con molte funzionalità e dobbiamo abbandonare le funzionalità ridondanti per una migliore comprensione dei dati e prestazioni migliori. Sklearn ci fornisce un modulo "Feature_Selection" utilizzato per implementare questa tecnica.