Como calcular os escores de confiança na regressão (com florestas aleatórias / XGBoost) para cada previsão em R?

11

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 confpredfunção da lavabiblioteca:

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:

gráfico mostrando pontos, previsão e intervalo 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:

  1. Para obter valores de confiança para cada previsão em algum problema de regressão?

  2. 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)

Marius
fonte
11
Veja o randomForestCIpacote 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.
generic_user

Respostas:

4

O que você está chamando de pontuação de confiança pode ser obtido a partir da incerteza nas previsões individuais (por exemplo, tomando o inverso).

Quantificar essa incerteza sempre foi possível com ensacamento e é relativamente direto em florestas aleatórias - mas essas estimativas foram tendenciosas. Wager et al. (2014) descreveram dois procedimentos para obter essas incertezas de forma mais eficiente e com menos viés. Isso foi baseado nas versões corrigidas de viés do canivete após inicialização e do canivete infinitesimal. Você pode encontrar implementações nos pacotes R rangere grf.

Mais recentemente, isso foi aprimorado usando florestas aleatórias construídas com árvores de inferência condicional. Com base em estudos de simulação (Brokamp et al. 2018), o estimador infinitesimal de canivetes parece estimar com mais precisão o erro nas previsões quando árvores de inferência condicional são usadas para construir florestas aleatórias. Isso é implementado no pacote RFinfer.


Wager, S., Hastie, T., & Efron, B. (2014). Intervalos de confiança para florestas aleatórias: o canivete e o canivete infinitesimal. O Journal of Machine Learning Research, 15 (1), 1625-1651.

São Paulo, SP, Brasil. Uma comparação dos métodos de reamostragem e particionamento recursivo em floresta aleatória para estimar a variação assintótica usando o canivete infinitesimal. Stat, 6 (1), 360-372.

mkt - Restabelecer Monica
fonte