caret包应用之四:模型预测与检验

原文地址:http://xccds.github.io/2011/09/caret_9105.html/


模型建立好后,我们可以利用predict函数进行预测,例如预测检测样本的前五个

predict(gbmFit1, newdata = testx)[1:5]
为了比较不同的模型,还可用装袋决策树建立第二个模型,命名为gbmFit2
gbmFit2= train(trainx, trainy,method = "treebag",trControl = fitControl)
models = list(gbmFit1, gbmFit2)
另一种得到预测结果的方法是使用extractPrediction函数,得到的部分结果如下显示

predValues = extractPrediction(models,testX = testx, testY = testy)
head(predValues)

     obs     pred model dataType  object
1 Active Active gbm Training Object1
2 Active Active gbm Training Object1
3 Active Inactive gbm Training Object1
4 Active Active gbm Training Object1
5 Active Active gbm Training Object1 
6 Active Active gbm Training Object1

从中可提取检验样本的预测结果
testValues = subset(predValues, dataType == "Test")
如果要得到预测概率,则使用extractProb函数
probValues = extractProb(models,testX = testx, testY = testy)
testProbs = subset(probValues, dataType == "Test")
对于分类问题的效能检验,最重要的是观察预测结果的混淆矩阵
Pred1 = subset(testValues, model == "gbm")
Pred2 = subset(testValues, model == "treebag")
confusionMatrix(Pred1 pred,Pred1 obs)
confusionMatrix(Pred2 pred,Pred2 obs)
结果如下,可见第一个模型在准确率要比第二个模型略好一些

          Reference
Prediction Active Inactive
Active 65 12
Inactive 9 45

Accuracy : 0.8397

 
Reference 

Prediction Active Inactive
Active 63 12
Inactive 11 45

Accuracy : 0.8244

最后是利用ROCR包来绘制ROC图
prob1 = subset(testProbs, model == "gbm")
prob2 = subset(testProbs, model == "treebag")
library(ROCR)
prob1 lable=ifelse(prob1 obs=='Active',yes=1,0)
pred1 = prediction(prob1 Active,prob1 lable)
perf1 = performance(pred1, measure="tpr", x.measure="fpr" )
plot( perf1 )

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值