Random Forests 또는 Extreme Gradient Boosting (XGBoost)과 같은 알고리즘을 사용할 때 각 예측 값에 대한 신뢰 점수를 얻는 방법이 있습니까? 이 신뢰 점수의 범위는 0에서 1까지이며 특정 예측에 대해 내가 얼마나 확신하는지 보여 줍니다 .
인터넷에서 신뢰에 대해 찾은 것에서 일반적으로 간격으로 측정됩니다. 다음은 라이브러리의 confpred
함수를 사용하여 계산 된 신뢰 구간의 예입니다 lava
.
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))
}
코드 출력은 신뢰 구간 만 제공합니다.
라이브러리도 conformal
있지만 회귀 분석의 신뢰 구간에도 사용됩니다. "적합성 (conformal)은 등각 예측 프레임 워크에서 예측 오류의 계산을 허용합니다. (i) 분류 값 p. "
방법이 있습니까?
회귀 문제에서 각 예측에 대한 신뢰도 값을 얻으려면?
방법이 없다면 각 관측치에 대해 신뢰 점수로 사용하는 것이 의미가 있습니다.
신뢰 구간의 상한과 하한 사이의 거리 (위의 예제 출력에서와 같이) 따라서이 경우 신뢰 구간이 클수록 불확실성이 커집니다 (그러나 구간 내에서 실제 값이 어디에 있는지 고려하지 않음)
randomForestCI
Stephan Wager 의 패키지와 Susan Athey와 관련된 문서를 살펴보십시오 . CI 만 제공하지만 잔차 분산을 계산하여 예측 간격을 만들 수 있습니다.