1、使用包party建立决策树
这一节学习使用包party里面的函数ctree()为数据集iris建立一个决策树。属性Sepal.Length(萼片长度)、Sepal.Width(萼片宽度)、Petal.Length(花瓣长度)以及Petal.Width(花瓣宽度)被用来预测鸢尾花的Species(种类)。在这个包里面,函数ctree()建立了一个决策树,predict()预测另外一个数据集。
在建立模型之前,iris(鸢尾花)数据集被分为两个子集:训练集(70%)和测试集(30%)。使用随机种子设置固定的随机数,可以使得随机选取的数据是可重复利用的。
观察鸢尾花数据集的结构
str(iris)
设置随机数起点为1234
set.seed(1234)
使用sample函数抽取样本,将数据集中观测值分为两个子集
ind <- sample(2, nrow(iris), replace=TRUE, prob=c(0.7, 0.3))
样本的第一部分为训练集
trainData <- iris[ind==1,]
样本的第二部分为测试集
testData <- iris[ind==2,]
加载包party建立一个决策树,并检测预测见过。函数ctree()提供一些参数例如MinSplit, MinBusket, MaxSurrogate 和 MaxDepth用来控制决策树的训练。下面我们将会使用默认的参数设置去建立决策树,至于具体的参数设置可以通过?party查看函数文档。下面的代码中,myFormula公式中的Species(种类)是目标变量,其他变量是独立变量。
library(party)
符号'~'是连接方程或公式左右两边的符号
myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width