fbpx
维基百科

决策树学习

决策树学习统计学数据挖掘机器学习中使用的一种预测建模方法。它使用决策树作为预测模型英语Predictive modelling,从样本的观测数据(对应决策树的分支)推断出该样本的预测结果(对应决策树的叶节点)。

按预测结果的差异,决策树学习可细分两类。(1)分类树,其预测结果仅限于一组离散数值。树的每个分支对应一组由逻辑与连接的分类特征,而该分支上的叶节点对应由上述特征可以预测出的分类标签。(2)回归树,其预测结果为连续值(例如实数)。

在决策分析中,一棵可视的决策树可以向使用者形象地展示决策的结果和过程。在数据挖掘机器学习中,一棵决策树主要用于描述数据(此后亦可基于习得的预测模型去支持决策)。本页侧重描述数据挖掘中的决策树。

推广 编辑

 
一个描述泰坦尼克号上乘客生存的决策树 ("sibsp"指甲板上的兄妹和配偶)。每个决策叶下标识该类乘客的生存几率和观察到的比率

在数据挖掘中决策树训练是一个常用的方法。目标是创建一个模型来预测样本的目标值。例如右图。每个内部节点对应于一个输入属性,子节点代表父节点的属性的可能取值。每个叶子节点代表输入属性得到的可能输出值。

一棵树的训练过程为:根据一个指标,分裂训练集为几个子集。这个过程不断的在产生的子集里重复递归进行,即递归分割。当一个训练子集的类标都相同时递归停止。这种决策树的自顶向下归纳 (TDITD) [1]贪心算法的一种, 也是目前为止最为常用的一种训练方法,但不是唯一的方法。


数据以如下方式表示:

 

其中Y是目标值,向量x由这些属性构成, x1, x2, x3 等等,用来得到目标值。

决策树的类型 编辑

在数据挖掘中,决策树主要有两种类型:

  • 分类树 的输出是样本的类标(例如花的分類,股票漲跌等)。
  • 回归树 的输出是一个实数 (例如房子的价格,病人待在医院的时间等)。

术语分类和回归树 (CART) 包含了上述两种决策树, 最先由Breiman 等提出.[2] 分类树和回归树有些共同点和不同点—例如处理在何处分裂的问题。[2]

有些集成的方法产生多棵树:

  • 装袋算法(Bagging), 是一个早期的集成方法,用有放回抽样法来训练多棵决策树,最终结果用投票法产生。[3]
  • 随机森林(Random Forest) 使用多棵决策树来改进分类性能。
  • 提升树(Boosting Tree) 可以用来做回归分析和分类决策[4][5]
  • 旋转森林(Rotation forest) – 每棵树的训练首先使用主元分析法 (PCA)。[6]

还有其他很多决策树算法,常见的有:

  • ID3算法
  • C4.5算法
  • CHi-squared Automatic Interaction Detector (CHAID). 在生成树的过程中用多层分裂.[7]
  • MARS:可以更好的处理数值型数据。

模型表达式 编辑

构建决策树时通常采用自上而下的方法,在每一步选择一个最好的属性来分裂。[8] "最好" 的定义是使得子节点中的训练集尽量的纯,表示所分裂出的子节点中的集合越相近。不同的算法使用不同的指标来定义"最好"。本部分介绍一些最常见的指标。

基尼不纯度指标 编辑

在CART算法中, 基尼不纯度表示一个随机选中的样本在子集中被分错的可能性。基尼不纯度为这个样本被选中的概率乘以它被分错的概率。当一个节点中所有样本都是一个类时,基尼不纯度为零。

假设y的可能取值为 个类别,令  表示被标定为第 类的概率,则基尼不纯度的计算为:

 

信息增益 编辑

ID3, C4.5 和 C5.0 决策树的生成使用信息增益。信息增益 是基于信息论信息熵資訊本體理论.

信息熵定义为:

 

其中 加和为1,表示当前节点中各个类别的百分比。[9]

 
 

