专栏首页大龄程序员的人工智能之路[机器学习实战札记] 决策树

[机器学习实战札记] 决策树

决策树(decision tree)是一类常见的机器学习方法。顾名思义,决策树是基于树结构来进行决策的,这恰是人类在面临决策问题时一种很自然的处理机制。一颗决策树包含一个根节点、若干个内部节点和若干个叶节点。叶节点对应于决策结果,其他每个节点则对应于一个属性测试。

决策树学习的目的是从样本数据产生一颗泛化能力强的决策树,其基本流程遵循简单且直观的“分而治之”策略:

Function createBranch   检测数据集中的每个子项是否属于同一分类:
   If so return 类标签
   Else
       寻找划分数据集的最好特征
       划分数据集
       创建分支节点
           for 每个划分的子集
               调用createBranch并增加返回结果到分支节点中
       return 分支节点

算法有两个要点:

  1. 寻找划分数据集的最好特征
  2. 递归

划分数据集的大原则是:将无序的数据变得更加有序。组织杂乱无章数据的一种方法就是使用信息论度量信息,信息论是量化处理信息的分支科学。

在划分数据集之前和之后信息发生的变化成为信息增益,获得信息增益最高的特征就是最好的选择。

“信息熵”(information entropy)是度量样本集合纯度最常用的一种指标。其定义为:

其中p(xi)是选择该分类的概率,n是分类的数目。分类的概率可以用所有类标签的发生频率来计算。

对每个特征划分数据集的结果计算一次信息熵,然后判断按照哪个特征划分数据集是最好的划分方式。

得到原始数据集,然后基于最好的属性值划分数据集,由于特征值可能多于两个,因此可能存在大于两个分支的数据集划分。第一次划分之后,数据将被向下传递到树分支的下一个节点,在这个节点上,我们可以再次划分数据,可以采用递归的原则处理数据集。

递归结束的条件是:程序遍历完所有划分数据集的属性,或者每个分支下的所有实例都具有相同的分类。

本章使用的算法成为ID3,无法直接处理数值型数据,尽管我们可以通过量化的方法将数值型数据转化为标称型数值,但如果存在太多的特征划分,ID3算法仍然会面临其他问题。

参考

  1. 《机器学习实战》, p32 ~ 52
  2. 《机器学习》, p73 ~ 79

本文分享自微信公众号 - 云水木石(ourpoeticlife),作者:云水木石

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 提高模型性能,你可以尝试这几招...

    在EZDL到底怎样,试试看…一文中,我尝试了百度推出的在线人工智能设计平台EZDL,其愿景是任何人不用编写一行代码就可以轻松地构建、设计和部署人工智能(AI)模...

    云水木石
  • [机器学习实战札记] 朴素贝叶斯

    《概率论》(当年我学习的课程为《概率论与数理统计》,涵盖了概率论与统计学)应该是每个理工科大学生都要学习的课程,不知道有多少同学和我一样,学得一头雾水。悲催的是...

    云水木石
  • AI.未来

    轰轰烈烈的双十一购物狂欢终于过去了,你的荷包是不是轻了好几吨?不知道你有没有被各种优惠、满减整的头晕脑胀,反正我是晕了。想想现在都已经是人工智能时代了,一二十年...

    云水木石
  • ID3决策树

    在解决分类问题的决策树中,叶子节点就表示所有的分类,比如这里的分类就有3种:无聊时阅读的邮件、需及时处理的邮件、无需阅读的邮件。

    程序员一一涤生
  • 决策树(ID3,C4.5,CART)原理以及实现

    决策树是一种基本的分类和回归方法.决策树顾名思义,模型可以表示为树型结构,可以认为是if-then的集合,也可以认为是定义在特征空间与类空间上的条件概率分布.

    用户1631856
  • 理解ID3决策树

    在解决分类问题的决策树中,叶子节点就表示所有的分类,比如这里的分类就有3种:无聊时阅读的邮件、需及时处理的邮件、无需阅读的邮件。

    程序员一一涤生
  • 掌握8项技能让你顺利受雇于4种逼格最高的数据科学岗位

    你想找到一份数据科学家的工作吗?如果你有这样的想法的话,那么你就有伴儿了。最近由Thomas Davenport和D.J. Patil在《哈佛商业周刊》上面发表...

    华章科技
  • 26道数据科学技能测试题,你能做完几题?

    人工智能这一术语涵盖范围广泛,主要涉及机器人学和文本分析等应用,并服务于商业和技术领域。机器学习隶属于人工智能,但其涉及领域较狭窄,且只用于技术领域。数据科学并...

    加米谷大数据
  • 苹果AI论文 SimGANs 代码及详解及自动驾驶的应用

    代码:https://github.com/wayaai/SimGAN 下文介绍有不少改进。链接不少是链接到代码。阅读原因可点击相关链接。

    用户1908973
  • SFFAI分享 | 呼奋宇:深度层次化图卷积神经网络【附PPT与视频资料】

    节点分类是图数据挖掘中一个基础而且重要的任务,已有的工作通常先使用图卷积网络(GCNs)学出每个节点的表达然后再分类。 但是大多数主流的图神经网络层数比较浅(仅...

    马上科普尚尚

扫码关注云+社区

领取腾讯云代金券