读书笔记《集体智慧编程》Chapter 7 : Modeling with Decision Tree

简介:
本章概要
决策树与贝叶斯分类,费舍尔分类,神经网络一样,是一种分类技术。但是,与其他分类技术不同的是,决策树做出决策的过程很清晰,可以帮助用户了解决策过程,从而调整自己的策略(比如广告投放),往往决策树本身处理过程比其分类结果更重要。
本章主要介绍了CART算法构建决策树与做出决策,同时还介绍了一些决策树的优化方案,容错机制和使用场景。
本章还介绍了三种集合纯度计算方法
  • 基尼不纯度(Gini Impurity)
  • 熵(Entory)
  • 方差(Variance)
 
决策树
 
 

 
上面就是一个决策树,分叶节点是逻辑判断,叶节点是结果。输入结果按照决策树的节点一级一级的向下走,直到访问到叶节点,得到最后的分类结果。可以理解为一系列的if-then语句,按照二叉树的样式组合。决策树是通过训练数据集构建的,也就是先给出一些数据集,类别别清楚的分隔好,然后根据这个数据集,进行构建决策树。
 
如何分隔
选取一个特征值,将所有数据分割成两分。特性值是数字,就用大于逻辑分割(小于也可以),如果是枚举类型,通过相等于不相等分隔为两类。
 
如何选取特征值
通过度量特征值分隔后,两个子集合的纯度,选取最优特征值。分隔后的结果越纯,特征值月好。
 
集合纯度
本章介绍了三种集合纯度计算方法:
  • 基尼不纯度Gini Impurity
  • 熵entropy
  • 方差variance,计算连续数值。
现在需要知道,前两者可以计算枚举类型的纯度,最后一个计算连续数据结合的纯度。都是值越大,越不纯,越小越纯。
 
 
 
构建决策树
遍历每个列每个不同节点(除最后一列),按当前节点分隔,计算分隔后的权重熵(权重按照所占比例计算),计算出为分割前的熵与分割后的权重熵之差information gain,越大越好,选出最好的。然后根据最好的两个集合继续分隔,直到information gain <= 0为止,因为只有这样,说明当前集合十分纯净,无法被继续分隔。
 
使用决策树
使用方法十分自然,顺着决策树的根几点,一步一步的向下走,直到到达叶节点。
 
修剪决策树
决策树有可能过度适应(我理解为过度茂盛),以至于得不到好的结果。所以需要修剪。
第一种方案:在生成决策数的时候控制information gain的增长量,如果达不到一定增长量,那么就停止分裂。但是这样会出现一个问题,当前分裂可能达不到一定的增长量,但是下一城节点可能达到更大的增长量。
第二种方案:构建决策树的方案不变,在构建完后,修剪枝叶,也就是合并叶节点,只要合并后的节点与之前的节点的差小于一定范围就可以继续合并。这样可以避免错误的删除明显的决策节点
 
处理丢失数据
输入数据不完整时,决策树也可以工作,但是会给出多个决策和权重,
 
决策树适用场景
决策的节点只能是简单的逻辑,如果逻辑太复杂,决策树会很大且不准确。决策树不适合大量数值特性。适合于大量枚举特性,或者具有明显分隔界限的连续数据。当然,如前面提到的,决策树本身具有参考价值,可以帮助用户进行策略分析。
声明:如有转载本博文章,请注明出处。您的支持是我的动力!文章部分内容来自互联网,本人不负任何法律责任。

本文转自bourneli博客园博客,原文链接: http://www.cnblogs.com/bourneli/archive/2012/11/17/2775405.html ,如需转载请自行联系原作者
相关文章
|
7月前
|
机器学习/深度学习 存储 算法
【博士每天一篇文献-综述】2024最新联邦遗忘综述:Federated unlearning A survey on methods, design guidelines
本文提供了联邦遗忘(Federated Unlearning, FU)领域的全面综述,包括背景概念、动机、挑战、设计指南、评估指标体系,并探讨了FU在隐私保护和安全性方面的应用,以及面临的技术挑战和未来研究方向。
267 4
|
机器学习/深度学习 开发框架 编解码
动手学强化学习(三):动态规划算法 (Dynamic Programming)
动态规划(dynamic programming)是程序设计算法中非常重要的内容,能够高效解决一些经典问题,例如背包问题和最短路径规划。动态规划的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到目标问题的解。动态规划会保存已解决的子问题的答案,在求解目标问题的过程中,需要这些子问题答案时就可以直接利用,避免重复计算。本章介绍如何用动态规划的思想来求解在马尔可夫决策过程中的最优策略。
295 0
动手学强化学习(三):动态规划算法 (Dynamic Programming)
|
机器学习/深度学习 算法 数据挖掘
Chapter1 统计学习方法概论
第1章 统计学习方法概论 1.统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行分析与预测的一门学科。统计学习包括监督学习、非监督学习、半监督学习和强化学习。 2.统计学习方法三要素——模型、策略、算法,对理解统计学习方法起到提纲挈领的作用。 3.本书主要讨论监督学习,监督学习可以概括如下:从给定有限的训练数据出发, 假设数据是独立同分布的,而且假设模型属于某个假设空间,应用某一评价准则,从假设空间中选取一个最优的模型,使它对已给训练数据及未知测试数据在给定评价标准意义下有最准确的预测。 4.统计学习中,进行模型选择或者说提高学习的泛化能力是一个重要问题。如果只考虑减少训
Chapter1 统计学习方法概论
practice2-基础算法2
快速学习practice2-基础算法2
practice2-基础算法2
|
算法 Java C语言
practice1-基础算法
快速学习practice1-基础算法
practice3-基础算法3
快速学习practice3-基础算法3
|
机器学习/深度学习 人工智能 算法
第二周:神经网络的编程基础(Basics of Neural Network programming)
第二周:神经网络的编程基础(Basics of Neural Network programming)
200 0
第二周:神经网络的编程基础(Basics of Neural Network programming)