决策树

来自决策链云智库
Decision Tree.png
节点状态
PC可用
V1.0部署
决策树Decision Tree.svg
节点开发者决策链算法研发部 (Dev.Team-DPS)
节点英文名决策树
功能主类别机器学习
英文缩写DT_C45
功能亚类别分类训练器
节点类型数据挖掘
开发语言Python
节点简介

决策树算法是一种基于树结构的有监督机器学习算法,用于解决分类和回归问题。它基于一系列的决策规则来学习和预测数据的目标变量。

决策树通过对特征进行逐步分割来构建树结构,每个内部节点表示一个特征,每个叶节点表示一个预测类别或数值。

端口数量与逻辑控制(PC)
Input-入口2个
Output-出口3个
Loop-支持循环
If/Switch-支持逻辑判断
输入输出
可生成图片类型(推荐)
可生成数据表类型(推荐)
相关节点
上一节点导入测试集
下一节点支持向量机



算法概述

决策树是一种决策支持层次模型,它使用决策及其可能后果的树状模型,包括偶然事件结果、资源成本和效用。这是显示仅包含条件控制语句的算法的一种方式。 决策树通常用于运筹学,特别是决策分析,以帮助确定最有可能达到目标的策略,但也是机器学习中的一种流行工具[1]。机器学习中的决策树是一种用于分类和回归的非参数监督学习方法。目标是创建一个模型,通过学习从数据特征推断出的简单决策规则来预测目标变量的值。树可以看作是分段常数近似。

优缺点

决策树的一些优点是:

  1. 易于理解和解释。树木可以被形象化。
  2. 需要很少的数据准备。其他技术通常需要数据标准化、创建虚拟变量并删除空白值。一些树和算法组合支持 缺失值。
  3. 使用树(即预测数据)的成本是用于训练树的数据点数量的对数。
  4. 使用白盒模型。如果给定的情况在模型中是可观察到的,则该条件的解释很容易通过布尔逻辑来解释。相比之下,在黑盒模型中(如神经网络),结果可能更难以解释。
  5. 可以使用统计测试来验证模型。这使得可以解释模型的可靠性。
  6. 即使生成数据的真实模型在某种程度上违反了其假设,也表现良好。

决策树的缺点包括:

  1. 决策树学习者可以创建过于复杂的树,而这些树不能很好地概括数据。这称为过度拟合。为了避免这个问题,需要采用剪枝、设置叶节点所需的最小样本数或设置树的最大深度等机制。
  2. 决策树可能不稳定,因为数据的微小变化可能会导致生成完全不同的树。通过在集成中使用决策树可以缓解这个问题。
  3. 决策树的预测既不是平滑的也不是连续的,而是分段常数近似,如上图所示。因此,他们不擅长推断。
  4. 已知学习最优决策树的问题在最优性的几个方面甚至对于简单的概念来说都是 NP 完全的。因此,实用的决策树学习算法基于启发式算法,例如贪婪算法,其中在每个节点做出局部最优决策。此类算法不能保证返回全局最优决策树。这可以通过在集成学习器中训练多个树来缓解,其中特征和样本是通过替换随机采样的。
  5. 有些概念很难学习,因为决策树不容易表达它们,例如异或、奇偶校验或多路复用器问题。
  6. 如果某些类占主导地位,决策树学习器会创建有偏差的树。因此,建议在拟合决策树之前平衡数据集。

示例代码-决策树分类节点

该节点使用Python编写,调用scikit-learn包[2]。以下为示例代码: <syntaxhighlight lang="Python"> clf = tree.DecisionTreeClassifier() clf = clf.fit(X, Y)

节点使用指南

参考文献

  1. De Ville, Barry (2013). "Decision trees". Wiley Interdisciplinary Reviews: Computational Statistics. Wiley Online Library. 5 (6): 448--455.
  2. Kramer, Oliver (2016). "Scikit-learn". Machine learning for evolution strategies. Springer: 45--53.

查找其他类别的节点,请参考以下列表