Foresta casuale: cosa succede se so che una variabile è importante


12

La mia comprensione è che la foresta casuale sceglie casualmente le variabili mtry per costruire ogni albero decisionale. Quindi, se mtry = ncol / 3, ogni variabile verrà utilizzata in media in 1/3 degli alberi. E 2/3 degli alberi non li useranno.

Ma cosa succede se so che una singola variabile è probabilmente molto importante, sarebbe bene aumentare manualmente la probabilità che questa variabile venga raccolta in ogni albero? È possibile con il pacchetto randomForest in R?

Risposte:


6

Nota che mtryè il numero di variabili campionate casualmente come candidati in ciascuna divisione. E da questo candidato viene scelto il migliore per eseguire la scissione. Pertanto la proporzione che hai citato non è completamente soddisfatta. Le variabili più importanti appaiono più frequentemente e meno importanti, meno frequentemente. Quindi, se la variabile è davvero molto importante, allora c'è una grande probabilità che venga raccolta in un albero e non hai bisogno di correzione manuale. Ma a volte (raramente) è necessario forzare la presenza di alcune variabili (indipendentemente dalla sua possibile importanza) nella regressione. Per quanto ne so, la foresta casuale del pacchetto R non supporta tale possibilità. Ma se questa variabile non ha intercorrelazione con altre, puoi fare una regressione ordinaria con questa variabile come termine singolo e quindi eseguire una regressione casuale della foresta sui residui di questa regressione ordinaria. Se vuoi ancora correggere la possibilità di scegliere variabili prespecificate, allora la modifica del codice sorgente con la compilazione successiva è la tua opzione.


2
Se hai bisogno di n alberi per ottenere un'approssimazione decente per la tua funzione target, ma stai cercando un'importanza variabile, puoi impostare qualcosa come 5 * n o 10 * n alberi nella foresta. Convergeranno di più, non su "errore di adattamento" ma su cambiamenti di importanza variabile.
EngrStudent,

5

Da giugno 2015, un nuovo promettente algoritmo RF su R-CRAN chiamato 'ranger' ha questa caratteristica. È ottimizzato con, split.select.weights : "Vettore numerico con pesi compresi tra 0 e 1, che rappresenta la probabilità di selezionare le variabili per la divisione."

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.