模型验证方法——R语言
在数据分析中经常会对不同的模型做判断
一、混淆矩阵法
作用:一种比较简单的模型验证方法,可算出不同模型的预测精度
将模型的预测值与实际值组合成一个矩阵,正例一般是我们要预测的目标。真正例就是预测为正例且实际也是正例(预测正确);假反例是实际是正例但模型错误预测成反例(即预测错误);假正例是预测是模型预测是正例,但实际是反例;真反例是预测是反例,实际也是反例。
查准率=真正例/假正例+真正例(真正率占我们预测是正例的比例)
查全率=真正例/真正例+假反例(真正率占我们实际是正例的比例)
混淆矩阵运用:
以下以回归模型为例,探索混淆矩阵的使用
- # 设定五折交叉验证规则
- 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语言的更多相关文章
- 【R笔记】R语言函数总结
R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字 ...
- R语言笔记完整版
[R笔记]R语言函数总结 R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头, ...
- 【转】R语言函数总结
原博: R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头, ...
- R语言中文社区历史文章整理(类型篇)
R语言中文社区历史文章整理(类型篇) R包: R语言交互式绘制杭州市地图:leafletCN包简介 clickpaste包介绍 igraph包快速上手 jiebaR,从入门到喜欢 Catterpl ...
- asp.net mvc 模型验证-最舒服的验证方式
在院子里发现 http://www.cnblogs.com/yangecnu/p/3759784.html 模型验证方法 1. 一般方法 繁琐, 无数的if else, 在炎炎夏天,我见过一个验证方法 ...
- R语言入门(2)-数据对象
数据对象 创建向量相关的方法 R语言的向量用法非常像python, 就比如这个seq(0,10,2), 从0到10, 步长为2, 涉及到的元素作为向量里的内容进行创建. 这里的用法非常像Matlab, ...
- 基于gin的golang web开发:模型验证
Gin除了模型绑定还提供了模型验证功能.你可以给字段指定特定的规则标签,如果一个字段用binding:"required"标签修饰,在绑定时该字段的值为空,那么将返回一个错误.开发 ...
- Python数据科学手册-机器学习之模型验证
模型验证 model validation 就是在选择 模型 和 超参数 之后.通过对训练数据进行学习.对比模型对 已知 数据的预测值和实际值 的差异. 错误的模型验证方法. 用同一套数据训练 和 评 ...
- R语言、02 案例2-1 Pelican商店、《商务与经济统计》案例题
编程教材 <R语言实战·第2版>Robert I. Kabacoff 课程教材<商务与经济统计·原书第13版> (安德森) P48.案例2-1 Pelican 商店 PS C: ...
随机推荐
- 使用 UIStoryBoard 语法糖
最后更新: 2018-09-06 当你用 UIStoryBoard (以下简称 'SB') 做iOS开发时候,总是避免不了设置 StoryBoard ID 的问题, StoryBoard ID 是一个 ...
- vue之Object.defineProperty()
了解Object.defineProerty()方法 关于Object.defineProperty()方法的解释,理解Object.defineProperty的作用 这篇文章做了很详细的概述 关于 ...
- session与cookie区别与联系
一.Session的概念 Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标 ...
- MyRocks安装部署
参考:https://www.cnblogs.com/WonderHow/p/5621591.html CentOS 7.3 gflags:git clone https://github.com/g ...
- 连接Access数据库
web.config添加配置 <connectionStrings> <add name="connStr" connectionString="Pro ...
- 四十、python中的生成器和迭代器
A.生成器(包含yield的就是生成器) def func(): print(11) yield 1 print(22) yield 2 print(33) yield 3 print(44) yie ...
- docker-容器完整构建过程
container 代码app,构建,运行,分享(推送)image mkdir img1 cd img1 [root@cu-tmp-201 img1]# ls app.py Dockerfile re ...
- 异步分发任务celery
Celery简介 Celery是一个功能完备即插即用的任务队列.它使得我们不需要考虑复杂的问题,使用非常简单. celery适用异步处理问题,当遇到发送邮件.或者文件上传, 图像处理等等一些比较耗时的 ...
- 003-unity3d 物理引擎-示例2 打箱子
一.基础知识点 1.坐标.向量等 )) { //1.将鼠标坐标 转化为 世界坐标 由于鼠标z轴 可能不存在,故自定义为3 Vector3 targetPos = Camera.main.ScreenT ...
- promise不会被return触发, 一个promise对象中不会被Promise.reject触发
1. let a = new Promise((resolve,reject)=>{ return 23 }) a; // promise <pending> 2. let a = ...