在数据分析中经常会对不同的模型做判断

一、混淆矩阵法

作用:一种比较简单的模型验证方法,可算出不同模型的预测精度

将模型的预测值与实际值组合成一个矩阵,正例一般是我们要预测的目标。真正例就是预测为正例且实际也是正例(预测正确);假反例是实际是正例但模型错误预测成反例(即预测错误);假正例是预测是模型预测是正例,但实际是反例;真反例是预测是反例,实际也是反例。

查准率=真正例/假正例+真正例(真正率占我们预测是正例的比例)

查全率=真正例/真正例+假反例(真正率占我们实际是正例的比例)

混淆矩阵运用:

以下以回归模型为例,探索混淆矩阵的使用

# 设定五折交叉验证规则
train_control<-trainControl(method = 'cv',number = )
# 对数据集分成
set.seed()# 在任何随机事件之前都需要设定随机种子
index<-createDataPartition(good_data$left,p=.,list = F)
head(index)
traindata<-good_data[index, ]
testdata<-good_data[-index, ] # 建立回归树模型
rpart_model1<-train(left ~ .,data=traindata,
trControl=train_control,method='rpart')
# 将测试集导入回归树模型,求得测试结果
pred_rpart<-predict(rpart_model1,testdata[-])
# 利用混淆矩阵对回归树模型进行评估
con_rpart<-table(pred_rpart,testdata$left) # 混淆矩阵只用测试集,与训练集无关
con_rpart # 求得混淆矩阵结果

pred_rpart   0   1
0           2246  72
1           51     528

对应查准率为:528/51+528=91.19%

二、roc曲线

模型验证,根据学习器的结果对样例排序,逐个把样本作为正例进行预测,每次计算出两个重要的值,分别以它们为横纵坐标作图,即得到ROC曲线。

###################ROC曲线 #################
# roc函数的值必须是数值型,而pred_rpart为数值型
pred_rpart<-as.numeric(as.character(pred_rpart))# 因子型需要转字符型然后转数值 roc_rpart<-roc(testdata$left,pred_rpart)# 后续绘图需要用的信息
# 确定ROC曲线的横纵轴
Specificity<-roc_rpart$specificities # 真反利率 作为X轴
Sensitivity<-roc_rpart$sensitivities # 查全率 作为Y轴
# 开始绘制ROC曲线图
ROC_line<-ggplot(NULL,aes(x=-Specificity,y=Sensitivity))+
geom_line()+
geom_abline()+
annotate('text',x=.,y=.,label = paste('AUC=',round(roc_rpart$auc, )))+
theme_bw()
ROC_line

最新文章

  1. jquery动态生成的元素添加事件的方法
  2. maven引入json-lib的正确方法
  3. MSSQLSERVER之发布-分发-订阅
  4. 利用 iptables 命令限制单个端口的并发连接数
  5. Cocos2D创建项目
  6. hdu 3863 No Gambling
  7. FastSocket学习笔记~制定自已的传输协议
  8. MVC 中的Areas支持
  9. 在Windows Azure上配置VM主备切换(1)——Linux篇
  10. 异步套接字基础:select函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
  11. 自定义checkbox, radio样式
  12. 201521123082《Java程序设计》第4周学习总结
  13. 麻省理工18年春软件构造课程阅读02“Java基础”
  14. 自动化测试基础篇--Selenium中数据参数化之TXT
  15. SQL约束(主键约束、外键约束、自动递增、不允许空值、值唯一、值默认、值限制范围)
  16. spring_AOP_XML
  17. Emacs 不将M-Del删除的单词加入粘贴板
  18. Python学习第一章
  19. Twitter REST API, Streaming API
  20. bzoj1758Wc10重建计划——solution

热门文章

  1. 8.Python标识符命名规范
  2. React用dangerouslySetInnerHTML动态渲染HTML
  3. 大哥带的Orchel数据库的注入
  4. wannalfy 挑战赛7 F Masha与老鼠(贪心+dp)
  5. ES排序值相同顺序随机的问题
  6. springboot+mybatis+SpringSecurity 实现用户角色数据库管理(一)
  7. LInux 下PHP环境配置 Redis 总结
  8. [python] Pythonic语法笔记
  9. c++实验10 图的应用实验
  10. Jest 里面需要注意的几个小细节