r语言 - 为什么GBM cv.拟合值(使用伯努利分布后)不在0和1之间?



我估计一个GBM模型具有5倍交叉验证。结果为二进制(0,1),使用伯努利分布。我想使用交叉验证的预测值。然而,当我看简历的时候。模型的拟合值不在0 ~ 1之间。

'gbm'包指南对cv. fits有如下说明:如果进行了交叉验证,则交叉验证预测的值在线性预测器的尺度。即第i个CV-fold的拟合值,为该模型已经在所有其他折叠中的数据上进行了训练。">

我的代码是:
gbm.fit <- gbm(
lie ~ ., data=datatrain,
distribution="bernoulli",
n.trees = 300,
shrinkage = best_shrinkage,
interaction.depth = best_depth,
n.minobsinnode = best_obs,
bag.fraction = best_subsample,
cv.folds = 5,
n.cores = NULL, # will use all cores by default
verbose = TRUE
)

变量lie为0或1。

提取gbm.fit简历美元。拟合的产量值:[1] 0.1565624979 0.1943624501 0.1137481303 0.1574121717 -0.5128581783 -0.0056283070…

是否有一个可以指定的选项,使得cv。拟合值介于0和1之间?为什么它们可以是负的并且大于1?

我在github上发布了这个问题,gbm-developers, Greg Ridgeway提供了以下(非常有用的)答案:

对于伯努利,默认的拟合值在对数赔率尺度上,log(p/(1-p))。您可以将它们转换为概率为1/(1+exp(-predictedvalue))或使用type="response">

的predict()函数https://www.rdocumentation.org/packages/gbm/versions/2.1.8/topics/predict.gbm

Greg

最新更新