例如,数据集有4个属性:outlook (sunny, overcast, rainy), temperature (hot, mild, cool), humidity (high, normal), and windy (true, false), 目标值play(yes, no), 总共14个数据点。为建造决策树,需要比较4棵决策树的信息增益,每棵决策树用一种属性做划分。信息增益最高的划分作为第一次划分,并在每个子节点继续此过程,直至其信息增益为0。

使用属性windy做划分时,产生2个子节点:windy值为真与为假。当前数据集,6个数据点的windy值为真,其中3个点的play值为真,3个点的play值为假;其余8个数据点的windy为假,其中6个点的play值为真,2个点的play值为假。 windy=true的子节点的信息熵计算为:

 

windy=false的子节点的信息熵计算为:

 

这个划分(使用属性windy)的信息熵是两个子节点信息熵的加权和:

 

为计算使用属性windy的信息增益,必须先计算出最初(未划分)的数据集的信息熵,数据集的play有9个yes与5个no:

 

使用属性windy的信息增益是:

 

决策树的优点 编辑

与其他的数据挖掘算法相比,决策树有许多优点:

  • 易于理解和解释 人们很容易理解决策树的意义。
  • 只需很少的数据准备 其他技术往往需要数据归一化。
  • 即可以处理数值型数据也可以处理類別變數数据。其他技术往往只能处理一种数据类型。例如关联规则只能处理类别型的而神经网络只能处理数值型的数据。
  • 使用白箱模型. 输出结果容易通过模型的结构来解释。而神经网络是黑箱模型,很难解释输出的结果。
  • 可以通过测试集来验证模型的性能 。可以考虑模型的稳定性。
  • 強健控制. 对噪声处理有好的強健性。
  • 可以很好的处理大规模数据

缺点 编辑

  • 训练一棵最优的决策树是一个完全NP问题。[10][11] 因此, 实际应用时决策树的训练采用启发式搜索算法例如 贪心算法来达到局部最优。这样的算法没办法得到最优的决策树。
  • 决策树创建的过度复杂会导致无法很好的预测训练集之外的数据。这称作过拟合.[12]剪枝机制可以避免这种问题。
  • 有些问题决策树没办法很好的解决,例如 异或问题。解决这种问题的时候,决策树会变得过大。 要解决这种问题,只能改变问题的领域[13] 或者使用其他更为耗时的学习算法(例如統計關係學習英语Statistical relational learning或者歸納邏輯程式設計英语Inductive logic programming).

延伸 编辑

决策图 编辑

在决策树中, 从根节点到叶节点的路径采用汇合。 而在决策图中, 可以采用{{ts1|en|Minimum description length|最小描述長度]] (MML)来汇合两条或多条路径。[15]

用演化算法来搜索 编辑

演化算法可以用来避免局部最优的问题[16][17]

参见 编辑

