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

一、混淆矩阵法

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

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

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

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

混淆矩阵运用:

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

# 设定五折交叉验证规则
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. Spring Cloud云架构 - SSO单点登录之OAuth2.0登录流程(2)

    上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...

  2. [BZOJ1030]:[JSOI2007]文本生成器(AC自动机+DP)

    题目传送门 题目描述 JSOI交给队员ZYX一个任务,编制一个称之为“文本生成器”的电脑软件:该软件的使用者是一些低幼人群, 他们现在使用的是GW文本生成器v6版.该软件可以随机生成一些文章―――总是 ...

  3. Vue学习(二) :第一个Vue项目

    OS: Windows 10 Home 64bit Chocolatey version: 0.10.13 npm version: 6.4.1 yarn version: 1.16.0 git ve ...

  4. JavaScript函数、BOM

    [函数的声明和调用] 1.>>>函数声明的格式:形参可以不用var声明 使用function关键字声明: function 函数名 (参数1,参数2,......){ //函数体 r ...

  5. Linux_RHEV虚拟化_基础理论&KVM

    目录 目录 RHEV KVM Full 完全虚拟化 PV半虚拟化 Full和PV最大的区别 HVMHardware Virtual Manager硬件辅助虚拟化 Setup KVM Use the v ...

  6. Linux监控命令之==>free

    一.命令说明 free 命令显示系统内存的使用情况:包括物理内存.交换内存(swap)和内核缓冲区内存 二.参数说明 -b -k -m -g:分别以字节.KB.MB.GB为单位显示内存使用情况 -l: ...

  7. oracle-不完全数据库恢复-被动恢复-ORA-00313/ORA-00366

    继上一篇不完全恢复 oracle-不完全数据库恢复-被动恢复-ORA-00313/ORA-00366 场景2:数据库拥有备份,CURRENT状态日志组中所有的在线日志头损坏,在发生日志切换时实例被自动 ...

  8. 批处理文件将多台连接的手机安装同一个APP

    :adb devices > C:\Users\aaminaxu\Desktop\a.txt :1.首先获取连接到电脑的手机的设备信息将其保存到C盘的a.txt文件中::2.将保存的txt文件中 ...

  9. 操作系统(5)实验0——makefile的写法

    之前GCC那部分我提到过,gcc啥啥啥啥傻傻的那个指令只能够编译简单的代码,如果要干大事(例如突然心血来潮写个c开头的神经网络库之类的),还是要写Makefile来编译.其实在Windows下通常用I ...

  10. 应用安全 - harbaor - 漏洞汇总

    CVE-2019-19026(SQL注入,高危):https://github.com/goharbor/harbor/security/advisories/GHSA-rh89-vvrg-fg64( ...