Come calcolare i punteggi di confidenza nella regressione (con foreste casuali / XGBoost) per ciascuna previsione in R?


11

C'è un modo per ottenere un punteggio di confidenza (possiamo chiamarlo anche valore di confidenza o probabilità) per ciascun valore previsto quando si utilizzano algoritmi come Random Forests o Extreme Gradient Boosting (XGBoost)? Supponiamo che questo punteggio di confidenza varierebbe da 0 a 1 e mostriamo quanto sono fiducioso su una previsione specifica .

Da quello che ho trovato su Internet sulla fiducia, di solito viene misurato a intervalli. Ecco un esempio di intervalli di confidenza calcolati con la confpredfunzione della lavalibreria:

library(lava)
set.seed(123)
n     <- 200
x     <- seq(0,6,length.out=n)
delta <- 3
ss    <- exp(-1+1.5*cos((x-delta)))
ee    <- rnorm(n,sd=ss)
y     <- (x-delta)+3*cos(x+4.5-delta)+ee
d     <- data.frame(y=y,x=x)
newd  <- data.frame(x=seq(0,6,length.out=50))
cc    <- confpred(lm(y~poly(x,3),d),data=d,newdata=newd)
if (interactive()) { ##'
  plot(y~x,pch=16,col=lava::Col("black"), ylim=c(-10,15),xlab="X",ylab="Y")
  with(cc, lava::confband(newd$x, lwr, upr, fit,  lwd=3, polygon=T, 
                          col=Col("blue"), border=F))
}

L'output del codice fornisce solo intervalli di confidenza:

grafico che mostra i punti, la previsione e l'intervallo di confidenza

Esiste anche una libreria conformal, ma I viene anche utilizzata per intervalli di confidenza nella regressione: "conforme consente il calcolo degli errori di previsione nel quadro di previsione conforme: (i) p. Valori per la classificazione e (ii) intervalli di confidenza per la regressione. "

Quindi c'è un modo:

  1. Per ottenere valori di confidenza per ciascuna previsione in caso di problemi di regressione?

  2. Se non esiste un modo, sarebbe utile utilizzare per ogni osservazione come punteggio di confidenza questo:

    la distanza tra i limiti superiore e inferiore dell'intervallo di confidenza (come nell'esempio sopra riportato). Quindi, in questo caso, più ampio è l'intervallo di confidenza, maggiore è l'incertezza (ma questo non tiene conto di dove nell'intervallo è il valore effettivo)


1
Guarda nel randomForestCIpacchetto di Stephan Wager e il documento associato a Susan Athey. Nota che fornisce solo elementi della configurazione, ma puoi fare un intervallo di previsione calcolando la varianza residua.
generic_user

Risposte:


4

Quello a cui ti riferisci come punteggio di confidenza può essere ottenuto dall'incertezza nelle previsioni individuali (ad esempio prendendo l'inverso di esso).

Quantificare questa incertezza era sempre possibile con l'insaccamento ed è relativamente semplice nelle foreste casuali, ma queste stime erano distorte. Wager et al. (2014) hanno descritto due procedure per superare queste incertezze in modo più efficiente e con meno distorsioni. Questo si basava su versioni con correzione del bias del jackknife-after-bootstrap e del jackknife infinitesimale. Puoi trovare implementazioni nei pacchetti R rangere grf.

Più recentemente, questo è stato migliorato utilizzando foreste casuali costruite con alberi di inferenza condizionati. Sulla base di studi di simulazione (Brokamp et al.2018), lo stimatore a coltello infinitesimale sembra stimare in modo più accurato l'errore nelle previsioni quando gli alberi di inferenza condizionale vengono utilizzati per costruire foreste casuali. Questo è implementato nel pacchetto RFinfer.


Wager, S., Hastie, T., & Efron, B. (2014). Intervalli di confidenza per foreste casuali: il coltellino e il coltellino infinitesimale. The Journal of Machine Learning Research, 15 (1), 1625-1651.

Brokamp, ​​C., Rao, MB, Ryan, P., e Jandarov, R. (2017). Un confronto tra ricampionamento e metodi di partizionamento ricorsivo nella foresta casuale per stimare la varianza asintotica usando il coltello a serramanico infinitesimale. Stat, 6 (1), 360-372.

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.