7 votes

comment calculer le niveau de confiance pour un modèle de régression de forêt aléatoire en R

J'utilise randomForest en R, dans le but de prédire les distances entre les protéines (modèle de régression en RF) "pour une modélisation de l'homologie" et j'ai obtenu d'assez bons résultats. Cependant, j'ai besoin d'un niveau de confiance pour classer mes valeurs prédites et filtrer les mauvais modèles. Je me demande donc s'il est possible de calculer un tel niveau de confiance, ou tout autre moyen de mesurer la certitude des prédictions ? Toute suggestion ou recommandation est fortement appréciée

0voto

StupidWolf Points 34348

En suivant la méthode jackknife mise en évidence dans ce papier pour obtenir l'erreur standard, vous pouvez utiliser une implémentation dans le paquetage ranger :

library(ranger)
library(mlbench)
data(BostonHousing)

mdl = ranger(medv ~ .,data=BostonHousing[1:400,],keep.inbag = TRUE)

pred = predict(mdl,BostonHousing[401:nrow(BostonHousing),],type="se")

 head(cbind(pred$predictions,pred$se ))
          [,1]     [,2]
[1,] 10.673356 1.107839
[2,] 11.390374 1.102217
[3,] 12.760511 1.126945
[4,] 10.458128 1.100246
[5,] 10.720076 1.084376
[6,]  9.914648 1.102000

L'intervalle de confiance peut être estimé à 1,96*se. Il y a aussi un nouveau paquetage forestError disponible qui peut travailler sur les objets randomForest :

library(randomForest)
library(forestError)
mdl = randomForest(medv ~ .,data=BostonHousing[1:400,],keep.inbag=TRUE)

err = quantForestError(mdl,BostonHousing[1:400,],BostonHousing[401:nrow(BostonHousing),])

head(err$estimates)
       pred     mspe       bias lower_0.05 upper_0.05
1 10.649734 15.70943 -1.5336411   2.935949   12.59486
2 11.611078 15.16339 -1.4436056   3.897293   13.55621
3 12.603938 20.92701 -0.9590869   4.890153   22.32699
4 10.650549 12.42555 -1.4188440   3.941648   12.49029
5 10.414707 29.08155 -1.1438267   2.700922   31.42272
6  9.720305 19.63286 -1.3469671   2.006520   16.43220

Vous pouvez vous référer à ce papier pour la méthode effectivement utilisée,

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X