Comment calculer les scores de confiance en régression (avec forêts aléatoires / XGBoost) pour chaque prédiction dans R?

11

Existe-t-il un moyen d'obtenir un score de confiance (on peut également l'appeler valeur de confiance ou probabilité) pour chaque valeur prédite lors de l'utilisation d'algorithmes comme Random Forests ou Extreme Gradient Boosting (XGBoost)? Supposons que ce score de confiance varie de 0 à 1 et montre à quel point je suis confiant pour une prédiction particulière .

D'après ce que j'ai trouvé sur Internet sur la confiance, elle est généralement mesurée par intervalles. Voici un exemple d'intervalles de confiance calculés avec une confpredfonction de la lavabibliothèque:

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))
}

La sortie du code ne donne que des intervalles de confiance:

graphique montrant les points, la prédiction et l'intervalle de confiance

Il existe également une bibliothèque conformal, mais elle est également utilisée pour les intervalles de confiance dans la régression: "conforme permet le calcul des erreurs de prédiction dans le cadre de prédiction conforme: (i) valeurs p. Pour la classification et (ii) intervalles de confiance pour la régression. "

Existe-t-il un moyen:

  1. Pour obtenir des valeurs de confiance pour chaque prédiction dans des problèmes de régression?

  2. S'il n'y a pas de moyen, serait-il utile d'utiliser pour chaque observation un score de confiance:

    la distance entre les limites supérieure et inférieure de l'intervalle de confiance (comme dans l'exemple de sortie ci-dessus). Donc, dans ce cas, plus l'intervalle de confiance est large, plus il y a d'incertitude (mais cela ne tient pas compte de la valeur réelle dans l'intervalle)

Marius
la source
1
Regardez dans le randomForestCIpackage de Stephan Wager, et le papier associé avec Susan Athey. Notez qu'il fournit uniquement des CI 'mais vous pouvez en faire un intervalle de prédiction en calculant la variance résiduelle.
generic_user

Réponses:

4

Ce que vous appelez un score de confiance peut être obtenu à partir de l'incertitude des prévisions individuelles (par exemple en prenant l'inverse de celui-ci).

La quantification de cette incertitude a toujours été possible avec l'ensachage et est relativement simple dans les forêts aléatoires - mais ces estimations étaient biaisées. Wager et al. (2014) ont décrit deux procédures pour surmonter ces incertitudes plus efficacement et avec moins de biais. Ceci était basé sur des versions à correction de biais du jackknife après bootstrap et du jackknife infinitésimal. Vous pouvez trouver des implémentations dans les packages R rangeret grf.

Plus récemment, cela a été amélioré en utilisant des forêts aléatoires construites avec des arbres d'inférence conditionnelle. Sur la base d'études de simulation (Brokamp et al.2018), l'estimateur jackknife infinitésimal semble estimer plus précisément l'erreur dans les prévisions lorsque des arbres d'inférence conditionnelle sont utilisés pour construire les forêts aléatoires. Ceci est implémenté dans le package RFinfer.


Wager, S., Hastie, T., et Efron, B. (2014). Intervalles de confiance pour les forêts aléatoires: le jackknife et l'infinitesimal jackknife. The Journal of Machine Learning Research, 15 (1), 1625-1651.

Brokamp, ​​C., Rao, MB, Ryan, P. et Jandarov, R. (2017). Une comparaison des méthodes de rééchantillonnage et de partitionnement récursif dans la forêt aléatoire pour estimer la variance asymptotique en utilisant le jackknife infinitésimal. Stat, 6 (1), 360-372.

mkt - Réintégrer Monica
la source