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

原文地址:https://www.cnblogs.com/1138720556Gary/p/9821519.html

时间: 2024-10-11 21:19:36

R_Studio(cart算法决策树)对book3.csv数据用测试集进行测试并评估模型的相关文章

机器学习经典算法详解及Python实现--CART分类决策树、回归树和模型树

摘要: Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Regression Tree),本文介绍了CART用于离散标签分类决策和连续特征回归时的原理.决策树创建过程分析了信息混乱度度量Gini指数.连续和离散特征的特殊处理.连续和离散特征共存时函数的特殊处理和后剪枝:用于回归时则介绍了回归树和模型树的原理.适用场景和创建过程.个人认为,回归树和模型树

02-23 决策树CART算法

[TOC] 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ 决策树CART算法 决策树C4.5算法虽然对决策树ID3算法做了很大的改良,但是缺点也是很明显的,无法处理回归问题.使用较为复杂的熵来作为特征选择的标准.生成的决策树是一颗较为复杂的多叉树结构,CART算法针对这些问题又做了进一步的优化. 一.决策树CART算法学习目标 基尼指数和熵 CART算法对连续值和特

决策树-预测隐形眼镜类型 (ID3算法,C4.5算法,CART算法,GINI指数,剪枝,随机森林)

1. 1.问题的引入 2.一个实例 3.基本概念 4.ID3 5.C4.5 6.CART 7.随机森林 2. 我们应该设计什么的算法,使得计算机对贷款申请人员的申请信息自动进行分类,以决定能否贷款? 一个女孩的母亲要给这个女孩介绍男朋友,于是有了下面的对话: 女儿:多大年纪了? 母亲:26. 女儿:长的帅不帅? 母亲:挺帅的. 女儿:收入高不? 母亲:不算很高,中等情况. 女儿:是公务员不? 母亲:是,在税务局上班呢. 女儿:那好,我去见见. 决策过程: 这个女孩的决策过程就是典型的分类树决策.

机器学习总结(八)决策树ID3,C4.5算法,CART算法

本文主要总结决策树中的ID3,C4.5和CART算法,各种算法的特点,并对比了各种算法的不同点. 决策树:是一种基本的分类和回归方法.在分类问题中,是基于特征对实例进行分类.既可以认为是if-then规则的集合,也可以认为是定义在特征空间和类空间上的条件概率分布. 决策树模型:决策树由结点和有向边组成.结点一般有两种类型,一种是内部结点,一种是叶节点.内部结点一般表示一个特征,而叶节点表示一个类.当用决策树进行分类时,先从根节点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到子结点.而

数据挖掘领域经典算法——CART算法

简介 CART与C4.5类似,是决策树算法的一种.此外,常见的决策树算法还有ID3,这三者的不同之处在于特征的划分: ID3:特征划分基于信息增益 C4.5:特征划分基于信息增益比 CART:特征划分基于基尼指数 基本思想 CART假设决策树是二叉树,内部结点特征的取值为"是"和"否",左分支是取值为"是"的分支,右分支是取值为"否"的分支.这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为有限个单元,并在这些单

《机器学习技法》---CART算法

1 决策树模型的数学表达形式 决策树模型画出图很简单.那么它的数学表达形式是怎样的呢?这里介绍递归形式: 其中,G(x)表示决策树对应的函数,b(x)表示分叉的规则,Gc(x)是子树的模型. 2 一般决策树生成算法的框架 即,学习划分规则b(x),然后把数据按照b(x)划分为C部分,对每一部分递归地生成子树.注意递归在一定条件停止,直接返回一个g(x). 事实上,不同的决策树算法,都是这个基本的框架.不同的地方在于这四个部分的具体定义是不同的: 3 CART算法 CART算法中,框架中的四个部分

统计学习方法:CART算法

作者:桂. 时间:2017-05-13  14:19:14 链接:http://www.cnblogs.com/xingshansi/p/6847334.html . 前言 内容主要是CART算法的学习笔记. CART算法是一个二叉树问题,即总是有两种选择,而不像之前的ID3以及C4.5B可能有多种选择.CART算法主要有回归树和分类树,二者常用的准则略有差别:回归树是拟合问题,更关心拟合效果的好坏,此处用的是均方误差准则; 分类树是分类问题,更像是离散变量的概率估计,用与熵类似的Gini系数进

[转载]简单易学的机器学习算法-决策树之ID3算的

一.决策树分类算法概述 决策树算法是从数据的属性(或者特征)出发,以属性作为基础,划分不同的类.例如对于如下数据集 (数据集) 其中,第一列和第二列为属性(特征),最后一列为类别标签,1表示是,0表示否.决策树算法的思想是基于属性对数据分类,对于以上的数据我们可以得到以下的决策树模型 (决策树模型) 先是根据第一个属性将一部份数据区分开,再根据第二个属性将剩余的区分开. 实现决策树的算法有很多种,有ID3.C4.5和CART等算法.下面我们介绍ID3算法. 二.ID3算法的概述 ID3算法是由Q

机器学习---算法---决策树

转自:https://blog.csdn.net/qq_43208303/article/details/84837412 决策树是一种机器学习的方法.决策树的生成算法有ID3, C4.5和CART等.决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果.决策树是一种十分常用的分类方法,需要监管学习(有教师的Supervised Learning),监管学习就是给出一堆样本,每个样本都有一组属性和一个分类结果,也就是分类结果已