什么是决策树
决策树(decision tree),也称为判定树,是一类常见的机器学习方法。决策树是基于树结构来进行决策的,这恰是人类在面临决策问题时一种很自然的处理机制。
决策过程中提出的每个判定问题都是对某个属性的“测试”。每个测试的结果或是导出最终结论,或是导出进一步的判定问题,其考虑范围是在上次决策结果的限定范围之内。
一般的,一棵决策树包含一个根节点、若干个内部节点和若干个叶节点;叶节点对应于决策结果,其他每个节点则对应于一个属性测试;每个节点包含的样本集合根据属性测试的结果被划分到子节点中;根节点包含样本全集。从根节点到每个叶节点的路径对应了一个判定测试序列。决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的“分而治之”(divide-and-conquer)策略。
决策树的步骤
决策树学习算法有三个步骤:
- 特征选择
- 决策树生成
- 决策树剪枝
决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程。这一过程对应着对特征空间的划分,也对应着决策树的构建。
决策树的构建过程如下:
- 构建根节点,将所有训练数据都放在根节点,选择一个最优特征,按照这一特征将训练数据集分割成子集,使得各个子集有一个在当前条件下最好的分类。这个过程就涉及到特征选择的相关知识点,特征选择是为了找到最优的划分特征。
- 如果这些子集已经能够被基本正确分类,那么构建叶节点,并将这些子集分到所对应的叶子节点。
- 如果还有子集不能够被正确的分类