决策树(DTs),是一种无参数的监督学习方法,用来分类和回归,目标是建立一个模型,可以通过学习数据特征的简单决策规则来预测目标属性的值。
如下图所示,决策树的输入数据近似正弦曲线,规则为if-then-else的规则集。树越深,抉择规则越复杂。
决策树的优点:
(1)便于理解和解释。树是可视化的。
(2)值需要少量的数据准备工作。其它的方法需要数据正式化、需要创建虚拟值并且空值需要清理掉。但是,需要注意的是,这个模型不支持缺失的属性值。
(3)训练树的复杂度是log级别的
(4)能够同时处理数值和分类数据。其它的方法一般只能处理一种数据。
(5)可以支持多输出
(6)使用白盒模型。模型的训练结果很容易解释。如果是在黑盒模型中(比如人工神经网络中),结果可能比较难解释。
(7)可以使用统计测试来评估模型。
(8) 即使由真实模型产出的数据和假设违背,该模型仍可用。
缺点是:
(1)决策树可以会生成很复杂的树,即过拟合。使用剪枝的方法,即设定叶子节点的最小数量或者设置树的最大深度可以避免过拟合。
(2)决策树是不稳定的因为有些数据可能会产出一个完全不同的树。这个问题可以通过使用一个决策树集合缓解。
(3)决策树的学习过程是一个NP完全问题,所以训练决策树学习的算法都是基于贪心算法,比如在每个节点取最优解。这种算法不能返回一个全局最优的决策树。这个问题可以通过放回的随机参数来训练多个树来解决。
(4)有些概念决策树表达不出来,比如XOR,对等关系和组合关系
(5)如果某些分类权重过大则可能造成产出的树有偏差,需要提前平衡数据集来修正决策树。