使用随机森林或极端梯度增强(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。值,以及(ii)回归的置信区间。 ”
有没有办法:
要获得任何回归问题中每个预测的置信度值?
如果没有办法,那么将每个观察结果用作置信度分数是否有意义:
置信区间上下边界之间的距离(如上述示例输出中所示)。因此,在这种情况下,置信区间越宽,不确定性就越大(但这没有考虑区间中的实际值)
randomForestCI
Stephan Wager 的包装,以及Susan Athey的相关论文。请注意,它仅提供配置项”,但您可以通过计算残差方差从中得出一个预测间隔。