PCA su dati di testo ad alta dimensione prima della classificazione casuale delle foreste?


13

Ha senso fare PCA prima di effettuare una classificazione casuale delle foreste?

Ho a che fare con dati di testo ad alta dimensione e voglio fare una riduzione delle caratteristiche per evitare la maledizione della dimensionalità, ma le foreste casuali non hanno già una sorta di riduzione della dimensione?


7
L'algoritmo RF non soffre in realtà di un numero elevato di predittori poiché richiede solo un sottoinsieme casuale di essi (il cosiddetto mtryparametro) per costruire ciascun albero. Esiste anche una tecnica di eliminazione delle caratteristiche ricorsiva costruita sull'algoritmo RF (vedere il pacchetto varSelRF R e riferimenti in esso). Tuttavia, è certamente possibile aggiungere uno schema iniziale di riduzione dei dati, sebbene dovrebbe far parte del processo di convalida incrociata. Quindi la domanda è: vuoi inserire una combinazione lineare delle tue caratteristiche in RF?
chl

Quante caratteristiche / dimensioni, F? > 1K? > 10K? Le funzionalità sono discrete o continue, ad esempio termine-frequenza, tfidf, metriche di somiglianza, vettori di parole o cosa? Il tempo di esecuzione della PCA è quadratico rispetto a F.
smci,


Risposte:


12

Leo Brieman ha scritto che "la dimensionalità può essere una benedizione". In generale, le foreste casuali possono essere eseguite su insiemi di dati di grandi dimensioni senza problemi. Quanto sono grandi i tuoi dati? Campi diversi gestiscono le cose in modi diversi a seconda della conoscenza della materia. Ad esempio, negli studi di espressione genica i geni vengono spesso scartati in base alla bassa varianza (nessuna sbirciatina al risultato) in un processo a volte chiamato filtro non specifico. Questo può aiutare con il tempo di esecuzione su foreste casuali. Ma non è richiesto

Seguendo l'esempio dell'espressione genica, a volte gli analisti usano i punteggi PCA per rappresentare le misurazioni dell'espressione genica. L'idea è di sostituire profili simili con un punteggio potenzialmente meno disordinato. Le foreste casuali possono essere eseguite sia sulle variabili originali sia sui punteggi PCA (un surrogato delle variabili). Alcuni hanno riportato risultati migliori con questo approccio, ma non ci sono buoni paragoni con le mie conoscenze.

In breve, non è necessario eseguire PCA prima di eseguire RF. Ma tu puoi. L'interpretazione potrebbe cambiare a seconda dei tuoi obiettivi. Se tutto ciò che vuoi fare è prevedere, l'interpretazione potrebbe essere meno importante.


Grazie per la risposta. La velocità è un problema, soprattutto perché ho diverse migliaia di etichette possibili in un problema con più etichette. L'applicazione sta classificando un corpus di dati testuali tratti dalla descrizione di determinati eventi sia di Twitter che degli analisti. Sto usando la ponderazione tf-idf e il modello bag of words.
Maus,

8

Vorrei aggiungere i miei due centesimi a questo dato che pensavo che le risposte esistenti fossero incomplete.

L'esecuzione di PCA può essere particolarmente utile prima di allenare una foresta casuale (o LightGBM o qualsiasi altro metodo basato sull'albero decisionale) per un motivo particolare che ho illustrato nella figura seguente.

Fondamentalmente, può rendere molto più semplice il processo di ricerca del limite di decisione perfetto allineando il set di allenamento lungo le direzioni con la massima varianza.

Gli alberi decisionali sono sensibili alla rotazione dei dati, poiché il confine decisionale che creano è sempre verticale / orizzontale (cioè perpendicolare a uno degli assi). Pertanto, se i tuoi dati assomigliano all'immagine a sinistra, ci vorrà un albero molto più grande per separare questi due cluster (in questo caso si tratta di un albero a 8 strati). Ma se allinea i tuoi dati lungo i suoi componenti principali (come nella foto a destra), puoi ottenere una separazione perfetta con un solo livello!

Naturalmente, non tutti i set di dati sono distribuiti in questo modo, quindi PCA potrebbe non essere sempre utile, ma è comunque utile provarlo e vedere se lo fa. E solo un promemoria, non dimenticare di normalizzare il tuo set di dati in base alla varianza dell'unità prima di eseguire PCA!

PS: Per quanto riguarda la riduzione della dimensionalità, concordo con il resto della gente in quanto di solito non è un grosso problema per le foreste casuali come per altri algoritmi. Tuttavia, potrebbe aiutarti ad accelerare un po 'l'allenamento. Il tempo di addestramento dell'albero decisionale è O (n m log (m)), dove n è il numero di istanze di addestramento, m - numero di dimensioni. E sebbene le foreste casuali scelgano casualmente un sottoinsieme di dimensioni per ciascun albero su cui addestrare, la frazione inferiore del numero totale di dimensioni che raccogli, più alberi devi allenarti per ottenere buone prestazioni.

inserisci qui la descrizione dell'immagine


1

La PCA prima della foresta casuale può essere utile non per la riduzione della dimensionalità ma per fornire ai dati una forma in cui la foresta casuale può funzionare meglio.

Sono abbastanza sicuro che in generale se trasformi i tuoi dati con PCA mantenendo la stessa dimensionalità dei dati originali avrai una migliore classificazione con foresta casuale


Il runtime PCA è quadratico rispetto al numero di funzionalità F, quindi non è sempre economico.
smci,

per perfomance intendevo perfomance di predizione. Non mi riferivo al tempo di calcolo
Donbeo,

2
Potresti aggiungere qualche giustificazione alle tue affermazioni? Sembra che PCA non migliorerà sempre i risultati. Ad esempio, quando il limite di decisione è invariante alle rotazioni (ad esempio un cerchio), l'esecuzione di PCA ridimensionerà e ruoterà i dati (e quindi il cerchio), ma RF dovrà comunque approssimare il confine ellittico con molte divisioni rettangolari.
Sycorax dice di reintegrare Monica il
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.