模型验证方法——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: ...
随机推荐
- Spring Boot教程(十九)RESTful API单元测试
下面针对该Controller编写测试用例验证正确性,具体如下.当然也可以通过浏览器插件等进行请求提交验证. @RunWith(SpringJUnit4ClassRunner.class) @Spri ...
- 装RAC跑脚本报错
在执行第二个脚本的时候报错 原因是在改服务器找不到该包 解决方法: 挂载iso镜像,安装这个包
- wannafly 挑战赛8 E 小G的项链(manecher)
链接:https://www.nowcoder.com/acm/contest/57/E 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit ...
- [CSP-S模拟测试]:Cicada拿衣服(暴力+乱搞)
题目传送门(内部题94) 输入格式 第一行两个整数$n,k$,代表衣服的数量和阈值. 接下来一行$n$个数,第$i$个数$a_i$表示每件衣服的愉悦值. 输出格式 输出一行$n$个数,第$i$个数为$ ...
- (转载)FM 算法
(转载)FM算法 https://zhuanlan.zhihu.com/p/33184179
- collection集合整体结构图
- WPF DevExpress Chart控件 界面绑定数据源,不通过C#代码进行绑定
<Grid x:Name="myGrid" Loaded="Grid_Loaded" DataContext="{Binding PartOne ...
- 解决hibernate 序列化死循环的问题
用ie8时,请求json,eclipse直接死机!!!! 调试时,可以用chrome,看到无限循环的报错...类似 {"empty":true,"total": ...
- maven setting.xml文件配置详情
1 首先,setting.xml一般存在与两个地方:maven的安装目录/conf/,和${user.home}/.m2/下.他们的区别是在maven安装目录下的setting.xml是所有用户都可以 ...
- Centos 安装 FTP
安装教程: 基于 CentOS 搭建 FTP 文件服务 搭建完成后,使用windows文件夹访问FTP报错,请确保输入的文件名是否正确,并且您有权访问此文件. 先确认ftp服务正常 修改: 设 ...