scikit-learn学习1.10. 决策树(Decision Trees)

时间:2023-02-10 23:51:45
决策树(DTS)是一种用来进行分类和回归的非参数监督学习方法。它是通过数据特征来学习到简单的决策规则,构造一个模型来预测目标变量的值。 例如在下面的例子中,决策树从数据中学习到一系列if-then-else的决策规则来近似一个正弦曲线。树的层次越深,决策规则和模型越复杂。 scikit-learn学习1.10. 决策树(Decision Trees)scikit-learn学习1.10. 决策树(Decision Trees)

决策树的优势:

  •  简单,便于理解和解释,可以可视化。
  •  很少的数据准备工作,其他方法往往需要对数据进行规范化、创建虚拟变量、移除空值。但需要注意的是决策树不支持缺失值。
  •  使用决策树预测数据的计算量与训练树的数据点的数量成对数关系。
  •  可以同时处理数值类型和类别类型的数据。其他方法在分析数据时通常只能指定一种类型的变量。更多信息可参考algorithms
  •  可以处理多路输出问题。
  •  决策树使用白盒模型,如果模型中给定的情况是可见的,那么他的条件可以很容易的使用布尔逻辑解释。相反,在黑盒模型中(例如人工神经网络),结果可能非常难于解释。
  •  可以通过统计测试验证一个模型,这使它能够验证模型的的可靠性。
  •  即使它的假设和数据生成的真实模型相违背,效果依然不错。

决策树的劣势:

  • 决策树学习时可能会创建一个过于复杂的树,不能有效的推广,这个称为过拟合。需要通过修剪(目前还不支持),设置叶子节点需要的最小样本数目,设置最大深度等机制来避免过拟合。
  • 决策树可能会不稳定,因为数据的很小变化就肯能导致生成一个完全不同的树。这个问题可以通过在一个整体里使用决策树来缓解。
  • 学习到一个最优的决策树的问题是一个NP完全问题。

1.10.5.使用小贴士

  • 在特征维度数量很大的数据上决策树容易过拟合。因为在高维空间小量样本获得的树很容易过拟合,所以使用一个正确的样本数目和特征数目的比例很重要。
  • 先使用特征降维(PCA, ICA, or Feature selection),使决策树能够更好的找到具有区分性的特征。
  • 训练的时候使用export函数可视化树。先使用max_depth=3作为树的初始深度来感觉下树是怎么拟合你的数据的,然后增加深度。

1.10.6.三种算法:ID3,C4.5,C5.0和CART

有哪些不同的决策树算法?它们之间有什么不同?在scikit-learn中实现了那个算法? ……………… CART(分类和回归树)和C4.5很像,不同的是它支持数值类型的变量(回归),并且不计算规则集。CART使用特征和阈值产生每个节点的最大信息增益来构建二叉树。 scikit-learn中使用的是CART算法的一个优化版本。 (未完结)