引言

在本文中主要分析了决策树的相关知识,主要包含了决策树的原理分析、数学公式。首先了解到决策树是用来分类。分类问题不仅是一个普遍存在的问题,而且是其他更加复杂的决策问题的基础,更是机器学习和数据挖掘技术中最庞大的一类算法家族。

决策树概念

这里借用周志华西瓜书的一个例子,例如当我们拿到一个西瓜时,有颜色、根底好坏、敲打发出的声响等特征(这里的每一个特征就是一个西瓜的属性),通过一定的规则判断首先使用哪个属性分类可以获得高的可信度,假如颜色的可信度较高,则将颜色属性作为根节点。后面使用同样的规则进行,直至到达叶子节点。其中叶子节点代表分类结果,中间的每个节点代表了西瓜的每个属性。通过训练集数据建立决策树,当有新的数据时,则根据决策树判断这个瓜的好坏。决策树中常用的算法有ID3算法、c4.5算法等。

决策树中ID3算法

在决策树中,我们每次使用较优的属性进行划分。随着划分的进行,我们希望决策树的分支节点所包含的样本属于同一个类别,即分类结果的纯度。
在信息论,我们学过,我们期望的信息越小,则信息增益越大。我们使用信息增益判别属性的优劣。首先介绍一下信息熵,信息熵的作用主要用来衡量样本集合的纯度。
我们假定在当前样本集合D中,第k类样本所占的比例为pkp_k,则D的信息熵为

Ent(D)=−∑k=1npklog2pk

Ent(D)=-\sum_{k=1}^np_k\log_2p_k

其中Ent(D)越小,则样本集D越高
假定属性a有v个离散的取值{a1,a2...ava^1,a^2...a^v},并且第v个取值对应的样本数量为DvD^v,则信息增益为

Gain(D,a)=Ent(D)−∑v=1V|Dv||D|Ent(Dv)

Gain(D,a)=Ent(D)-\sum_{v=1}^V\frac{|D^v|}{|D|}Ent(D^v)
一般来说,信息增益越大,则纯度越高。
接下来我们使用一个具体的例子讲解算法的使用,我们检测账号的真实性。
(图片来自于作者 http://www.cnblogs.com/leoo2sk/archive/2010/09/19/decision-tree.html,在此表示感谢)
s、m、l代表了小中大关系。
首先计算日志的亲密度的信息增益
我们可以看到“真实”类别占到 710\frac{7}{10},而“非真实”类别占到 310\frac{3}{10},因此可以计算信息熵为

Ent(D)=−∑k=1npklog2pk=−(710log2710+310log2310)=0.879

Ent(D)=-\sum_{k=1}^np_k\log_2p_k=-(\frac{7}{10}\log_2\frac{7}{10}+\frac{3}{10}\log_2\frac{3}{10})=0.879
我们看到日志亲密度一共有s、m、l三个类别,首先看一下s包含了样本集有3个,其中一个yes,其余两个类别为no。

Ent(Ds)=−(13log213+23log223)

Ent(D^s)=-(\frac{1}{3}\log_2\frac{1}{3}+\frac{2}{3}\log_2\frac{2}{3})

Ent(Dm)=−(34log234+34log234)

Ent(D^m)=-(\frac{3}{4}\log_2\frac{3}{4}+\frac{3}{4}\log_2\frac{3}{4})

Ent(Dl)=−(03log203+33log233)

Ent(D^l)=-(\frac{0}{3}\log_2\frac{0}{3}+\frac{3}{3}\log_2\frac{3}{3})
则日志亲密度的信息增益为

Gain(D,a)=Ent(D)−∑v=1V|Dv||D|Ent(Dv)=Ent(D)−310Ent(Ds)−410Ent(Dm)−310Ent(Dl)=0.276

Gain(D,a)=Ent(D)-\sum_{v=1}^V\frac{|D^v|}{|D|}Ent(D^v) \\=Ent(D)-\frac{3}{10}Ent(D^s)-\frac{4}{10}Ent(D^m)-\frac{3}{10}Ent(D^l)\\=0.276
使用同样的方法可以得到好友密度、是否使用真实头像的信息增益分别为 0.033和0.5530.033和0.553。
因为是否使用真实头像具有最大的信息增益,所以第一次分裂选择是否使用真实头像为分裂属性,分裂后的结果如下图表示:
在上图的基础上,再递归使用这个方法计算子节点的分裂属性,最终就可以得到整个决策树。

C4.5算法

在这里我们简述一下c4.5算法的优缺点以及原理。
信息增益对去之术木较多的属性具有偏好,为了减少这种偏好带来的不利影响,因此后面提出了c4.5算法。该算法使用增益率来选择最优属性划分。

Gain_ratio(D,a)=Gain(D,a)IV(a)

Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)}
其中

IV(a)=−∑v=1V|Dv|Dlog2|Dv|D

IV(a)=-\sum_{v=1}^V\frac{|D^v|}{D}log_2\frac{|D^v|}{D}
其中IV(a)称为a的固有值,从中选出增益率高的,作为划分依据。

