目录
决策树原理概述
-
决策树通过把样本实例从根节点排列到某个叶子节点来对其进行分类。树上的每个非叶子节点代表对一个属性取值的测试, 其分支就代表测试的每个结果(yes no表示正类、负类);而树上的每个叶子节点均代表一个分类的类别,树的最高层节点是根节点。当所有叶子节点给出的分类结果都一样时,就结束生长,即已经可以判定样本的类别。
-
根节点并没有什么实际的意义。
-
简单地说,决策树就是一个类似流程图的树形结构,采用自顶向下的递归方式,从树的根节点开始,在它的内部节点上进行属性值的测试比较,然后按照给定实例的属性值确定对应的分支,最后在决策树的叶子节点得到结论。这个过程在以新的节点为根的子树上重复。直到所有新节点给出的结果一致或足以判断分类(我们可以设计一些规则来决定)。
上图是一个区分动物类型的例子。
-
决策树其实很好理解。举个例子,它就像我们玩的猜谜底游戏。B向A提问,每次可以问不同的问题,而A只能回答是或不是,对或不对。通过多次发问,B越来越接近正确答案。这里,每个问题实际上就是非叶子节点的属性测试,是或者不是就是给出测试结果yes or no。如果一个谜底符合你所有问题(属性),得到答案一致,那么你一定能肯定这个谜底是什么。
-
分类树——面向离散变量的决策树;回归树——面向连续变量的决策树。
-
在决策树算法中,ID3 基于信息增益作为属性选择的度量,C4.5 基于信息增益比作为属性选择的 度量,CART 基于基尼指数作为属性选择的度量
-
优点:速度快、准确性高,便于理解。因为决策树的每个分支出来测试属性都是有实际的意义的,不像KNN之类直接用距离度量,没有实际的物理含义。决策树也适用于高维度的数据,不需要任何领域知识和参数假设。
-
缺点:对于各类别样本数量不一致的数据,信息增益偏向于那些具有更多数值的特征。容易过拟合。参见《模型过拟合及模型泛化误差评估》。
决策树的经典算法:ID3算法
原则上讲,对给定的数据集,可构造的决策树数目达到指数级。但是由于算力优先,我们只能在一定条件下构造出具有一定准确率的较优的决策树。这些算法通常都是采用贪心策略,在选择划分数据的属性时,采取一系列局部最优决策来构造决策树。