前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[机器学习实战札记] 决策树

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

作者头像
云水木石
发布2019-07-01 14:43:15
4740
发布2019-07-01 14:43:15
举报

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

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

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

算法有两个要点:

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

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

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

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

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

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

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

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

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

参考
  1. 《机器学习实战》, p32 ~ 52
  2. 《机器学习》, p73 ~ 79
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云水木石 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档