频道栏目
首页 > 网络 > 云计算 > 正文

决策树的使用介绍

2017-11-14 09:46:46      个评论    来源:qq_16093959的博客  
收藏   我要投稿

1.简介

1.1 干啥的?

决策树是一个预测模型,决策树模型常常用来解决分类和回归问题;

做决策树的过程也是一个特征选择的过程,选择重要的特征先划分,何为重要?那就需要算法,后文说。

1.2 代表什么?

对象属性与对象值之间的一种映射关系。啥啥啥,特征与结果的一种mapping;

1.3 树啥样子?

树中每个节点表示某个对象; 每个分叉路径则代表的某个可能的属性值; 每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。

1.4 树的节点?

一个决策树包含三种类型的节点:

1.决策节点——通常用矩形框来表式;

2.机会节点——通常用圆圈来表式;

3.终结点——通常用三角形来表示。

1.5 特点

决策树的特点是它总是在沿着特征做切分(平行于坐标轴做切分)。随着层层递进,这个划分会越来越细。虽然生成的树不容易给用户看,但是数据分析的时候,通过观察树的上层结构,能够对分类器的核心思路有一个直观的感受。

举个简单的例子,当我们预测一个孩子的身高的时候,决策树的第一层可能是这个孩子的性别。男生走左边的树进行进一步预测,女生则走右边的树。这就说明性别对身高有很强的影响。

1.6 适用情景

因为它能够生成清晰的基于特征(feature)选择不同预测结果的树状结构,数据分析师希望更好的理解手上的数据的时候往往可以使用决策树。同时它也是相对容易被攻击的分类器。这里的攻击是指人为的改变一些特征,使得分类器判断错误。常见于垃圾邮件躲避检测中。因为决策树最终在底层判断是基于单个条件的,攻击者往往只需要改变很少的特征就可以逃过监测。受限于它的简单性,决策树更大的用处是作为一些更有用的算法的基石。

2. 决策树算法

内容还是不少的,三种主要算法

2.1 ID3

谈到ID3,不得不扯熵,熵是啥?

样本集合不纯度,熵越小,集合不纯度越低;

知识的不确定性,熵越小,不确定性越小;

系统的复杂度,熵越大,系统越复杂。(系统越复杂,出现不同情况越多,信息量越大,熵越大。)

再次扯回来!

ID3算法是一个由Ross Quinlan发明的用于决策树的算法。这个算法便是建立在上述所介绍的奥卡姆剃刀的基础上:越是小型的决策树越优于大的决策树(be simple简单理论)。尽管如此,该算法也不是总是生成最小的树形结构,而是一个启发式算法。

缺点:根据ID3的公式可知,ID3算法侧重属性取值较多的特征。

2.2 C4.5

为了解决ID3的不足,C4.5加了个东东来调节。

C4.5之所以流行的原因是:

1、用信息增益率来选择属性分裂

2、构造树的过程中进行剪枝

3、能处理连续型数据和不完整数据

这里主要介绍一下如何选择属性(第一条)分裂对于规则来说是合适的,这就引出“熵”的概念。简而言之,“熵”是对混乱程度的度量,越乱熵越大,这也是为什么我让办公桌乱的原因。与之相对应的概念是“序”,就是有规律。越有序,越纯,熵越小;越乱,熵越大,越不纯;(这对后面理解很有帮助)

-缺点:C4.5算法侧重属性取值较少的特征。

2.3 CART

Classification And Regression Tree(CART)是决策树的一种,并且是非常重要的决策树,属于Top Ten Machine Learning Algorithm。顾名思义,CART算法既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Regression Tree)、模型树(Model Tree),两者在建树的过程稍有差异。

3. 随机森林

提到决策树就不得不提随机森林。Random Forest是加州大学伯克利分校的Breiman Leo和Adele Cutler于2001年发表的论文中提到的新的机器学习算法,可以用来做分类,聚类,回归,和生存分析,这里只简单介绍该算法在分类上的应用。Random Forest(随机森林)算法是通过训练多个决策树,生成模型,然后综合利用多个决策树进行分类。随机森林属于bagging算法,采用重复取样。

它首先随机选取不同的特征(feature)和训练样本(training sample),生成大量的决策树,然后综合这些决策树的结果来进行最终的分类。随机森林在现实分析中被大量使用,它相对于决策树,在准确性上有了很大的提升,同时一定程度上改善了决策树容易被攻击的特点。

决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等。但是同时,单决策树又有一些不好的地方,比如说容易over-fitting,虽然有一些方法,如剪枝可以减少这种情况,但是还是不够的。

模型组合(比如说有Boosting,Bagging等)与决策树相关的算法比较多,这些算法最终的结果是生成N(可能会有几百棵以上)棵树,这样可以大大的减少单决策树带来的毛病,有点类似于三个臭皮匠等于一个诸葛亮的做法,虽然这几百棵决策树中的每一棵都很简单(相对于C4.5这种单决策树来说),但是他们组合起来确是很强大。

一句话,随机森林利用投票的少数服从多数的原理,简单而高效。

适用情景:

数据维度相对低,同时对准确性有较高要求时。因为不需要很多参数调整就可以达到不错的效果,基本上不知道用什么方法的时候都可以先试一下随机森林。

上一篇:分布式项目实现教程2
下一篇:Storm学习总结,离线计算是什么?
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站