gpt4 book ai didi

r - 在插入符交叉验证期间计算模型校准?

转载 作者:行者123 更新时间:2023-11-30 08:38:46 25 4
gpt4 key购买 nike

第一次在这里发帖,所以对菜鸟错误表示歉意

我使用 R 中的插入符包进行分类。我正在使用训练集上的重复 10 倍交叉验证来拟合一些模型(GBM、线性 SVM、NB、LDA)。使用自定义的 trainControl,caret 甚至为我提供了一系列模型性能指标,例如 ROC、Spec/sens、Kappa、测试折叠的准确性。这真的太棒了。我还想要一个指标:模型校准的某种衡量标准。

我注意到有一个 function在插入符号中,可以创建校准图来估计跨部分数据的模型性能的一致性。在交叉验证模型构建过程中是否可以让插入符为每个测试折叠计算此值?或者它只能应用于我们正在预测的一些新的保留数据?

对于某些上下文,目前我有这样的事情:

fitControl <- trainControl(method = "repeatedcv", repeats=2, number = 10, classProbs = TRUE, summaryFunction = custom.summary)
gbmGrid <- expand.grid(.interaction.depth = c(1,2,3),.n.trees = seq(100,800,by=100),.shrinkage = c(0.01))
gbmModel <- train(y= train_target, x = data.frame(t_train_predictors),
method = "gbm",
trControl = fitControl,
tuneGrid = gbmGrid,
verbose = FALSE)

如果有帮助的话,我正在使用大约 25 个数字预测变量和 N=2,200,预测二类因子。

提前非常感谢您的任何帮助/建议。亚当

最佳答案

校准函数会获取您提供的任何数据。您可以从 train 子对象 pred 获取重采样值:

> set.seed(1)
> dat <- twoClassSim(2000)
>
> set.seed(2)
> mod <- train(Class ~ ., data = dat,
+ method = "lda",
+ trControl = trainControl(savePredictions = TRUE,
+ classProbs = TRUE))
>
> str(mod$pred)
'data.frame': 18413 obs. of 7 variables:
$ pred : Factor w/ 2 levels "Class1","Class2": 1 2 2 1 1 2 1 1 2 1 ...
$ obs : Factor w/ 2 levels "Class1","Class2": 1 2 2 1 1 2 1 1 2 2 ...
$ Class1 : num 0.631 0.018 0.138 0.686 0.926 ...
$ Class2 : num 0.369 0.982 0.8616 0.3139 0.0744 ...
$ rowIndex : int 1 3 4 10 12 13 18 22 25 27 ...
$ parameter: Factor w/ 1 level "none": 1 1 1 1 1 1 1 1 1 1 ...
$ Resample : chr "Resample01" "Resample01" "Resample01" "Resample01" ...

然后你可以使用:

> cal <- calibration(obs ~ Class1, data = mod$pred)
> xyplot(cal)

请记住,使用许多重采样方法,单个训练集实例将被保留多次:

> table(table(mod$pred$rowIndex))

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
2 11 30 77 135 209 332 314 307 231 185 93 48 16 6 4

如果您愿意,您可以平均每个 rowIndex 的类概率。

最大

关于r - 在插入符交叉验证期间计算模型校准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28357390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com