决策树算法的优点:
- 1)简单直观,生成的决策树很直观。
- 2)基本不需要预处理,不需要提前归一化,处理缺失值。
- 3)使用决策树预测的代价是O(log2m)。
- 4)既可以处理离散值也可以处理连续值。很多算法只是专注于离散值或者连续值。
- 5)可以处理多维度输出的分类问题。
- 6)相比于神经网络之类的黑盒分类模型,决策树在逻辑上可以得到很好的解释。
- 7)可以交叉验证的剪枝来选择模型,从而提高泛化能力。
- 8) 对于异常点的容错能力好,健壮性高。
决策树算法的缺点:
- 1)决策树算法非常容易过拟合,导致泛化能力不强。可以通过设置节点最少样本数量和限制决策树深度来改进。
- 2)决策树会因为样本发生一点点的改动,就会导致树结构的剧烈改变。这个可以通过集成学习之类的方法解决。
- 3)寻找最优的决策树是一个NP难的问题,我们一般是通过启发式方法,容易陷入局部最优。可以通过集成学习之类的方法来改善。
- 4)有些比较复杂的关系,决策树很难学习,比如异或。一般这种关系可以换神经网络分类方法来解决。
- 5)如果某些特征的样本比例过大,生成决策树容易偏向于这些特征。这个可以通过调节样本权重来改善。