剪枝处理

在实际构造决策树时,通常要进行剪枝,这时为了处理由于数据中的噪声和离群点导致的过分拟合问题。
剪枝pruning是决策树学习算法对付“过拟合”的主要手段,决策树分支过多,以至于把训练集自身的一些特点当做所有数据都具有的一般性质而导致过拟合,“预剪枝”prepruning和“后剪枝”postpruning是决策树剪枝的两种基本策略,预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;后剪枝则是先从训练集生成一颗完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能的提升,则将该子树替换为叶结点。

决策树优点

  • 决策树可读性好,描述性比较好
  • 决策树效率高,一旦将决策树建立好,短期内可以长期实用

机器学习中决策树浅析相关推荐

  1. 机器学习中决策树的随机森林_决策树和随机森林在机器学习中的使用

    机器学习中决策树的随机森林 机器学习 (Machine Learning) Machine learning is an application of artificial intelligence ...

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

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

  3. python决策树实例_机器学习中的决策树及python实例

    一棵树在现实生活中有许多枝叶,事实上树的概念在机器学习也有广泛应用,涵盖了分类和回归.在决策分析中,决策树可用于直观地决策和作出决策.决策树,顾名思义,一个树状的决策模型.尽管数据挖掘与机器学习中常常 ...

  4. 机器学习中的特征选择——决策树模型预测泰坦尼克号乘客获救实例

    在机器学习和统计学中,特征选择(英语:feature selection)也被称为变量选择.属性选择或变量子集选择.它是指:为了构建   模型而选择相关特征(即属性.指标)子集的过程.使用特征选择技术 ...

  5. 机器学习中的算法:决策树模型组合之随机森林(Random Forest)

    基础知识 [关于决策树的基础知识参考:http://blog.csdn.net/holybin/article/details/22914417] 在机器学习中,随机森林由许多的决策树组成,因为这些决 ...

  6. 独家 | 浅析机器学习中的自由度

    作者:Jason Browniee 翻译:张若楠 校对:林鹤冲 本文长度为2800字,建议阅读8分钟 本文介绍了自由度的概念,以及如何判断统计学模型和机器学习模型中的自由度. 标签:数据处理 自由度是 ...

  7. 浅析机器学习中的自由度

    作者:Jason Browniee 翻译:张若楠 校对:林鹤冲 本文长度为2800字,建议阅读8分钟 本文介绍了自由度的概念,以及如何判断统计学模型和机器学习模型中的自由度. 标签:数据处理 自由度是 ...

  8. 机器学习中的模型评价、模型选择及算法选择

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 正确使用模型评估.模型选择和算法选择技术无论是对机器学习学术研究还是工业场景应用都至关重要.本文将对这三个任务的相关技术 ...

  9. 一文介绍机器学习中的三种特征选择方法

    作者 | luanhz 来源 | 小数志 导读 机器学习中的一个经典理论是:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限.也正因如此,特征工程在机器学习流程中占有着重要地位.广义的特征 ...

最新文章

  1. 「我是个杀猪的,毫无基础看这本能学会 Python 吗?」
  2. 用html编写ASCII表,[html_css]ASCII编码表
  3. 北京理工大学计算机学院 王亮,王 亮
  4. linux系统用xset命令,专 linux命令之set x详解
  5. css div漂浮向下,DIV+CSS固定底部的漂浮广告
  6. LoadRunner性能测试-思考时间
  7. 智慧城市纳入北京重点支持高新领域
  8. cv::cornerSubPix()亚像素角点检测
  9. ListListmodel如何更快捷的取里面的model?
  10. jieba分词及词性判断
  11. 【常见网页排版布局】
  12. 恭喜惠州市靖元五金塑胶制品设计有限公司与华信环球再次达成合作!
  13. 苹果手机壳_外观防护兼具,5款时尚简约苹果XS Max手机壳精选
  14. 如何在Windows版iTunes中播放Ogg音乐文件
  15. SCA连载GDPR罚单之保加利亚国家税务局(NRA)信息泄露事件
  16. 什么是SNMP?为什么需要SNMP?
  17. GDAL Python读取.pbf文件
  18. 计算机科学与技术专业导论3500,计算机科学与技术专业导论.docx
  19. Vue 官方成员 Hcy:怎么才能有尤雨溪一半强,该怎么学习?
  20. 深入理解Flutter的图形图像绘制原理——图形库skia剖析

热门文章

  1. 支付宝小程序实现自定义地区三级联动
  2. 支付宝实现省市区三级联动my.multiLevelSelect(附带省市区js数据)
  3. 项目中全局异常设置?
  4. 【Python】字典
  5. [收集]网页美学设计原则[转]
  6. 如何激励员工留住人才?一定不能只靠加钱
  7. 游戏原画零基础入门到精通——你所不知道的那些重要性
  8. c4d打开没反应_(图文+视频)C4D野教程:那张除夕海报是如何制作的?
  9. 学校图书馆计算机书籍,学校图书馆共有 300 万册图书,想统计其中 Compute
  10. 当企业拥有独立的官方网站时,意味着什么?