Foresta casuale vs regressione


21

Ho eseguito un modello di regressione OLS su set di dati con 5 variabili indipendenti. Le variabili indipendenti e la variabile dipendente sono entrambe continue e correlate in modo lineare. La R Square è di circa il 99,3%. Ma quando eseguo lo stesso utilizzo della foresta casuale in R, il mio risultato è "% Var spiegato: 88,42". Perché il risultato di una foresta casuale sarebbe così inferiore alla regressione? La mia ipotesi era che la foresta casuale sarebbe stata buona almeno quanto la regressione OLS.


4
Se il tuo obiettivo è prevedere, un R-quadrato più alto potrebbe essere dovuto a un eccesso di adattamento. Prova a confrontare le previsioni RN con le previsioni di regressione utilizzando la convalida incrociata.
Manoel Galdino,

Risposte:


27

Non so esattamente cosa hai fatto, quindi il tuo codice sorgente mi aiuterebbe a indovinare di meno.

Molte foreste casuali sono essenzialmente finestre all'interno delle quali si presume che la media rappresenti il ​​sistema. È un albero CAR troppo glorificato.

Diciamo che hai un albero CAR a due foglie. I tuoi dati saranno divisi in due pile. L'output (costante) di ogni pila sarà la sua media.

Ora consente di farlo 1000 volte con sottoinsiemi casuali di dati. Avrai comunque regioni discontinue con output che sono medie. Il vincitore in una RF è il risultato più frequente. Che solo "Fuzzies" il confine tra le categorie.

Esempio di output lineare a tratti dell'albero CART:

Diciamo, ad esempio, che la nostra funzione è y = 0,5 * x + 2. Una trama simile al seguente: Figura 1

Se dovessimo modellarlo usando un singolo albero di classificazione con solo due foglie, troveremmo prima il punto di migliore divisione, divisione in quel punto, quindi approssimiamo l'output della funzione su ciascuna foglia come output medio sulla foglia.

trama con banale carrello

Se dovessimo farlo di nuovo con più foglie sull'albero CART, potremmo ottenere quanto segue: inserisci qui la descrizione dell'immagine

Perché le foreste CAR?

Puoi vedere che, nel limite delle foglie infinite, l'albero CART sarebbe un approssimatore accettabile.

Il problema è che il mondo reale è rumoroso. Ci piace pensare nei mezzi, ma al mondo piacciono sia la tendenza centrale (media) che la tendenza alla variazione (dev dev). C'è rumore

La stessa cosa che conferisce a un albero CAR la sua grande forza, la sua capacità di gestire la discontinuità, lo rende vulnerabile alla modellazione del rumore come se fosse un segnale.

Quindi Leo Breimann fece una proposta semplice ma potente: usare i metodi Ensemble per rendere robusti gli alberi di classificazione e regressione. Prende sottoinsiemi casuali (un cugino di ricampionamento bootstrap) e li usa per addestrare una foresta di alberi CAR. Quando fai una domanda alla foresta, l'intera foresta parla e la risposta più comune viene presa come risultato. Se hai a che fare con dati numerici, può essere utile considerare l'aspettativa come output.

Quindi, per la seconda trama, pensa alla modellazione usando una foresta casuale. Ogni albero avrà un sottoinsieme casuale di dati. Ciò significa che la posizione del punto di divisione "migliore" varierà da un albero all'altro. Se dovessi creare un diagramma dell'output della foresta casuale, mentre ti avvicini alla discontinuità, i primi rami indicano un salto, poi molti. Il valore medio in quella regione attraverserà un percorso sigmoideo uniforme. Il bootstrap è contorto con un gaussiano e la sfocatura gaussiana su quella funzione di passaggio diventa un sigmoide.

Linee di fondo:

Per ottenere una buona approssimazione a una funzione molto lineare sono necessari molti rami per albero.

Esistono molti "quadranti" che è possibile modificare per influire sulla risposta ed è improbabile che siano stati impostati tutti sui valori corretti.

Riferimenti:


La regressione della foresta RANDOM non viene eseguita con funzioni costanti a tratti, che è ovviamente inadatta ai dati linearmente correlati?
seanv507,

Penso che stiamo dicendo la stessa cosa. Quale costante viene utilizzata? destra.
EngrStudent - Ripristina Monica l'

Se avessi pensato che stessimo dicendo la stessa cosa, l'avrei messo come commento. Non capisco la tua risposta. La mia risposta spiega che i dati dei PO sono lineari e così male adattati da una funzione costante a tratti.
seanv507,

@ seanv507 Il vantaggio della RF è che gli alberi multipli, adatti a (sottoinsiemi casuali di) versioni perturbate dei dati, calcolano la media delle discontinuità. Il risultato è un'approssimazione migliore alla linea liscia sottostante rispetto a ciò che un singolo albero produrrebbe.
Hong Ooi,

Si tratta essenzialmente di ricampionamento bootstrap su un albero di regressione. Una delle cose che non mi piace di bootstrap è che la distribuzione uniforme conta come un precedente informativo. Il caso ideale non è un precedente non informativo?
EngrStudent - Ripristina Monica il

7

