算法干货----决策树算法中的熵与信息增益

什么是决策树?为什么要用决策树?

   

  决策树是一种二分树,或是多分数。对于大量数据的细分工作有很大帮助。在日常生活中,决策树的算法可谓是每天都在用。小到用户分类,大到辅助决策。实际上他的使用很多。

  至于为什么要用到决策树,个人认为就是因为这种算法简单。代码实现起来主要就是IF-ELSE就可以实现。可这一算法的发展也是从ID3--->C4.5----->C5.0.

  它的主要步骤就两个:1,建树 2,剪树

  如何建树,就是如何分你的数据,按照哪种特性?比如人口统计数据,是按年龄,身高,体重,学历.............而如何选取里面一个指标,这就是建树的根本。比较这些指标的优劣势则较为重要,而这就是我们本文要讨论的熵与信息增益。

 

  小名就叫信息增益,还是拿人口统计数据来说,你要分析的目标人群是什么也决定着各指标商的大小。比如说,你分析人口数据是为了指到要买你减肥药的目标人群,那体重就在所有指标中显得尤其重要了。这一点,是我们拍着脑门就能够知道的,而当统计指标太多,如何确定哪项指标重要就要用到熵的这个概念。也就相当于把这些指标给量化成数值可供我们比较。

  现代社会,我们手中的数据量是非常庞大的。例如说一些国有事业单位,它们里边的数据字段(也就是上边说的指标)大都在20列以上。而要如何确定那此字段是我们所需要的是要与我们的分析目标相链接的。而每一列的数据又是分为分类变量与连续变量,而决策树起到的作用主要是在分类变量上,但如果要连续变量或都离散变量进行相应转换,也可以按分类变量对待。

  好了,把熵的概念理解清楚,你就明白了每一个分枝节点该选什么变量了!这一步完成了建树的过程。

剪树

  

  当一棵树长的特别茂盛的时候,我们就要开始修剪了,园艺师的说法是剪枝,而在我们决策树算法里就叫做剪树。

  剪树的过程也不复杂,就是把你用熵分出来的最终数据来一个统一要求,比如你是要二分树还是多分树?你要最多几个级别?最小的分叉要有多少个数据?这都是要考虑进来的因素。剪树到最后的阶段,就要开始与业务部门进行相应的互动。去验证你的算法,也即回到上边的那个例子,你找到的这些用户是否当你联系对方时,对方都会购买你的产品。

  然后根据业务部分统计到的信息,可以做正向处理(邮寄产品)或反向处理(改正产品特色进行精准营销)。

总结

  

  当进行了以上的操作之后,再把原始的数据按4:3:3的原则分配,再套入相应的模型开始做分类验证,相信在数据分析的过程中不断的完善自己的模型与算法。势必会达到我们的目的!

  以上就是自己对于决策树算法中的关键部分的理解,还有不足之处,还望大家都能多多指正,彼此学习,共同进步!

时间: 2024-10-10 22:09:41

算法干货----决策树算法中的熵与信息增益的相关文章

机器学习算法之决策树算法

该节主要是把<机器学习实战>书上第三章关于决策树的相关代码照样子实现了一遍.对其中一些内容作了些补充,对比ID3与C45区别,同时下载了一个大样本集实验决策树的准确率. 首先,对于决策树的原理,很多很好的博客值得一看: 从决策树学习谈到贝叶斯分类算法.EM.HMM 决策树算法总结 这两个已经详解了关于决策树的所有,慢慢品读吧. 下面是书上外加添加的部分程序,首先是tree.py里面的程序: import operator from math import log # calculate the

用是否买房为例来说明决策树算法的使用-AI机器学习

我们以是否买房为例子给大家介绍一下决策树算法的使用,数据集如下(仅做演示,不代表真实情况) 地段 近地铁 面积 单价(万) 是否购买 三环 是 60 8 是 三环 是 80 8 否 三环 否 60 7 是 三环 否 80 7 否 五环 是 60 7 是 五环 是 80 7 否 五环 否 60 6 是 五环 否 80 6 是 六环 是 60 6 是 六环 是 80 5.5 是 六环 否 60 5 否 六环 否 80 5 否 从上表中我们可以看到,确定可以购买的数量有7个,不购买的数量有5个,共数是

数据挖掘之决策树算法ID3算法的相关原理

