美文网首页
决策树算法简介

决策树算法简介

作者: taon | 来源:发表于2019-06-02 20:05 被阅读0次

树模型是机器学习中非常常用的一种算法,既可以处理分类问题,也可以处理回归问题,更多的时候是用来处理分类问题的。
我们用下图做一个示例,小明家有五口人,爷爷、奶奶、妈妈、妹妹和自己,我们现在要判断谁喜欢打游戏。这里我们选了两个特征年龄和性别,先用年龄进行分类,年龄大于15岁的一组,年龄小于15岁的一组,再使用性别特征对小于15岁的这组进行分类,男生一类,女生一类,最终就分出了男生喜欢打游戏。
这个过程跟我们高中数学学过的流程图是一样的。在计算机语言中,我们将这样的模型称为树模型,一组数据经过不同的特征进行多次分支,最后形成一棵枝繁叶茂的树。这些特征我们称之为节点,第一个特征我们称之为根节点,最后无法再分的节点我们称之为叶子结点(最终决策结果)。

树的组成
从图中可以看出,树模型是由根结点,叶子结点和非叶子节点构成的。

决策树示例.png
决策树的构造与训练
训练阶段:从给定的数据集训练出一棵树(从根节点开始选择特征,如何进行特征切分),这是决策树的难点。像上图中例子,无论选择年龄还是性别,对于整个决策树的构造,基本没有什么影响。但是对于特征多的数据来说,我们在选择切分特征时是有一定的先后顺序的,前后不可颠倒。
测试阶段:根据构造出来的树模型从上到下走一遍就好了。

分类节点的选择标准 -- 熵
熵,看到这个词,我第一个想到的是高中化学中关于“熵”的定义。熵是衡量系统混乱程度的量,任何化学反应系统都是朝着熵增加的方向进行。但在分类任务中,我们希望能够将系统中不同种类的事物清清楚楚的划分开,是朝着熵减的方向进行。
H(x) = -∑pi * log(pi), i=1,2,3,4.......
举个例子:
A集合[1,1,1,1,1,1,1,2,2]
B集合[1,2,3,4,5,6,7,8,9]
显然A集合的熵值要低的多,因为A集合中只有两类值,相对稳定一些,而B集合中的类别非常多,熵值就会大很多。在分类任务中,我们希望通过节点分支,系统的熵值能大幅度的减小。

信息增益
数据通过节点分支后,系统熵值的减小幅度。假设分类前系统的熵值H(x) = 0.96,分类后H(x) = 0.64,信息增益则为0.32。我们通过信息增益的大小来选择节点,信息增益值最大的作为根节点,其次选出第二节点,第三节点等等。

分类节点的选择标准 -- GiNi系数
Gini(p) = ∑p(1-p) = 1-∑p^2
基尼系数与熵类似,只是计算方式不同,当系统数据越纯时,p趋近于1,gini系数趋近于0。

决策树的剪枝策略
理论上,通过树模型,我们可以将任何数据区分开,只要我们无限去分类。但是这样会存在一个问题,我们构造出来的决策树枝繁叶茂(如图),这样对于训练集数据的分类效果非常好,但是在测试集上的表现就比较差,这就导致了我们机器学习中经常出现的过拟合问题。

Decision tree.jpg

所以我们就需要对决策树进行修剪,就像园丁一样,对花园定期修剪。决策树的剪枝策略有两种,预剪枝和后剪枝。
预剪枝:在构造决策树的过程中,提前添加限制条件,如:限制深度,比如只能分叉3次;叶子结点个数;叶子结点样本数,信息增益量等。这也是我们常用的方法。
后剪枝:当建立完决策树后来进行剪枝。

相关文章

  • 第5章 决策树

    内容 一、决策树内容简介 二、决策树的模型与学习 三、特征选择 四、决策树生成 五、决策树剪枝 六、CART算法 ...

  • 决策树算法

    1. 决策树算法简介 决策树思想来源非常朴素,程序设计中的条件分支结构就是if-else结构,最早的决策树就是利用...

  • Python数据挖掘之决策树(ID3、C4.5、CART)

    一、决策树简介   决策树(Decision Tree)是一种基于信息论的启发式的监督模型,决策树背后的生成算法依...

  • 1 . spark ml 随机森林练习代码讲解

    一,算法简介 随机森林是决策树的集成算法。随机森林包含多个决策树来降低过拟合的风险。随机森林同样具有易解释性、可处...

  • 决策树-1

    决策树算法简介 决策树属于经典的十大数据挖掘算法之一,是一种类似于流程图的树结构,其规则就是IF...THEN.....

  • 机器学习|决策树分类与python实现

    目录: 1.决策树简介 2.决策树生成 a) 选择标准——熵 b) 信息增益——ID3算法 c) 信息增益率——C...

  • 决策树算法简介

    树模型是机器学习中非常常用的一种算法,既可以处理分类问题,也可以处理回归问题,更多的时候是用来处理分类问题的。我们...

  • 决策树算法总结

    目录 一、决策树算法思想 二、决策树学习本质 三、总结 一、决策树(decision tree)算法思想: 决策树...

  • 100天搞定机器学习|Day23-25 决策树及Python实现

    算法部分不再细讲,之前发过很多: 【算法系列】决策树 决策树(Decision Tree)ID3算法 决策树(De...

  • 决策树Decision Tree

    决策树是一种解决分类问题的算法 。 常用的 决策树算法有: ID3 算法 ID3 是最早提出的决策树算法,他...

网友评论

      本文标题:决策树算法简介

      本文链接:https://www.haomeiwen.com/subject/oywutctx.html