在使用随机森林或极端梯度提升 (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,但它也用于回归中的置信区间:“保形允许在保形预测框架中计算预测误差:(i)用于分类的 p.values,和(ii)用于回归的置信区间。 "
那么有没有办法:
要获得任何回归问题中每个预测的置信度值?
如果没有办法,将每个观察值用作置信度分数是否有意义:
置信区间上下边界之间的距离(如上面的示例输出)。因此,在这种情况下,置信区间越宽,不确定性就越大(但这没有考虑区间中的实际值)