R语言利用caret包比较模型性能差异

来源:互联网 发布:720云全景制作软件 编辑:程序博客网 时间:2024/05/22 18:38

说明

我们可以通过重采样的方法得对每一个匹配模型的统计信息,包括ROC曲线,灵敏度与特异度,然后基于这些统计信息来比较不同模型的性能差异。

操作

利用上节的信息,准备好glm分类模型,svm分类模型,rpart分类模型,并存放在glm.model,svm.model,rpart.model。

cv.values = resamples(list(glm = glm.model,svm =svm.model,rpart = rpart.model))> summary(cv.values)Call:summary.resamples(object = cv.values)Models: glm, svm, rpart Number of resamples: 30 ROC            Min.   1st Qu.    Median      Mean   3rd Qu.      Max. NA'sglm   0.7597790 0.7927740 0.8040455 0.8106454 0.8347961 0.8760824    0svm   0.8191998 0.8786439 0.8945208 0.8947360 0.9196775 0.9562556    0rpart 0.6064540 0.7150320 0.7608241 0.7556544 0.8086731 0.8554750    0Sens             Min.   1st Qu.    Median      Mean   3rd Qu.      Max. NA'sglm   0.08823529 0.1764706 0.2058824 0.2124930 0.2516807 0.3235294    0svm   0.44117647 0.5294118 0.5882353 0.5956863 0.6470588 0.7941176    0rpart 0.20000000 0.4117647 0.4705882 0.4787955 0.5514706 0.7352941    0Spec            Min.   1st Qu.    Median      Mean   3rd Qu.      Max. NA'sglm   0.9393939 0.9645119 0.9721581 0.9702721 0.9796954 0.9898477    0svm   0.9494949 0.9695431 0.9771574 0.9755004 0.9847716 0.9898990    0rpart 0.9492386 0.9746193 0.9796954 0.9780359 0.9848485 1.0000000    0

使用dotplot函数绘制重采样在ROC曲线度量中的结果:

dotplot(cv.values,metric = "ROC")

重采样结果在ROC中的点图
使用箱线图绘制重采样结果:

bwplot(cv.values,layout=c(3,1))

重采样结果箱线图
重采样结果箱线图

说明

我们使用resample函数生成各个模型的统计信息,再调用summary函数输出三个模型在ROC、灵敏度及特异性上的统计信息。使用dotplot方法处理重采样结果来观测不同模型ROC差异,最后,采用箱线图在同一张图上对ROC、灵敏度及特异方面的差别进行比较。

原创粉丝点击