Importanza delle caratteristiche con caratteristiche categoriche ad alta cardinalità per la regressione (variabile numerica dipendente)


12

Stavo cercando di usare le importazioni delle funzionalità dalle foreste casuali per eseguire alcune selezioni empiriche di funzionalità per un problema di regressione in cui tutte le funzionalità sono categoriche e molte hanno molti livelli (dell'ordine di 100-1000). Dato che la codifica one-hot crea una variabile fittizia per ogni livello, le importazioni delle funzionalità sono per ogni livello e non per ogni funzione (colonna). Qual è un buon modo per aggregare queste importazioni di funzionalità?

Ho pensato di sommare o ottenere l'importanza media per tutti i livelli di una funzione (probabilmente la prima sarà distorta verso quelle funzionalità con più livelli). Ci sono riferimenti su questo problema?

Cos'altro si può fare per ridurre il numero di funzioni? Sono a conoscenza del lazo di gruppo, non ho trovato nulla di facile da usare per scikit-learn.


Qualcuno può rispondere alla domanda se la somma dell'importanza variabile di ciascun livello della variabile categoriale abbia senso?
vedi 24

@ see24 No, non puoi semplicemente sommarli
Dan

Risposte:


5

Dipende da come li stai codificando. Molte soluzioni automatizzate per questo nomineranno tutti i booleani convertiti con uno schema in modo che una variabile categorica chiamata "lettera" con valori AZ finisca come:

letter_A, letter_B, letter_C, letter_D, ....

Se dopo aver capito l'importanza della funzione hai una serie di caratteristiche e il peso / importanza associati, analizzerei la matrice e forse riassumerei i pesi di importanza della funzione per tutto ciò che inizia con "lettera%".


3
La somma non sta dando un vantaggio a quelle funzionalità con più livelli?
user90772

Hmm, buon punto. Magari riassumilo e poi dividi per il numero di livelli / variabili con una codifica a caldo per ottenere un'importanza "media".
CalZ,

2
Ci ho pensato ancora un po 'e dipende da come viene valutata l'importanza. In alcuni casi, il valore per ogni funzione è un peso relativo in cui l'intero set è pari a 1. In quel caso, penso che avrebbe senso riassumere le funzionalità one-hot. Se il punteggio per la funzione fosse più simile a un coefficiente di regressione e non fosse ponderato rispetto all'effetto netto, la media sarebbe probabilmente migliore.
CalZ,

Grazie per la risposta. Dato che sono abbastanza nuovo nell'area, ho pensato che questa fosse una cosa standard per le persone nella scienza dei dati, ma o non è quello che dovrei fare per valutare l'importanza delle caratteristiche di una colonna o questo post non ha ottenuto abbastanza visualizzazioni. In ogni caso, grazie!
user90772

1
Molte persone sostengono di guardare gli interni del modello come una scatola nera e di valutare invece le prestazioni. In alcuni casi (ad es. Reti neurali) ciò è dovuto al fatto che non è possibile esaminarlo in profondità. Per alcuni casi in cui è possibile ottenere facilmente una visione di quali funzioni sono importanti (ad es. Regressione lineare), si può facilmente essere fuorvianti (consultare: stats.stackexchange.com/questions/105114/… ). Penso che sia per questo che le persone a volte evitano di guardare all'importanza delle singole caratteristiche.
CalZ
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.