Existe uma maneira de obter uma pontuação de confiança (também podemos chamar de valor ou probabilidade de confiança) para cada valor previsto ao usar algoritmos como Florestas Aleatórias ou Extreme Gradient Boosting (XGBoost)? Digamos que essa pontuação de confiança varie de 0 a 1 e mostre quão confiante estou em relação a uma previsão específica .
Pelo que encontrei na internet sobre confiança, geralmente é medido por intervalos. Aqui está um exemplo de intervalos de confiança calculados com confpred
função da lava
biblioteca:
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))
}
A saída do código fornece apenas intervalos de confiança:
Existe também uma biblioteca conformal
, mas também é usada para intervalos de confiança na regressão: "conformal permite o cálculo de erros de previsão na estrutura de previsão conforme: (i) valores de p. Para classificação e (ii) intervalos de confiança para regressão. "
Então, existe uma maneira:
Para obter valores de confiança para cada previsão em algum problema de regressão?
Se não houver uma maneira, seria significativo usar para cada observação como uma pontuação de confiança isso:
a distância entre os limites superior e inferior do intervalo de confiança (como no exemplo de saída acima). Portanto, nesse caso, quanto maior o intervalo de confiança, maior a incerteza (mas isso não leva em consideração onde está o valor real no intervalo)
randomForestCI
pacote de Stephan Wager e o artigo associado a Susan Athey. Observe que ele fornece apenas ICs ', mas você pode fazer um intervalo de previsão calculando a variação residual.