参考资料 编辑

  1. ^ Quinlan, J. R., (1986). Induction of Decision Trees. Machine Learning 1: 81-106, Kluwer Academic Publishers
  2. ^ 2.0 2.1 Breiman, Leo; Friedman, J. H., Olshen, R. A., & Stone, C. J. Classification and regression trees. Monterey, CA: Wadsworth & Brooks/Cole Advanced Books & Software. 1984. ISBN 978-0-412-04841-8. 
  3. ^ Breiman, L. (1996). Bagging Predictors. "Machine Learning, 24": pp. 123-140.
  4. ^ Friedman, J. H. (1999). Stochastic gradient boosting. Stanford University.
  5. ^ Hastie, T., Tibshirani, R., Friedman, J. H. (2001). The elements of statistical learning : Data mining, inference, and prediction. New York: Springer Verlag.
  6. ^ Rodriguez, J.J. and Kuncheva, L.I. and Alonso, C.J. (2006), Rotation forest: A new classifier ensemble method, IEEE Transactions on Pattern Analysis and Machine Intelligence, 28(10):1619-1630.
  7. ^ Kass, G. V. An exploratory technique for investigating large quantities of categorical data. Applied Statistics. 1980, 29 (2): 119–127. JSTOR 2986296. doi:10.2307/2986296. 
  8. ^ Rokach, L.; Maimon, O. Top-down induction of decision trees classifiers-a survey. IEEE Transactions on Systems, Man, and Cybernetics, Part C. 2005, 35 (4): 476–487. doi:10.1109/TSMCC.2004.843247. 
  9. ^ Witten, Ian; Frank, Eibe; Hall, Mark. Data Mining. Burlington, MA: Morgan Kaufmann. 2011: 102–103. ISBN 978-0-12-374856-0. 
  10. ^ Hyafil, Laurent; Rivest, RL. Constructing Optimal Binary Decision Trees is NP-complete. Information Processing Letters. 1976, 5 (1): 15–17. doi:10.1016/0020-0190(76)90095-8. 
  11. ^ Murthy S. (1998). Automatic construction of decision trees from data: A multidisciplinary survey. Data Mining and Knowledge Discovery
  12. ^ Principles of Data Mining. SpringerLink. [2018-04-02]. doi:10.1007/978-1-84628-766-4 (英国英语). 
  13. ^ Inductive Logic Programming. SpringerLink. [2018-04-02]. doi:10.1007/b13700 (英国英语). 
  14. ^ Deng,H.; Runger, G.; Tuv, E. (PDF). Proceedings of the 21st International Conference on Artificial Neural Networks (ICANN): 293–300. 2011 [2018-05-10]. (原始内容 (PDF)存档于2018-05-10). 
  15. ^ 存档副本. [2012-05-26]. (原始内容于2008-03-21). 
  16. ^ Papagelis A., Kalles D.(2001). Breeding Decision Trees Using Evolutionary Techniques, Proceedings of the Eighteenth International Conference on Machine Learning, p.393-400, June 28-July 01, 2001
  17. ^ Barros, Rodrigo C., Basgalupp, M. P., Carvalho, A. C. P. L. F., Freitas, Alex A. (2011). A Survey of Evolutionary Algorithms for Decision-Tree Induction. IEEE Transactions on Systems, Man and Cybernetics, Part C: Applications and Reviews, vol. 42, n. 3, p. 291-312, May 2012.

