文章目录

  • 一、决策树的概念
  • 二、决策树的构件过程
  • 三、决策树的特点
  • 四、决策树的使用
  • 五、 一图总结

一、决策树的概念

决策树是一种机器学习的方法。决策树的生成算法有ID3, C4.5和C5.0等。决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。

决策树是一种十分常用的分类方法,需要监管学习(有教师的Supervised Learning),监管学习就是给出一堆样本,每个样本都有一组属性和一个分类结果,也就是分类结果已知,那么通过学习这些样本得到一个决策树,这个决策树能够对新的数据给出正确的分类。

决策树通常有三个步骤:特征选择、决策树的生成、决策树的修剪

用决策树分类:从根节点开始,对实例的某一特征进行测试,根据测试结果将实例分配到其子节点,此时每个子节点对应着该特征的一个取值,如此递归的对实例进行测试并分配,直到到达叶节点,最后将实例分到叶节点的类中。

下图为决策树示意图,圆点——内部节点,方框——叶节点

决策树学习的目标:根据给定的训练数据集构建一个决策树模型,使它能够对实例进行正确的分类。

决策树学习的本质:从训练集中归纳出一组分类规则,或者说是由训练数据集估计条件概率模型。

决策树学习的损失函数:正则化的极大似然函数

决策树学习的测试:最小化损失函数

决策树学习的目标:在损失函数的意义下,选择最优决策树的问题。

决策树原理和问答猜测结果游戏相似,根据一系列数据,然后给出游戏的答案。

二、决策树的构件过程

决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得各个子数据集有一个最好的分类的过程。这一过程对应着对特征空间的划分,也对应着决策树的构建。

1) 开始:构建根节点,将所有训练数据都放在根节点,选择一个最优特征,按着这一特征将训练数据集分割成子集,使得各个子集有一个在当前条件下最好的分类。

2) 如果这些子集已经能够被基本正确分类,那么构建叶节点,并将这些子集分到所对应的叶节点去。

3)如果还有子集不能够被正确的分类,那么就对这些子集选择新的最优特征,继续对其进行分割,构建相应的节点,如果递归进行,直至所有训练数据子集被基本正确的分类,或者没有合适的特征为止。

4)每个子集都被分到叶节点上,即都有了明确的类,这样就生成了一颗决策树。

三、决策树的特点

优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。
缺点:可能会产生过度匹配的问题
适用数据类型:数值型和标称型
首先:确定当前数据集上的决定性特征,为了得到该决定性特征,必须评估每个特征,完成测试之后,原始数据集就被划分为几个数据子集,这些数据子集会分布在第一个决策点的所有分支上,如果某个分支下的数据属于同一类型,则当前无序阅读的垃圾邮件已经正确的划分数据分类,无需进一步对数据集进行分割,如果不属于同一类,则要重复划分数据子集,直到所有相同类型的数据均在一个数据子集内。

四、决策树的使用

收集数据:可以使用任何方法。比如想构建一个相亲系统,我们可以从媒婆那里,或者通过参访相亲对象获取数据。根据他们考虑的因素和最终的选择结果,就可以得到一些供我们利用的数据了。
准备数据:收集完的数据,我们要进行整理,将这些所有收集的信息按照一定规则整理出来,并排版,方便我们进行后续处理。
分析数据:可以使用任何方法,决策树构造完成之后,我们可以检查决策树图形是否符合预期。
训练算法:这个过程也就是构造决策树,同样也可以说是决策树学习,就是构造一个决策树的数据结构。
测试算法:使用经验树计算错误率。当错误率达到了可接收范围,这个决策树就可以投放使用了。
使用算法:此步骤可以使用适用于任何监督学习算法,而使用决策树可以更好地理解数据的内在含义。

五、 一图总结

以上说了很多关于决策树比较细的知识点,对于重要的内容,我已经总结成了下图,希望对大家有帮助

