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

一、混淆矩阵法

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

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

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

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

混淆矩阵运用:

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

# 设定五折交叉验证规则
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

模型验证方法——R语言的更多相关文章

  1. 【R笔记】R语言函数总结

    R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字 ...

  2. R语言笔记完整版

    [R笔记]R语言函数总结   R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头, ...

  3. 【转】R语言函数总结

    原博: R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头, ...

  4. R语言中文社区历史文章整理(类型篇)

    R语言中文社区历史文章整理(类型篇)   R包: R语言交互式绘制杭州市地图:leafletCN包简介 clickpaste包介绍 igraph包快速上手 jiebaR,从入门到喜欢 Catterpl ...

  5. asp.net mvc 模型验证-最舒服的验证方式

    在院子里发现 http://www.cnblogs.com/yangecnu/p/3759784.html 模型验证方法 1. 一般方法 繁琐, 无数的if else, 在炎炎夏天,我见过一个验证方法 ...

  6. R语言入门(2)-数据对象

    数据对象 创建向量相关的方法 R语言的向量用法非常像python, 就比如这个seq(0,10,2), 从0到10, 步长为2, 涉及到的元素作为向量里的内容进行创建. 这里的用法非常像Matlab, ...

  7. 基于gin的golang web开发:模型验证

    Gin除了模型绑定还提供了模型验证功能.你可以给字段指定特定的规则标签,如果一个字段用binding:"required"标签修饰,在绑定时该字段的值为空,那么将返回一个错误.开发 ...

  8. Python数据科学手册-机器学习之模型验证

    模型验证 model validation 就是在选择 模型 和 超参数 之后.通过对训练数据进行学习.对比模型对 已知 数据的预测值和实际值 的差异. 错误的模型验证方法. 用同一套数据训练 和 评 ...

  9. R语言、02 案例2-1 Pelican商店、《商务与经济统计》案例题

    编程教材 <R语言实战·第2版>Robert I. Kabacoff 课程教材<商务与经济统计·原书第13版> (安德森) P48.案例2-1 Pelican 商店 PS C: ...

随机推荐

  1. jconsole性能监控

    1.进入tomcat bin目录 vim catalina.sh #!/bin/sh下面加入: #!/bin/shJAVA_OPTS="-Dcom.sun.management.jmxrem ...

  2. android sp文件一个键值保存多条信息

    之前碰到过这样的问题,sp文件只能够append,或者清空.其实一个键值,通过,分割,或者替代可以实现多条信息的存储.下面是一个举例: package com.ctbri.weather.utils; ...

  3. java 解析上传的Excel文件

    java poi解析上传的Excel文件 package com.zhl.push.Utils; /** * @Author TAO * @ClassName ExcelData * @Descrip ...

  4. 各种sort排序总结

    冒泡排序 选择排序 插入排序

  5. EMQ插件通过HTTP连接认证服务器实现认证

    需求 在EMQ中添加认证插件,将到来的MQTT连接的ClientID.UserName.Password通过HTTP协议发送到认证服务器,用返回的数据决定是否允许该连接: 在连接时和断开时向服务器发送 ...

  6. sqlalchemy 中 desc 的使用

    是这样: items = Item.query.order_by(Item.date.desc()).all() 而不是这样: items = Item.query.order_by(desc(Ite ...

  7. 使用 Dom4j 对XML操作!!!

    转自:http://blog.csdn.net/redarmy_chen/article/details/12969219 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件 ...

  8. Spring mvc注解说明

    编号 注解 说明 位置 备注 1 @Controller 将类变成Spring Bean 类 现阶段 @Controller . @Service 以及 @Repository 和 @Componen ...

  9. Delphi XE2 之 FireMonkey 入门(45Finally) - 结题与问题

    Delphi XE2 之 FireMonkey 入门(45Finally) - 结题与问题 很喜欢 FMX 的一些新控件, 如: TExpander.TArcDial.TComboTrackBar.T ...

  10. Java连接Hive使用Zookeeper的方式

    Java连接Hive的方式就是通过JDBC的方式来连接,URL为jdbc:hive2://host:port/db;principal=X@BIGDATA.COM等,这种方式是直接连接HiveServ ...