新决策树例子

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

rpart包的rpart函数

Iris数据集

library(rpart) #加载rpart包

head(iris) #看看iris数据集里有哪些变量

iris以鸢尾花的特征作为数据来源,数据集包含150个数据,分为3类,每类50个数据,每个数据包含4个属性分别是花萼长度、花萼宽带、花瓣长度、花瓣宽度

用gini度量纯度

iris.rp1=rpart(Species~.,data=iris,method="class",parms=list(split="g ini"))

# rpart(formula, data, method, parms, ...)得到决策树对象,其中(1)formula是回归方程的形式,y~x1+x2+…,iris一共有5个变量,因变量是Species,自变量是其余四个变量,所以formula可以省略为

Species~.

(2)data是所要学习的数据集

(3)method根据因变量的数据类型有如下几种选择:anova(连续型),poisson (计数型),class(离散型),exp(生存型),因为我们的因变量是花的种类,属于离散型,所以method选择class

(4)parms可以设置纯度的度量方法,有gini(默认)和information(信息增益)两种。

plot(iris.rp1, uniform=T, branch=0, margin=0.1,main="Classification Tree\nIris Species by Petal and Sepal Length")

#plot的对象是由rpart得到的决策树对象,可以把这课决策树画出来,其中

(1) uniform可取T,F两个值,T表示图形在空间上均匀分配

(2) branch刻画分支的形状,取值在0和1之间,branch=0是倒v型,branch=1是直角型,而当branch属于(0,1)时是梯形

Classification Tree

Iris Species by Petal and Sepal Length

branch=0

Classification Tree

Iris Species by Petal and Sepal Length

branch=1

|

Classification T ree

Iris Species by Petal and Sepal Length

branch=0.5

|

(3)margin刻画图的大小,margin越大,决策树越小,上述三幅图的margin=0.1,而当margin=1时,决策树变小了

Classification T ree

Iris Species by Petal and Sepal Length

(4)main是图的标题,其中“\n”是换行的意思

text(iris.rp1, use.n=T, fancy=T, col="blue")

Classification Tree

Iris Species by Petal and Sepal Length

text(iris.rp1, use.n=T, fancy=F, col="blue")

(1) use.n=T ,在每个节点处都会显示落在该节点的观测个数和对应的分类,

use.n=F 时就不显示观测个数了。

(2) fancy=T 、F 的区别见上图

(3) col=“blue”就是写在树上的信息的颜色。

还有另一种画图函数 library(rpart.plot)

rpart.plot(iris.rp1,branch=0,branch.type=2,type=1,extra=1,shadow.col="gray",box.col="green",border.col="blue",split.col="red" ,main="决策树")

Classification Tree

Iris Species by Petal and Sepal Length

Petal.Length< 2.45

Petal.Width< 1.75

setosa 50/0/0

versicolor 0/49/5virginica 0/1/45

决策树

rpart.plot(iris.rp1,branch=0,branch.type=0,type=1,extra=1,shadow.col= "gray",box.col="green",border.col="blue",split.col="red", main="决策树")

决策树

(1) branch.type是分支的形状参数,branch.type=0时画出来的分支跟plot 里的一样,就是一条线,而当branch.type=2时,分支的宽度是数据的标准差,branch.type=1时,是方差

(2) type:type=0只对叶子节点画圆圈。type=1对根节点和叶子节点画圆圈,分裂属性的值会写在节点框的上面。type=2时跟type=1近似,但分裂属性的值会写在节点框的下面。type=3时每个根节点左右分支对应的属性的取值范围都标出来了(之前那些都只标了左分支的属性取值),并且只对叶子节点画圆圈。type=4时,跟type=3近似,但对叶子节点和根节点都画圆圈。

(3) extra是表示在节点处显示的额外信息的种类。当extra=0(缺省值)时,无额外信息。当extra=1,在节点处会显示落在该节点的观测个数和对应的分类(如上图)。当extra=2,在节点处会显示(在该点分类正确的个数/落在该节点的观测个数)。

相关文档
最新文档