机器学习之树模型的学习(一):决策树相关推荐

  1. 机器学习中树模型算法总结之 决策树(下)

    写在前面 首先回顾一下上一篇的相关内容,主要是理论的介绍了决策树的模型及几种常见的特征选择准则,具体可参见机器学习中树模型算法总结之 决策树(上).今天主要接着学习,包括决策树的生成(依赖于第一篇的三 ...

  2. 机器学习中树模型算法总结之 决策树(上)

    写在前面 在网上看XGBoost资料的时候觉得自己以前看的树模型算法都忘得差不多了,所以就趁着这个机会把机器学习里的树模型算法重新再过一遍,主要包括决策树.随机森林.提升树.XGBoost等等. 1. ...

  3. 树模型集成学习(Tree Embedding)

    树模型集成学习 集成学习主要有两个思想,分别是bagging和boosting.树模型的集成模型都是使用树作为基模型,最常用的cart树,常见的集成模型有RandomForest.GBDT.Xgboo ...

  4. 【机器学习】树模型预剪枝和后剪枝

    在树模型建模的过程中的树模型的超参数会影响模型的精度,那么如何调整超参数呢?可以提前限制模型的超参数,也可以在训练模型之后再调整.本文将介绍树模型的预剪枝和后剪枝的实践过程. 原始模型 使用基础数据集 ...

  5. 机器学习之分类模型(二)——决策树

    机器学习算法(二): 决策树 0. 前言 0.1 决策树介绍 0.2 决策树应用 1. 天池实验室算法实战--企鹅数据 1.0 代码流程预览 1.1 Demo实践 Step1: 库函数导入 Step2 ...

  6. 【机器学习】树模型遇上类别型特征(Python)

    在数据挖掘项目的数据中,数据类型可以分为两种:有序的连续数值 和 无序的类别型特征. 对于xgboost.GBDT等boosting树模型,基学习通常是cart回归树,而cart树的输入通常只支持连续 ...

  7. 【机器学习】树模型决策的可解释性与微调(Python)

    一.树模型的解释性 集成学习树模型因为其强大的非线性能力及解释性,在表格类数据挖掘等任务中应用频繁且表现优异. 模型解释性对于某些领域(如金融风控)是极为看重的,对于树模型的解释性,我们常常可以通过输 ...

  8. 机器学习(三)树模型

    机器学习(一)LR 机器学习(二)SVM 机器学习(三)树模型 机器学习(四)聚类 机器学习(三)树模型 目录 二.树模型 1.ID3 2.C4.5 3.CART树 (1)算法步骤 (2)举例 (3) ...

  9. 决策树入门以及树模型的参数选择

    决策树及树模型的参数选择 决策树的基本概念 在数据结构中树是一个重要的数据结构,这里树被我们根据分支起到一个决策的作用.什么是决策?通俗的说就是判断或者决定,我们引用周志华的西瓜书中的例子:这是一个好 ...

  10. ML机器学习基于树的家族

    ML机器学习基于树的家族 目录 决策树模型与学习 特征选择 决策树的生成 3.1 决策树的编程实现 3.2 画出决策树的方式 决策树的剪枝 DBGT 随机森林 参考资料: 机器学习实战 统计学习方法 ...

最新文章

  1. cocos 卡牌类_优质链游大爆发,Cocos-BCX版《恶龙必须死》有什么特别之处?
  2. glm.fit Warning Messages in R: algorithm didn’t converge probabilities 0/1
  3. Elasticsearch之深入了解Search的运行机制
  4. 上海肯特选用Ultimus 提升企业管理
  5. 【FI学习笔记】AR部分快速IMG配置
  6. Web开发中8个基础常见功能
  7. CodeForces - 1535E Gold Transfer(树上倍增+交互)
  8. python编写脚本方法_python 定时器,实现每天凌晨3点执行的方法
  9. mysql round 0.1111_听说Mysql你很豪横?-------------分分钟带你玩转SQL高级查询语句(库函数,存储过程)...
  10. Linux内核分析(八) 设备驱动
  11. java windows wrapper_Java Service Wrapper 发布Java程序为Windows服务
  12. ARCGIS 分区统计的时候,出现无法解决的重大问题,程序崩溃
  13. [GIS教程] 5.3 空间数据组织
  14. web前端开发做项目,CSS盒子模型居中方法
  15. A 5G Odyssey :2021北京漫游
  16. 初级第五旬07— 初级课程第五旬试题
  17. MapReduce之Partition分区实例操作
  18. 第四回 还君明珠双泪垂,恨不相逢未嫁时
  19. C#支付宝支付接口H5版(手机网页支付)
  20. power bi中的TREATAS函数!

热门文章

  1. 中国AI监控摄像头市场现状研究分析与发展前景预测报告(2022)
  2. GDB 的几个用法(until, finish, tui)
  3. (完全解决)argparse中dest是什么意思
  4. Raspberry Pi 树莓派切换国内源
  5. js: color-thief在浏览器中拾取图片的主色调
  6. 鱼香肉丝里到底有没有鱼?
  7. python基础题-字符串列表训练
  8. outlook邮件通过python发送_怎么发送邮箱-python调用outlook发送邮件的超详细操作步骤...
  9. python 命令运行环境下 ModuleNotFoundError: No module named 'Test'
  10. QT 控件增加双击事件