决策树总结
ID3算法、C4.5算法和CART算法比较
算法 | 树结构 | 支持模型 | 特征选择 | 连续值处理 | 缺失值处理 | 剪枝 |
---|---|---|---|---|---|---|
ID3 | 分类 | 多叉树 | 信息增益 | 不支持 | 不支持 | 不支持 |
C4.5 | 分类 | 多叉树 | 信息增益比 | 支持 | 支持 | 支持 |
CART | 分类、回归 | 二叉树 | 基尼指数、均方差 | 支持 | 支持 | 支持 |
决策树优缺点
优点
- 简单明了,生成的决策树很直观,在逻辑上可以得到很好的解释,属于白盒模型。
- 通常情况下不需要进行数据预处理。
- 使用决策树预测的代价是$O(\log_2m)\quad\text{m为样本数}$。
- 很多算法只是专注于离散值或者连续值,而决策树既可以处理离散值也可以处理连续值。
- 可以处理多维度样本的分类问题。
- 可以使用交叉验证的剪枝方法来选择模型,很大程度的提高了泛化能力。
- 对于敏感点的容错能力强。
缺点
- 决策树算法非常容易过拟合,进而导致泛化能力不强。(可以通过设置节点最少样本数量和限制决策树层数来改进)
- 决策树会因为样本发生一点的改动,进而导致树结构发生剧烈变化。(可以使用集成学习生成随机森林、Xgboost等方法改善)
- 通常情况下通过启发式方法寻找最优的决策树,但由于该问题是一个NP难的问题,所以很容易得到局部最优解。(可以使用集成学习生成随机森林、Xgboost等方法改善)
- 决策树很难学习比较复杂的关系,例如异或。(通常换个分类器解决该类问题,例如使用神经网络分类)
- 决策树容易偏向于征样本比例偏大的特征。(可以适度的调节样本的权重)