关于进行K折交叉验证的R中的Caret包

时间:2019-08-10 01:37:03

标签: r cross-validation r-caret

我使用R中的插入符号包拟合了逻辑回归模型(使用ISLR包中的Smarket数据集)。然后,我使用(总体测试错误)K倍交叉验证(K = 5)计算了总的未分类错误。

require(ISLR)
require(caret)
fitControl <- trainControl(method = "cv",number = 5)
mod_fit <- train(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Lag5 + Volume,
                 data=Smarket, method="glm",trControl = fitControlcv)

Generalized Linear Model 

1250 samples
   6 predictor
   2 classes: 'Down', 'Up' 

No pre-processing
Resampling: Leave-One-Out Cross-Validation 
Summary of sample sizes: 1249, 1249, 1249, 1249, 1249, 1249, ... 
Resampling results:

  Accuracy  Kappa      
  0.4976    -0.02588095

从上述输出中,我能够计算总的未分类错误,因为,

总错过分类= 1-准确性。

是否还可以使用K折叠交叉验证从插入符号包中提取敏感性和特异性(特定类错误)?

通过创建用户定义的函数(例如:https://youtu.be/AFg2MvhFeho

)进行创建,我能够计算出K折交叉验证中的敏感性和特异性。

但是我想知道是否可以使用插入符号package轻松完成。

谢谢

2 个答案:

答案 0 :(得分:1)

可以通过以下方式将观测值和预测值交叉列表化来完成

table((mod_fit$pred)$obs,(mod_fit$pred)$pred)
      Down  Up
  Down  125 477
  Up    151 497

如此

overall missclassification = (125+497)/250 = 0.4976

sensitivity =  497/(151+497) = 0.7770 

答案 1 :(得分:0)

您尝试过使用

confusionMatrix(data = predictions, reference = observations)

应该给您您正在寻找的东西以及更多。您还可以查看更多详细信息here

相关问题