ID3决策树:针对属性选择问题,是决策树算法中最为典型和最具影响力的决策树算法. ID3决策树算法使用信息增益度作为选择测试属性. 其中p(ai) 表示ai 发生的概率. 假设有n个互不相容的事件a1,a2,a3,-.,an,它们中有且仅有一个 发生,则其平均的信息量可如下度量: 对数底数可以为任何数,不同的取值对应了熵的不同单位. 通常取2,并规定当p(ai)=0时 =0 Entropy(S,A)=∑(|Sv|/|S|)* Entropy(Sv)公式2 以去不去打羽毛球为例子 A:属性:out

决策树算法总结

决策树算法实际就是一个不断分割训练数据集使其成为数据子集的过程.这种分类或回归模型成树形结构,这也是其被成为决策树算法的主要原因.决策树算法最主要的问题是如何分裂原始数据集使其数据集包含的类别纯度越来越高,于是前辈们引入了熵和信息增益等概念.下面来总结一下决策树算法的主要步骤: step1.计算目标属性(类别的熵): step2.选择一个属性分裂数据集,也即计算信息增益: step3.根据各属性的信息增益,选择最佳的分类属性,对数据集进行分裂: step4.判断剩余的数据集是否都属于同一类别,以

决策树算法-信息熵-信息增益-信息增益率-GINI系数-转

1. 算法背景介绍 分类树(决策树)是一种十分常用的分类方法.他是一种监管学习,所谓监管学习说白了很简单,就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类.这样的机器学习就被称之为监督学习.分类本质上就是一个map的过程.C4.5分类树就是决策树算法中最流行的一种.下面给出一个数据集作为算法例子的基础,比如有这么一个数据集,如下: 这个Golf数据集就是我们这篇博客讨论的基础.我们分类的目的就是根据某一

ID3决策树算法原理及C++实现(其中代码转自别人的博客)

分类是数据挖掘中十分重要的组成部分. 分类作为一种无监督学习方式被广泛的使用. 之前关于"数据挖掘中十大经典算法"中,基于ID3核心思想的分类算法 C4.5榜上有名.所以不难看出ID3在数据分类中是多么的重要了. ID3又称为决策树算法,虽然现在广义的决策树算法不止ID3一种,但是由 于ID3的重要性,习惯是还是把ID3和决策树算法等价起来. 另外无监督学习方式我还要多说两句.无监督学习方式包括决策树算法, 基于规则的分类,神经网络等.这些分类方式是初始分类已知,将样本分为 训练样本和

机器学习入门之决策树算法

1.什么是决策树(Decision Tree) 决策树是一个类似于流程图的树结构,其中每一个树节点表示一个属性上的测试,每一个分支代表一个属性的输出,每一个树叶节点代 表一个类或者类的分布,树的最顶层是树的根节点. 举一个例子.小明同学想根据天气情况是否享受游泳运动: 这里包含了6个属性,一条样例即为一个实例,待学习的概念为"是否享受运动",学习目标函数:f:X->Y. 根据上面的表中实例,我们可以试着用一个树结构的流程图来表示小明根据那6个属性决定是否享受运动: 从上面这个树状

[转]机器学习——C4.5 决策树算法学习

1. 算法背景介绍 分类树(决策树)是一种十分常用的分类方法.它是一种监管学习,所谓监管学习说白了很简单,就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类.这样的机器学习就被称之为监督学习.C4.5分类树就是决策树算法中最流行的一种.下面给出一个数据集作为算法例子的基础,比如有这么一个数据集,如下: 我们将以这个数据集作讨论的基础.进行分类的目的就是根据某一天的天气状态,如天气,温度,湿度,是否刮风,来

机器学习算法的R语言实现(二):决策树算法

1.介绍 ?决策树(decision tree)是一种有监督的机器学习算法,是一个分类算法.在给定训练集的条件下,生成一个自顶而下的决策树,树的根为起点,树的叶子为样本的分类,从根到叶子的路径就是一个样本进行分类的过程. ?下图为一个决策树的例子,见http://zh.wikipedia.org/wiki/%E5%86%B3%E7%AD%96%E6%A0%91 ? 可见,决策树上的判断节点是对某一个属性进行判断,生成的路径数量为该属性可能的取值,最终到叶子节点时,就完成一个分类(或预测).决策树