Noto che questa è una vecchia domanda, ma penso che si dovrebbe aggiungere altro. Come ha detto @Manoel Galdino nei commenti, di solito sei interessato a pronostici su dati invisibili. Ma questa domanda riguarda le prestazioni sui dati di allenamento e la domanda è: perché la foresta casuale ha prestazioni scarse sui dati di allenamento ? La risposta evidenzia un problema interessante con i classificatori insaccati che mi ha spesso causato problemi: regressione alla media.

Il problema è che i classificatori insaccati come la foresta casuale, che sono fatti prendendo campioni bootstrap dal tuo set di dati, tendono a funzionare male agli estremi. Poiché non ci sono molti dati agli estremi, tendono a essere appianati.

Più in dettaglio, ricorda che una foresta casuale per la regressione fa la media delle previsioni di un gran numero di classificatori. Se hai un singolo punto che è lontano dagli altri, molti dei classificatori non lo vedranno e questi essenzialmente faranno una previsione fuori campione, che potrebbe non essere molto buona. In effetti, queste previsioni fuori campione tenderanno a spingere la previsione per il punto dati verso la media complessiva.

Se usi un singolo albero decisionale, non avrai lo stesso problema con valori estremi, ma neanche la regressione adattata sarà molto lineare.

Ecco un'illustrazione in R. Alcuni dati sono generati in cui yè una perfetta combinazione di linee di cinque xvariabili. Quindi le previsioni vengono fatte con un modello lineare e una foresta casuale. Quindi i valori di ysui dati di allenamento vengono tracciati rispetto alle previsioni. Puoi vedere chiaramente che la foresta casuale sta andando male negli estremi perché i punti dati con valori molto grandi o molto piccoli di ysono rari.

Vedrai lo stesso modello per le previsioni sui dati invisibili quando vengono utilizzate foreste casuali per la regressione. Non sono sicuro di come evitarlo. La randomForestfunzione in R ha un'opzione di correzione del bias grezzo corr.biasche utilizza la regressione lineare sul bias, ma in realtà non funziona.

I suggerimenti sono benvenuti!

beta <- runif(5)
x <- matrix(rnorm(500), nc=5)
y <- drop(x %*% beta)
dat <- data.frame(y=y, x1=x[,1], x2=x[,2], x3=x[,3], x4=x[,4], x5=x[,5])
model1 <- lm(y~., data=dat)
model2 <- randomForest(y ~., data=dat)
pred1 <- predict(model1 ,dat)
pred2 <- predict(model2 ,dat)
plot(y, pred1)
points(y, pred2, col="blue")

inserisci qui la descrizione dell'immagine


Sono d'accordo con la tua osservazione, ma sono diventato un fan della regressione RF verso la media in aree con pochi punti dati. Bene, se si fosse sicuri di trovare una bella struttura lineare complessiva fino al limite del set di addestramento supportato solo da pochi punti dati, fare semplicemente una correzione lineare e fare in modo che RF si occupi dei residui.
Soren Havelund Welling,

2
Grazie per il commento! Ho avuto una brutta esperienza in cui stava dando previsioni che erano molto brutte e che mi stavano facendo apparire male. Ma forse non c'è modo di ottenere previsioni più precise per i punti limite senza aumentare la varianza.
Flounderer,

Un ulteriore commento anni dopo, ho notato che la RF tende a funzionare male in tutti i casi in cui vi è un leggero divario nei dati. Naturalmente, ci sono spesso meno dati agli estremi di un set di dati, ma di tanto in tanto potresti finire con un gap proprio al centro. RF può creare un pasticcio corretto di un set di dati con eventuali lacune in esso.
SeldomSeenSlim,

2

La foresta casuale cerca di trovare località tra molte funzionalità e molti punti dati. Suddivide le caratteristiche e le fornisce ad alberi diversi, poiché il numero di funzioni è basso e il risultato complessivo non è buono come la regressione logistica. La foresta casuale può gestire variabili numeriche e categoriche ma non è brava a gestire i valori mancanti.


0

Penso che Random Forest (RF) sia un buon strumento quando la forma funzionale della relazione tra Xs e y è complicata (a causa delle relazioni non lineari e dell'effetto di interazione). RF classifica Xs in base al miglior punto di interruzione (in termini di SSE minimo) e non applica le informazioni del ricercatore sulla forma funzionale della relazione. D'altra parte, la regressione OLS utilizza queste informazioni. Nel tuo esempio, sai qual è esattamente il tipo di relazione tra Xs e y e usi tutte queste informazioni nel tuo modello di regressione ma RF non usa queste informazioni.


-2

Per le basi, la regressione funziona bene su variabili continue e Foresta casuale su variabili discrete.

È necessario fornire maggiori dettagli sul problema e sulla natura delle variabili per essere più specifici ...


Tutte le variabili restituiscono giornalmente le scorte (serie temporali finanziarie) ...
user28906

3
"La regressione funziona bene su variabili continue e Foresta casuale su variabili discrete.": Questo non è vero in generale. Ci sono distinzioni nell'inferenza e nella predizione e anche con la predizione ci sono casi in cui la regressione sarebbe preferita alla RF.
AdamO,
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.