Come funziona esattamente la selezione delle caratteristiche di Chi-square?


15

So che per ogni coppia di feature class, il valore della statistica chi-quadro è calcolato quadro e confrontato con una soglia.

Sono un po 'confuso però. Se ci sono funzioni e kmK classi , come si costruisce la tabella di contingenza? Come si può decidere quali funzioni conservare e quali rimuovere?

Qualsiasi chiarimento sarà molto apprezzato. Grazie in anticipo


1
Qualche idea / suggerimento su questo qualcuno?
user721975

Risposte:


5

Il test chi-quadro è un test statistico di indipendenza per determinare la dipendenza di due variabili. Condivide somiglianze con coefficiente di determinazione, R². Tuttavia, il test chi-quadro è applicabile solo ai dati categorici o nominali mentre R² è applicabile solo ai dati numerici.

Dalla definizione di chi-quadrato possiamo facilmente dedurre l'applicazione della tecnica del chi-quadrato nella selezione delle caratteristiche. Supponiamo di avere una variabile di destinazione (cioè l'etichetta della classe) e alcune altre caratteristiche (variabili di funzione) che descrivono ciascun campione dei dati. Ora, calcoliamo le statistiche chi-quadrato tra ogni variabile caratteristica e la variabile target e osserviamo l'esistenza di una relazione tra le variabili e il target. Se la variabile target è indipendente dalla variabile feature, possiamo scartarla. Se sono dipendenti, la variabile caratteristica è molto importante.

I dettagli matematici sono descritti qui: http://nlp.stanford.edu/IR-book/html/htmledition/feature-selectionchi2-feature-selection-1.html

Per le variabili continue, dopo "Binning" è possibile applicare il chi-quadrato.

Un esempio in R, spudoratamente copiato da FSelector

# Use HouseVotes84 data from  mlbench package
library(mlbench)# For data
library(FSelector)#For method
data(HouseVotes84)

#Calculate the chi square statistics 
weights<- chi.squared(Class~., HouseVotes84)

# Print the results 
print(weights)

# Select top five variables
subset<- cutoff.k(weights, 5)

# Print the final formula that can be used in classification
f<- as.simple.formula(subset, "Class")
print(f)

Non collegato a così tanto nella selezione delle funzionalità, ma il video qui sotto discute in dettaglio il chisquare https://www.youtube.com/watch?time_continue=5&v=IrZOKSGShC8

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.