决策树(Tree Nodels)是一种创建树状模型的方法,它使用‘基尼不纯度’(Gini Impurity)或信息增益(Information Gain)等标准对节点进行递归分割,以创建树状模型。决策树看起来像是以树状形式排列的一系列的if-else语句,易于理解,执行速度快。并且,它能够很好地表现多个特征之间的相互作用,适用于多种数据类型。(树状模型中,随机森林性能表现卓越)
主要用到的包:rpart、party、randomForest
决策树模型
决策树算法中,会对数据特征不断提问,然后根据每次回答逐步对数据进行分类。
节点(Node)的分类:节点分为根节点(Root Node)与叶节点(Leaf Node)。其中根节点位于决策树最顶部,它是分类的起始点,位于最底端且没有子节点的节点成为叶节点。
在决策树中,对各节点提问题,并根据回答对节点进行分叉,从而实现分类数据的目的。‘不纯度’(impurity)用作评估数据分离程度的标准,将一个节点数据划分为2个子节点时,最好的提问能够使子节点的不纯度降至最低。
节点中含有的分类越多,不纯度越高。反之,只有一个分类的时候,不纯度最低。
分类与回归树
用于创建决策树的包有很多,此处使用rpart包,它实现了比较有名的分类与回归树(Classification and Regression Trees,CART)
以下示例中,使用rpart()函数为鸢尾花数据创建决策树:
library(rpart)
m<-rpart(Species~.,data=iris)
查看m
结果中的n=150代表有150个数据。结果底部显示的就是决策树,缩进表示分支,*表示叶节点,loss表示误差数量。
从中可以得到结果: