ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

决策树思想步骤讲解和常见决策树方法的区别(超级易懂!)

2021-10-20 12:58:31  阅读:224  来源: 互联网

标签:分类 增益 信息 信息熵 讲解 易懂 数据 决策树


决策树

决策树算法也算是听过很多遍的算法了,关于那个怎么选择对象的例子也听了许多遍,但是之前一直理解不够深刻,满脑子能够记住的只有那个树的形状和知道要分数据。可是对于怎么分数据,为什么分数据,一些常见的词(信息熵、信息增益、基尼系数)和算法都是什么样子的都不是很清楚。最近学校上课又好好的听了一遍(感觉老师讲的还是很好的),把这些基础的知识都弄懂了,在这里用简单的语言总结一下。本篇文章偏向于理解~

文章目录

决策树的思想和步骤

先做一个引入铺垫一下,时间有限的可以直接跳转到黑色的标题那里。

关于决策树这个方法是怎么产生的我没有查证,可能也无从查证,但是我猜大概是这样的。有一天,突然发现具有某一类特征的大多数是一类人,具有另外的特征的就是另外一类人,简单来说,类由特征分出(虽然会有一些例外,但是大多数都是符合的,也就是说可以用来做群体决策)。其实这也很符合人类最开始的分类方法啊,参考下人类怎么分男生女生的就明白了,这样看来我们早就会使用决策树了呢~

但是有一些问题,总是是似而非,难以像男生女生一样给出一个明确的分类标准,比如什么人可以还的起贷款,什么人值得被爱…你能找出什么特征来说明嘛?有房的人一定还的起贷款嘛?学历低的人一定还不起嘛?找不到吧。肯定找不到啊,人类具有太多的不确定性了。所以只好搜集和我最想找到的本质的东西最相关的一些数据,按照这些数据进行分类,并且尽可能的减少分类的错误率。(比如指标完全相同的两个东西,结果可能不同,我们想做的就是尽可能的知道这个结果的偏向,因为不存在完全正确的结果)

造成上面的似是而非的因素还有可能的原因就是,一些数据搜集不到。比如判断男生女生只能搜集到身高和头发的长度,但是搜集不到本质的判断标准。也许世界上的所有事情都有一个本质可以判断的指标,但是这个指标是一种极端抽象不可衡量的东西吧。

基本思想和步骤

  • 目的:想要根据连续或者离散的一些特征,来判断最后我们想要的结果(Y)
  • 过程
    1)利用一定的指标,选择特征合适的值作为分类的标准对数据进行分类
    2)对于分类后的数据进行评价:如果是分类数据采用投票的方式,如果是连续数据采用平均值的方式(即分完的样本如果Y值是男生多,就认为这个值全部是男生;如果样本的值有1.2.3,我们就认为这个值是2)
    3)关于1)中的指标,分类数据一般使用信息熵或者是基尼系数,而连续数据使用残差平方和来衡量
  • 总结本质:利用一定的方式,找到合适的特征,以此作为判断,将样本分类

怎么衡量信息来确定分支点?

分类数据(值是分类,没有含义只是代表不同的种类)

信息熵、条件熵和基尼系数
  • 信息熵可以简单理解为信息的随机程度,随机程度越大,信息熵越大(高中物理学过,熵就是混乱程度,这样还挺形象的)比如一组数据如果都是1,是不是没有什么随机性?信息熵就很小?如果里面1和2一样多,信息熵是不是就会更大?为了用数学的语言来描绘这个值,产生了下面这个公式:
    // 在计算中一定要注意,这里所有的 l o g log log的底在实际的计算里面都是2!
    // 而且这个值针对的是 Y Y Y的信息的随机程度哦
    在这里插入图片描述其中 k k k表示某个属性下面有 k k k种具体的值, p i p_i pi​表示每一种值出现的概率,这个函数图像如下,最平均的时候,随机性最大,相应的信息熵也越大在这里插入图片描述

  • 条件熵是一种信息熵,是在加入分类(X)判断之后的信息熵,这个熵一般比分类之前的熵更小,因为分类使得数据更有序了,计算公式如下(假设分类条件X只有两个取值,1和2)
    在这里插入图片描述
    其中 H H H表示的就是上面信息熵的大小了。

  • 除了信息熵之外,还有基尼系数也可以用来衡量上面说的信息的随意性,从图像上看就知道为啥了,公式和图放在下面
    在这里插入图片描述
    在这里插入图片描述

  • 一般我们都希望信息熵在分类之后减小,即最后被分为的一类应该是一类,具体来说就是,男女生的分类里面,我们希望最后分为的一类里面要不全部是男生,要不全部是女生。这个时候指标的判断标准就是,信息熵或者基尼系数的值很小。

