R_Studio(cart算法决策树)对book3.csv数据用测试集进行测试并评估模型
对book3.csv数据集,实现如下功能:
(1)创建训练集、测试集
(2)用rpart包创建关于类别的cart算法的决策树
(3)用测试集进行测试,并评估模型
book3.csv数据集

setwd('D:\\data')
list.files()
dat=read.csv(file="book3.csv",header=TRUE)
#变量重命名,并通过x1~x11对class属性进行预测
colnames(dat)<-c("x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","class")
n=nrow(dat)
split<-sample(n,n*(3/4))
traindata=dat[split,]
testdata=dat[-split,]
set.seed(1)
library(rpart)
#用测试集进行测试
Gary1<-rpart(class~.,data=testdata,method="class", control=rpart.control(minsplit=1),parms=list(split="gini"))
printcp(Gary1)
#交叉矩阵评估模型
pre1<-predict(Gary1,newdata=testdata,type='class')
tab<-table(pre1,testdata$class)
tab
#评估模型(预测)的正确率
sum(diag(tab))/sum(tab)
Gary.Script
实现过程
数据预处理并创建训练(测试)集
setwd('D:\\data')
list.files()
dat=read.csv(file="book3.csv",header=TRUE)
#变量重命名,并通过x1~x11对class属性进行预测
colnames(dat)<-c("x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","class")
n=nrow(dat)
split<-sample(n,n*(3/4))
traindata=dat[split,]
testdata=dat[-split,]
设定生成随机数的种子,种子是为了让结果具有重复性
set.seed(1)
加载rpart包创建关于类别的cart算法的决策树
library(rpart)
用测试集进行测试
> Gary1<-rpart(class~.,data=testdata,method="class", control=rpart.control(minsplit=1),parms=list(split="gini"))
> printcp(Gary1) Classification tree: #分类树:
rpart(formula = class ~ ., data = testdata, method = "class",
parms = list(split = "gini"), control = rpart.control(minsplit = 1)) Variables actually used in tree construction: #树构建中实际使用的变量:
[1] x1 x10 x2 x4 x5 x8 #〔1〕X1 x10 x2 x4 x5 x8 Root node error: 57/175 = 0.32571 #根节点错误:57/175=0.32571 n= 175 CP nsplit rel error xerror xstd
1 0.754386 0 1.000000 1.00000 0.108764
2 0.052632 1 0.245614 0.31579 0.070501
3 0.035088 3 0.140351 0.31579 0.070501
4 0.017544 6 0.035088 0.35088 0.073839
5 0.010000 7 0.017544 0.31579 0.070501
交叉矩阵评估模型
pre1<-predict(Gary1,newdata=testdata,type='class')
> tab<-table(pre1,testdata$class)
> tab pre1 恶性 良性
恶性 57 1
良性 0 117
评估模型(预测)的正确率
对角线上的数据实际值和预测值相同,非对角线上的值为预测错误的值
> sum(diag(tab))/sum(tab)
[1] 0.9942857
R_Studio(cart算法决策树)对book3.csv数据用测试集进行测试并评估模型的更多相关文章
- Spark Mllib里决策树二元分类使用.areaUnderROC方法计算出以AUC来评估模型的准确率和决策树多元分类使用.precision方法以precision来评估模型的准确率(图文详解)
不多说,直接上干货! Spark Mllib里决策树二元分类使用.areaUnderROC方法计算出以AUC来评估模型的准确率 具体,见 Hadoop+Spark大数据巨量分析与机器学习整合开发实战的 ...
- 《机器学习实战》学习笔记第九章 —— 决策树之CART算法
相关博文: <机器学习实战>学习笔记第三章 —— 决策树 主要内容: 一.CART算法简介 二.分类树 三.回归树 四.构建回归树 五.回归树的剪枝 六.模型树 七.树回归与标准回归的比较 ...
- 02-23 决策树CART算法
目录 决策树CART算法 一.决策树CART算法学习目标 二.决策树CART算法详解 2.1 基尼指数和熵 2.2 CART算法对连续值特征的处理 2.3 CART算法对离散值特征的处理 2.4 CA ...
- 十一,专著研读(CART算法)
十一,专著研读(CART算法) CART称为分类回归树,既能用于分类也能用于回归.使用二元切分方法处理连续型变量,给定特定值,如果特征值大于给定值就走左子树,否则走右子树. CART算法步骤 决策树生 ...
- Spark Mllib里决策树回归分析使用.rootMeanSquaredError方法计算出以RMSE来评估模型的准确率(图文详解)
不多说,直接上干货! Spark Mllib里决策树二元分类使用.areaUnderROC方法计算出以AUC来评估模型的准确率和决策树多元分类使用.precision方法以precision来评估模型 ...
- 03机器学习实战之决策树CART算法
CART生成 CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”,左分支是取值为“是”的分支,右分支是取值为“否”的分支.这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为有 ...
- 决策树-预测隐形眼镜类型 (ID3算法,C4.5算法,CART算法,GINI指数,剪枝,随机森林)
1. 1.问题的引入 2.一个实例 3.基本概念 4.ID3 5.C4.5 6.CART 7.随机森林 2. 我们应该设计什么的算法,使得计算机对贷款申请人员的申请信息自动进行分类,以决定能否贷款? ...
- 决策树模型 ID3/C4.5/CART算法比较
决策树模型在监督学习中非常常见,可用于分类(二分类.多分类)和回归.虽然将多棵弱决策树的Bagging.Random Forest.Boosting等tree ensembel 模型更为常见,但是“完 ...
- python数据分析算法(决策树2)CART算法
CART(Classification And Regression Tree),分类回归树,,决策树可以分为ID3算法,C4.5算法,和CART算法.ID3算法,C4.5算法可以生成二叉树或者多叉树 ...
随机推荐
- python-day39(正式学习)
目录 线程锁 死锁问题及递归锁 死锁 递归锁 信号量 GIL全局解释器锁 线程锁 from threading import Thread,Lock x=0 lock=Lock() def test( ...
- RPC 框架 介绍 (转)
出处: 谁能用通俗的语言解释一下什么是 RPC 框架? 知乎: 问题:了解到最近 Java 的 Netty 很火,只知道它是这样类型的一种框架.想了解一下它主要用于解决了什么问题?适用于什么样的场景? ...
- python基础之初始函数
首先,为什么要使用函数? 函数的本质来说,就是写一串代码具有某些功能,然后封装起来,接下来可以很方便的调用 例如...然后... # s = '金老板小护士'# len(s) #在这里需求是求字符串s ...
- 关于ionic4导入android studio的注意事项
最近看IT营的视频的时候,发现视频讲解的打包真是轻松的不得了,但是当自己导入打包的时候,你就会发现,没有最坑,只有更坑,按照教程来打包,估计你这辈子很难还原成功的,下面就来说一下关于 gradle与g ...
- loj 2392「JOISC 2017 Day 1」烟花棒
loj 答案显然满足二分性,先二分一个速度\(v\) 然后显然所有没有点火的都会往中间点火的人方向走,并且如果两个人相遇不会马上点火,要等到火快熄灭的时候才点火,所以这两个人之后应该在一起行动.另外有 ...
- Windows7/win10系统安装JDK的环境变量设置javac不是内部命令或外部命令
---恢复内容开始--- Windows7/win10系统安装JDK的环境变量设置 Windows7 X64安装“jdk-6u26-windows-x64.exe”后,按照网上的环境变量设置方法设置了 ...
- 中文转拼音,pinyin4j实用示例
Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换.拼音输出格式可以定制. Support Chinese character (both Simplified and Trandi ...
- N1试卷常考词汇总结
免れる まぬがれる 免去,幸免 軽率 けいそつ 轻率,草率 捩れる ねじれる 拧劲儿,扭歪,弯曲 裂ける さける 裂开,破裂 避ける さける 躲避,避开 つまむ 挟,捏,掐 追及 ついきゅう 追上.追 ...
- MySQL 下载与安装
从MySQL官网下载安装文件,我的电脑是window10 64位的,下载社区版本,选择mysql community server,再下载64位的. 官网链接:https://www.mysql.co ...
- 为什么wamp 放两个网站 或者多个网站就很卡很慢,问题在这里
PHP的配置比较简单,只需要进行一些基本设置的修改就可以了,依次点击—PHP—php.ini,找到这三个地方:short_open_tag = Off(是否允许使用 PHP 代码开始标志的缩写形式(& ...