外部链接 编辑

  • From O'Reilly.
  • An Addendum to "Building Decision Trees in Python"(页面存档备份,存于互联网档案馆) From O'Reilly.
  • , a page with commented links.
  • Decision tree implementation in Ruby (AI4R)(页面存档备份,存于互联网档案馆
  • Building Decision Tree In Bash(页面存档备份,存于互联网档案馆

决策树学习, 此條目介紹的是机器学习中的决策树, 关于决策分析中的术语, 请见, 决策树, 是统计学, 数据挖掘和机器学习中使用的一种预测建模方法, 它使用决策树作为预测模型, 英语, predictive, modelling, 从样本的观测数据, 对应决策树的分支, 推断出该样本的预测结果, 对应决策树的叶节点, 按预测结果的差异, 可细分两类, 分类树, 其预测结果仅限于一组离散数值, 树的每个分支对应一组由逻辑与连接的分类特征, 而该分支上的叶节点对应由上述特征可以预测出的分类标签, 回归树, 其预测结果为. 此條目介紹的是机器学习中的决策树 关于决策分析中的术语 请见 决策树 决策树学习是统计学 数据挖掘和机器学习中使用的一种预测建模方法 它使用决策树作为预测模型 英语 Predictive modelling 从样本的观测数据 对应决策树的分支 推断出该样本的预测结果 对应决策树的叶节点 按预测结果的差异 决策树学习可细分两类 1 分类树 其预测结果仅限于一组离散数值 树的每个分支对应一组由逻辑与连接的分类特征 而该分支上的叶节点对应由上述特征可以预测出的分类标签 2 回归树 其预测结果为连续值 例如实数 在决策分析中 一棵可视的决策树可以向使用者形象地展示决策的结果和过程 在数据挖掘和机器学习中 一棵决策树主要用于描述数据 此后亦可基于习得的预测模型去支持决策 本页侧重描述数据挖掘中的决策树 目录 1 推广 2 决策树的类型 3 模型表达式 3 1 基尼不纯度指标 3 2 信息增益 4 决策树的优点 5 缺点 6 延伸 6 1 决策图 6 2 用演化算法来搜索 7 参见 8 参考资料 9 外部链接推广 编辑 nbsp 一个描述泰坦尼克号上乘客生存的决策树 sibsp 指甲板上的兄妹和配偶 每个决策叶下标识该类乘客的生存几率和观察到的比率在数据挖掘中决策树训练是一个常用的方法 目标是创建一个模型来预测样本的目标值 例如右图 每个内部节点对应于一个输入属性 子节点代表父节点的属性的可能取值 每个叶子节点代表输入属性得到的可能输出值 一棵树的训练过程为 根据一个指标 分裂训练集为几个子集 这个过程不断的在产生的子集里重复递归进行 即递归分割 当一个训练子集的类标都相同时递归停止 这种决策树的自顶向下归纳 TDITD 1 是贪心算法的一种 也是目前为止最为常用的一种训练方法 但不是唯一的方法 数据以如下方式表示 x Y x1 x2 x3 xk Y displaystyle textbf x Y x 1 x 2 x 3 x k Y nbsp 其中Y是目标值 向量x由这些属性构成 x1 x2 x3 等等 用来得到目标值 决策树的类型 编辑在数据挖掘中 决策树主要有两种类型 分类树 的输出是样本的类标 例如花的分類 股票漲跌等 回归树 的输出是一个实数 例如房子的价格 病人待在医院的时间等 术语分类和回归树 CART 包含了上述两种决策树 最先由Breiman 等提出 2 分类树和回归树有些共同点和不同点 例如处理在何处分裂的问题 2 有些集成的方法产生多棵树 装袋算法 Bagging 是一个早期的集成方法 用有放回抽样法来训练多棵决策树 最终结果用投票法产生 3 随机森林 Random Forest 使用多棵决策树来改进分类性能 提升树 Boosting Tree 可以用来做回归分析和分类决策 4 5 旋转森林 Rotation forest 每棵树的训练首先使用主元分析法 PCA 6 还有其他很多决策树算法 常见的有 ID3算法 C4 5算法 CHi squared Automatic Interaction Detector CHAID 在生成树的过程中用多层分裂 7 MARS 可以更好的处理数值型数据 模型表达式 编辑构建决策树时通常采用自上而下的方法 在每一步选择一个最好的属性来分裂 8 最好 的定义是使得子节点中的训练集尽量的纯 表示所分裂出的子节点中的集合越相近 不同的算法使用不同的指标来定义 最好 本部分介绍一些最常见的指标 基尼不纯度指标 编辑 nbsp 提示 此条目页的主题不是基尼系数 在CART算法中 基尼不纯度表示一个随机选中的样本在子集中被分错的可能性 基尼不纯度为这个样本被选中的概率乘以它被分错的概率 当一个节点中所有样本都是一个类时 基尼不纯度为零 假设y的可能取值为J displaystyle J nbsp 个类别 令i 1 2 J displaystyle i in 1 2 J nbsp pi displaystyle p i nbsp 表示被标定为第i displaystyle i nbsp 类的概率 则基尼不纯度的计算为 IG p i 1Jpi k ipk i 1Jpi 1 pi i 1J pi pi2 i 1Jpi i 1Jpi2 1 i 1Jpi2 displaystyle operatorname I G p sum i 1 J p i sum k neq i p k sum i 1 J p i 1 p i sum i 1 J p i p i 2 sum i 1 J p i sum i 1 J p i 2 1 sum i 1 J p i 2 nbsp 信息增益 编辑 ID3 C4 5 和 C5 0 决策树的生成使用信息增益 信息增益 是基于信息论中信息熵与資訊本體理论 信息熵定义为 H T IE p1 p2 pJ i 1Jpilog2 pi displaystyle mathrm H T operatorname I E left p 1 p 2 p J right sum i 1 J p i log 2 p i nbsp 其中p1 p2 displaystyle p 1 p 2 nbsp 加和为1 表示当前节点中各个类别的百分比 9 IG T a Information Gain H T Entropy parent H T a Weighted Sum of Entropy Children displaystyle overbrace IG T a text Information Gain overbrace mathrm H T text Entropy parent overbrace mathrm H T a text Weighted Sum of Entropy Children nbsp i 1Jpilog2 pi ap a i 1J Pr i a log2 Pr i a displaystyle sum i 1 J p i log 2 p i sum a p a sum i 1 J Pr i a log 2 Pr i a nbsp 例如 数据集有4个属性 outlook sunny overcast rainy temperature hot mild cool humidity high normal and windy true false 目标值play yes no 总共14个数据点 为建造决策树 需要比较4棵决策树的信息增益 每棵决策树用一种属性做划分 信息增益最高的划分作为第一次划分 并在每个子节点继续此过程 直至其信息增益为0 使用属性windy做划分时 产生2个子节点 windy值为真与为假 当前数据集 6个数据点的windy值为真 其中3个点的play值为真 3个点的play值为假 其余8个数据点的windy为假 其中6个点的play值为真 2个点的play值为假 windy true的子节点的信息熵计算为 IE 3 3 36log2 36 36log2 36 12log2 12 12log2 12 1 displaystyle I E 3 3 frac 3 6 log 2 frac 3 6 frac 3 6 log 2 frac 3 6 frac 1 2 log 2 frac 1 2 frac 1 2 log 2 frac 1 2 1 nbsp windy false的子节点的信息熵计算为 IE 6 2 68log2 68 28log2 28 34log2 34 14log2 14 0 8112781 displaystyle I E 6 2 frac 6 8 log 2 frac 6 8 frac 2 8 log 2 frac 2 8 frac 3 4 log 2 frac 3 4 frac 1 4 log 2 frac 1 4 0 8112781 nbsp 这个划分 使用属性windy 的信息熵是两个子节点信息熵的加权和 IE 3 3 6 2 IE windy or not 614 1 814 0 8112781 0 8921589 displaystyle I E 3 3 6 2 I E text windy or not frac 6 14 cdot 1 frac 8 14 cdot 0 8112781 0 8921589 nbsp 为计算使用属性windy的信息增益 必须先计算出最初 未划分 的数据集的信息熵 数据集的play有9个yes与5个no IE 9 5 914log2 914 514log2 514 0 940286 displaystyle I E 9 5 frac 9 14 log 2 frac 9 14 frac 5 14 log 2 frac 5 14 0 940286 nbsp 使用属性windy的信息增益是 IG windy IE 9 5 IE 3 3 6 2 0 940286 0 8921589 0 0481271 displaystyle IG text windy I E 9 5 I E 3 3 6 2 0 940286 0 8921589 0 0481271 nbsp 决策树的优点 编辑与其他的数据挖掘算法相比 决策树有许多优点 易于理解和解释 人们很容易理解决策树的意义 只需很少的数据准备 其他技术往往需要数据归一化 即可以处理数值型数据也可以处理類別變數数据 其他技术往往只能处理一种数据类型 例如关联规则只能处理类别型的而神经网络只能处理数值型的数据 使用白箱 模型 输出结果容易通过模型的结构来解释 而神经网络是黑箱模型 很难解释输出的结果 可以通过测试集来验证模型的性能 可以考虑模型的稳定性 強健控制 对噪声处理有好的強健性 可以很好的处理大规模数据 缺点 编辑训练一棵最优的决策树是一个完全NP问题 10 11 因此 实际应用时决策树的训练采用启发式搜索算法例如 贪心算法来达到局部最优 这样的算法没办法得到最优的决策树 决策树创建的过度复杂会导致无法很好的预测训练集之外的数据 这称作过拟合 12 剪枝机制可以避免这种问题 有些问题决策树没办法很好的解决 例如 异或问题 解决这种问题的时候 决策树会变得过大 要解决这种问题 只能改变问题的领域 13 或者使用其他更为耗时的学习算法 例如統計關係學習 英语 Statistical relational learning 或者歸納邏輯程式設計 英语 Inductive logic programming 对那些有类别型属性的数据 信息增益会有一定的偏置 14 延伸 编辑决策图 编辑 在决策树中 从根节点到叶节点的路径采用汇合 而在决策图中 可以采用 ts1 en Minimum description length 最小描述長度 MML 来汇合两条或多条路径 15 用演化算法来搜索 编辑 演化算法可以用来避免局部最优的问题 16 17 参见 编辑决策树剪枝 二元决策图 CART ID3算法 C4 5算法参考资料 编辑 Quinlan J R 1986 Induction of Decision Trees Machine Learning 1 81 106 Kluwer Academic Publishers 2 0 2 1 Breiman Leo Friedman J H Olshen R A amp Stone C J Classification and regression trees Monterey CA Wadsworth amp Brooks Cole Advanced Books amp Software 1984 ISBN 978 0 412 04841 8 引文使用过时参数coauthors 帮助 Breiman L 1996 Bagging Predictors Machine Learning 24 pp 123 140 Friedman J H 1999 Stochastic gradient boosting Stanford University Hastie T Tibshirani R Friedman J H 2001 The elements of statistical learning Data mining inference and prediction New York Springer Verlag Rodriguez J J and Kuncheva L I and Alonso C J 2006 Rotation forest A new classifier ensemble method IEEE Transactions on Pattern Analysis and Machine Intelligence 28 10 1619 1630 Kass G V An exploratory technique for investigating large quantities of categorical data Applied Statistics 1980 29 2 119 127 JSTOR 2986296 doi 10 2307 2986296 Rokach L Maimon O Top down induction of decision trees classifiers a survey IEEE Transactions on Systems Man and Cybernetics Part C 2005 35 4 476 487 doi 10 1109 TSMCC 2004 843247 Witten Ian Frank Eibe Hall Mark Data Mining Burlington MA Morgan Kaufmann 2011 102 103 ISBN 978 0 12 374856 0 Hyafil Laurent Rivest RL Constructing Optimal Binary Decision Trees is NP complete Information Processing Letters 1976 5 1 15 17 doi 10 1016 0020 0190 76 90095 8 Murthy S 1998 Automatic construction of decision trees from data A multidisciplinary survey Data Mining and Knowledge Discovery Principles of Data Mining SpringerLink 2018 04 02 doi 10 1007 978 1 84628 766 4 英国英语 Inductive Logic Programming SpringerLink 2018 04 02 doi 10 1007 b13700 英国英语 Deng H Runger G Tuv E Bias of importance measures for multi valued attributes and solutions PDF Proceedings of the 21st International Conference on Artificial Neural Networks ICANN 293 300 2011 2018 05 10 原始内容 PDF 存档于2018 05 10 引文使用过时参数coauthors 帮助 存档副本 2012 05 26 原始内容存档于2008 03 21 Papagelis A Kalles D 2001 Breeding Decision Trees Using Evolutionary Techniques Proceedings of the Eighteenth International Conference on Machine Learning p 393 400 June 28 July 01 2001 Barros Rodrigo C Basgalupp M P Carvalho A C P L F Freitas Alex A 2011 A Survey of Evolutionary Algorithms for Decision Tree Induction IEEE Transactions on Systems Man and Cybernetics Part C Applications and Reviews vol 42 n 3 p 291 312 May 2012 外部链接 编辑Building Decision Trees in Python From O Reilly An Addendum to Building Decision Trees in Python 页面存档备份 存于互联网档案馆 From O Reilly Decision Trees page at aaai org a page with commented links Decision tree implementation in Ruby AI4R 页面存档备份 存于互联网档案馆 Building Decision Tree In Bash 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title 决策树学习 amp oldid 81914281, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。