信息增益和信息增益率

开始的时候,我们认为信息的随机性的减少是一种有好处的事情,我们把这个好处叫做信息增益,把这个值定义为
在这里插入图片描述
每一步,我们希望这个增益尽量的大,希望最后的信息熵尽量的小,但是存在一个问题。假如说物以类聚,人以群分,如果我把每一个人都分成一个单独的类,那么是不是信息熵会非常非常的小呢?这样信息增益是不是就很大呢?但是这样也没有意义啊。那怎么衡量呢?于是利用了修正的思想,相对于分类的数目,给予了一个惩罚项,这个惩罚项满足在分类越多的时候,值就越大,用信息增益除以这个惩罚项,得到信息增益率,希望信息增益率越大越好。这样就能在保证分类数不会过多的情况下,得到较好的分类结果。
惩罚项:(形式和信息熵很像,也可以理解为是类种的分类的信息熵,里面的分子表示分到每一类的样本的数量,下面是样本的总的数量)
在这里插入图片描述
信息增益的公式
在这里插入图片描述

连续数据(值是度量,有含义的数据)

一般用残差平方和来度量,希望这个值较小比较好。但是容易发生过拟合,实际操作中常常设置当一个树枝的点小于20的时候就不分了(不过没有说总的数据量,感觉这样设置会存在一点问题)。
在这里插入图片描述

选择特征的方法

一般是把每个特征都试一下,选择可以使得信息增益增加更大(或者信息增益率更大)或者残差减小最多的特征作为节点,之后同样的方法不断的选择特征来分就可以了。

剪枝的问题

因为决策树还是比较容易出现过拟合的现象的,即分支分的太多太碎,明明训练的是树叶,但是因为一开始的样本是锯齿状的,所以认为锯齿状的才是树叶。为了防止这种现象,就要进行减枝。有预剪枝和后剪枝。思路都是按照现有的树计算错分率来完成的。错分率显著的上升的时候,认为这种划分没有必要,就不要这种划分。

常见的决策树方法和区别

ID3算法

  • 分类特征,不做连续特征
  • 标准:信息增益
  • 多叉树

C4.5算法

  • 分类和连续特征
  • 标准:信息增益率
  • 多叉树,仅分类

CART算法

  • 分类特征和连续特征
  • 标准:基尼系数和残差平方和
  • 分类和回归,二叉树

一道练习题目

#手算的一道题目(其实是我们的作业题)可以练练手,看下理解了没有~
在这里插入图片描述

几个疑问?

  • 关于信息增益俩民的那个惩罚项,能不能能用一个更加简单的方式来表示,但是达到相同的效果?
  • 在连续的数据里面,是不是也可以定义一个类似于信息增益的概念?(不过感觉用减枝的思想也挺好的)甚至是不是可以定义一个信息增益百分比,来看每次分的效力?当效力下降平缓的时候,证明不用再分,再分也不会更好了?

//文章里面有任何不懂的地方或者有质疑的地方可以在评论区问嗷~有时间看到会回复哒

标签:分类,增益,信息,信息熵,讲解,易懂,数据,决策树
来源: https://blog.csdn.net/m0_46716894/article/details/120858406

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有