Esiste un'implementazione di Random Forest che funziona bene con dati molto sparsi?


23

Esiste un'implementazione della foresta casuale R che funziona bene con dati molto sparsi? Ho migliaia o milioni di variabili di input booleane, ma solo centinaia o giù di lì saranno VERE per ogni dato esempio.

Sono relativamente nuovo su R e ho notato che esiste un pacchetto "Matrix" per gestire dati sparsi, ma il pacchetto standard "randomForest" non sembra riconoscere questo tipo di dati. Se è importante, i dati di input verranno prodotti al di fuori di R e importati.

Qualche consiglio? Posso anche esaminare l'utilizzo di Weka, Mahout o altri pacchetti.


Per quanto ne so, non ci sono pacchetti R per alberi decisionali sparsi. Credo che ci siano algoritmi là fuori per alberi decisionali sparsi, che, se implementati in R, potrebbero essere usati per costruire foreste casuali.
Zach,

2
Ecco un buon candidato: cs.cornell.edu/~nk/fest . Se puoi esportare i tuoi dati in formato libsvm, puoi usare questo programma da riga di comando. Mi piacerebbe vedere una porta R ...
Zach

Zach - il collegamento sembra essere morto.
Benoit_Plante,

2
@ cmoibenlepro il link è lowrank.net/nikos/fest
seanv507

Link ha funzionato bene per me
David Marx,

Risposte:


13

No, non esiste un'implementazione RF per dati sparsi in R. Parzialmente perché RF non si adatta molto bene a questo tipo di problema: l'inserimento di tag e la selezione non ottimale delle suddivisioni possono sprecare la maggior parte delle informazioni del modello su aree a zero zero.

Prova un metodo del kernel o pensa meglio a convertire i tuoi dati in una rappresentazione più rigida con alcuni descrittori (o usa un metodo di riduzione della dimensionalità).


La risposta di Hack-R sottolinea il pacchetto xgboost, che è perfettamente in grado di fare foreste casuali con matrici sparse.
Edgar,

7

In realtà, , c'è .

È xgboost, che è fatto per aumentare il gradiente eXtreme. Questo è attualmente il pacchetto di scelta per l'esecuzione di modelli con matrici sparse in R per molte persone, e come spiega il link sopra, puoi usarlo per Random Forest modificando i parametri !


4

Il pacchetto R "Ranger" dovrebbe fare.

https://cran.r-project.org/web/packages/ranger/ranger.pdf

Una rapida implementazione di foreste casuali, particolarmente adatta per dati ad alta dimensione.

Rispetto a randomForest, questo pacchetto è probabilmente l'implementazione RF più veloce che abbia mai visto. Tratta le variabili categoriali in modo nativo.


-4

C'è un blog chiamato Quick-R che dovrebbe aiutarti con le basi di R.

R funziona con i pacchetti. Ogni pacchetto può fare qualcosa di diverso. C'è questo pacchetto chiamato "randomForests" che dovrebbe essere proprio quello che stai chiedendo.

Tieni presente che i dati sparsi genereranno problemi indipendentemente dal metodo applicato. Per quanto ne so, è un problema molto aperto e il data mining in generale è più un'arte che una scienza. Le foreste casuali fanno molto bene nel complesso ma non sono sempre il metodo migliore. Potresti provare una rete neurale con molti livelli, che potrebbe aiutare.


4
No, randomForest è notoriamente male con dati scarsi, quindi l'intera domanda. Il parametro classwt non è implementato correttamente in randomForest. Il sovracampionamento manuale è un approccio, ma incasina l'errore OOB. A proposito, il pacchetto non si chiama 'randomForests'.
smci,

1
Le parti di ciò che sono vere non sono risposte alla domanda.
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.