1.决策树算法实现的三个过程:

  • 特征选择:选择哪些特征作为分类的标准是决策树算法的关键,因此需要一种衡量标准来进行特征的确定,不同的决策树衡量标准不同。例如C4.5决策树就是以信息增益率来作为衡量标准。
  • 决策树的生成:根据所选择的衡量标准不断递归调用计算最后直到整个数据集中的特征不可分为止。决策树是从根节点开始自上而下逐渐生成树状结构。
  • 决策树的剪枝:在决策树学习中,为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多导致过拟合.因此需要剪枝降低过拟合风险。剪枝有预剪枝(边建立决策树边剪枝,就是设立一些规则来防止树过度生长。)和后剪枝(建立决策树后再剪枝让决策树生长成过拟合后再进行剪枝)

2.算法的实现步骤:

输入:数据集(训练集)S及属性A 输出:属性A对训练数据集S的信息增益

  • 先将S作为根节点,其目标属性y有c个类别属性。假设S中出现的概率,计算数据集S的信息熵

  • 假设属性A有k个不同取值,因此将S划分为k个子集,计算属性A对数据集S的信息熵

  • 计算按照属性A划分S的信息增益

  • 计算属性的分裂信息及信息增益率

  • 属性取值数目越大,分裂信息越大,从而抵消了属性取值数目所带来的影响,但增益率准则对可取值数目较少的属性有所偏好,所以应先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的属性.
  • 将该属性作为决策树的节点,在该节点的子节点上使用剩余属性递归执行①~⑤。
  • 对生成的决策树进行剪枝处理。

3.算法实例

例题:以下是某公司招录人员的信息表,运用C4.5算法构建决策树模型。

性别

学历

学校

经验

是否录用

本科

985

本科

211

研究生

普通院校

大专

普通院校

本科

985

研究生

普通院校

本科

211

大专

普通院校

本科

普通院校

本科

普通院校

本科

211

研究生

211

① 计算数据集S的信息熵

该数据集的样本数为12,目标属性有{是,否}两个取值,其中取值为“是”的有8个,取值为“否”的有4个,因此对应的p1=2/3p2=1/3。所以数据集S的信息熵为

② 计算各个属性A对数据集S的信息熵、信息增益、属性的分裂信息及信息增益率

a.对于属性性别:有两个取值{男,女}分别为,每个取值对应的情况分别为:

男----9个:其中录取的有6个,不录取的有3个

女----3个:其中录取的有2个,不录取的有1个

因此

信息熵:

信息增益:

分裂信息:

信息增益率:

b.对于属性学历:有三个取值{大专,本科,研究生}分别为,每个取值对应的情况分别为:

大专----2个:其中录取的有0个,不录取的有2个

本科----7个:其中录取的有5个,不录取的有2个

研究生--3个:其中录取的有3个,不录取的有0个

因此

信息熵:

信息增益:

分裂信息:

信息增益率:

c.对于属性学校:有三个取值{985,211,普通院校}分别为,每个取值对应的情况分别为:

985-------2个:其中录取的有2个,不录取的有0个

211-------4个:其中录取的有4个,不录取的有0个

普通院校--6个:其中录取的有2个,不录取的有4个

因此

信息熵:

信息增益:

分裂信息:

信息增益率:

d.对于属性经验:有两个取值{有,无}分别为,每个取值对应的情况分别为:

有----5个:其中录取的有2个,不录取的有3个

无----7个:其中录取的有6个,不录取的有1个

因此

信息熵:

信息增益:

分裂信息:

信息增益率:

③ 从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的属性.

所有属性的平均信息增益:

其中学历和学校的信息增益高于平均水平的属性,两者中增益率最高的是学校。

④ 以学校作为根节点,

按照其他三个属性对属性学校中的985进行划分,

性别

学历

学校

经验

是否录用

本科

985

本科

985

由表可知对属性学校中的985分支划分后的子节点已经是纯的,因此不再需要继续划分节点。

按照其他三个属性对属性学校中的211进行划分,

性别

学历

学校

经验

是否录用

本科

211

本科

211

本科

211

研究生

211

由表可知对属性学校中的211分支划分后的子节点已经是纯的,因此不再需要继续划分节点。

按照其他三个属性对属性学校中的普通院校进行划分,计算步骤同上:

性别

学历

学校

经验

是否录用

研究生

普通院校

大专

普通院校

研究生

普通院校

大专

普通院校

本科

普通院校

本科

普通院校

1).计算数据集普通院校的信息熵,共6个数据,其中录用的有2人,不录用的有4人。

2). 计算各个属性A对数据集S的信息熵、信息增益、属性的分裂信息及信息增益率

a.对于属性性别:有两个取值{男,女}分别为

信息熵:

信息增益:

分裂信息:

信息增益率:

b.对于属性学历: 有三个取值{大专,本科,研究生}分别为

信息熵:

信息增益:

分裂信息:

信息增益率:

c.对于属性经验:有两个取值{有,无}分别为S1S2

信息熵:

信息增益:

分裂信息:

信息增益率:

从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的属性.

所有属性的平均信息增益:

其中学历信息增益高于平均水平的属性,且增益率最高的也是学历。

⑤ 把学校的子节点中的普通学校节点的子节点设为学历。

以学历为父节点:如图所示:

按照其他两个属性对属性学历中大专的进行划分,

性别

学历

经验

是否录用

大专

大专

由表可知对属性学历中的大专分支划分后的子节点已经是纯的,因此不再需要继续划分节点。

按照其他两个属性对属性学历中本科的进行划分,

性别

学历

经验

是否录用

本科

本科

本科

本科

本科

本科

本科

1).计算数据集学历的信息熵,共7个数据,其中录用的有5人,不录用的有2人。

2). 计算各个属性A对数据集S的信息熵、信息增益、属性的分裂信息及信息增益率

a.对于属性性别:有两个取值{男,女}分别为

信息熵:

信息增益:

分裂信息:

信息增益率:

b.对于属性经验:有两个取值{有,无}分别为

信息熵:

信息增益:

分裂信息:

信息增益率:

其中经验增益率高于性别,所以学历节点中本科的子节点是经验。

按照其他两个属性对属性学历中研究生的进行划分,

性别

学历

经验

是否录用

研究生

研究生

研究生

由表可知对属性学历中的研究生分支划分后的子节点已经是纯的,因此不再需要继续划分节点。

划分结果如下图所示:

  • 最后总的划分结果如下:

数据挖掘之C4.5决策树算法相关推荐

  1. 决策树C4.5算法 c语言实现,数据挖掘十大经典算法(1) C4.5_决策树算法

    数据挖掘十大经典算法(1) C4.5_决策树算法 机器学习中,决策树是一个预测模型:他代表的是对象属性与对象值之间的一种映射关系.树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每 ...

  2. matlab粗集系统评估wine,C4.5 决策树算法对UCI wine数据集分类的实现(MATLAB)

    一.功能实现与样本分析 在数据挖掘领域,能够利用相应的算法对数据集进行训练,即对样本的特征进行分析,从而概括出相同类别的样本之间存在的内在特征联系,进一步对未知类别的样本进行预测,判断出该样本所属的类 ...

  3. C4.5 决策树算法对UCI wine数据集分类的实现(MATLAB)

    1.功能实现与样本分析 在数据挖掘领域,可以利用相应的算法对数据集进行训练,即对样本的特征进行分析,从而归纳出相同类别的样本之间存在的内在特征联系,进一步对未知类别的样本进行预测,判断出该样本所属的类 ...

  4. c4.5决策树算法python_Python3实现机器学习经典算法(四)C4.5决策树

    一.C4.5决策树概述 C4.5决策树是ID3决策树的改进算法,它解决了ID3决策树无法处理连续型数据的问题以及ID3决策树在使用信息增益划分数据集的时候倾向于选择属性分支更多的属性的问题.它的大部分 ...

  5. C4.5决策树算法概念学习

    数据挖掘一般是指从大量的数据中自动搜索隐藏于其中的有着特殊关系性的信息的过程. •分类和聚类 •分类(Classification)就是按照某种标准给对象贴标签,再根据标签来区分归类,类别数不变. • ...

  6. c4.5决策树算法 c语言,决策树(三):C4.5算法和CART算法

    ID3选择属性的依据是信息增益: ![Information Gain][equtation] [equtation]: http://latex.codecogs.com/svg.latex?g_r ...

  7. cart算法_ID3、C4.5、CART决策树算法

    本文主要介绍的主要内容如下: 概念 ID3 决策树算法 C4.5 决策树算法 CART 决策树算法 1. 概念 1.1 信息熵 信息熵(Entropy),随机变量的不确定性,也称为"系统混乱 ...

  8. [飞桨机器学习]决策树算法

    [飞桨机器学习]决策树算法 一.简介 1.概述 决策树算法是一种逼近离散函数值的方法.它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析.本质 ...

  9. 机器学习入门学习笔记:(3.1)决策树算法

    前言   决策树是一类常见的机器学习方法,属于监督学习算法.决策树本身不是一种很复杂的算法,只需要简单的数学基础的就可以理解其内容.一些比较典型的决策树算法有:ID3.C4.5.CART等等决策树算法 ...

最新文章

  1. 【系统平台】大四区部署
  2. 语言模型微调领域有哪些最新进展?一文详解最新趋势
  3. 课程设计---约瑟夫环
  4. Javascript事件绑定this
  5. H.264的技术优势及其在H.323系统中的应用
  6. Python中参数函数内部赋值与使用+=的变量
  7. 胶囊网络不同实现代码
  8. AI顶会,正在使用AI来审阅AI论文
  9. 10无法勾选隐藏的项目_Excel的隐藏和保护,你会用吗?
  10. python中pygal_在Python中导入pygal查看直方图
  11. arduino nano 蓝牙_贸泽开售结合蓝牙5.2与USB 2.0的 Nordic Semiconductor nRF52820多协议SoC...
  12. [管理]《高绩效人士的五项管理》 -- 李践
  13. C#调用第三方ocx控件 (winform /aspx)
  14. 8 -- 深入使用Spring -- 2... Spring的“零配置”支持
  15. 全球六大国际域名解析量:.COM第一 环比净增31.5万
  16. idea快捷键自动生成序列化id
  17. 学生选课管理系统(下)
  18. 怎样进行结构化思维思考?
  19. 图像信息处理:bmp文件、颜色空间转化、灰度图
  20. 锚框、交并比和非极大值抑制(tf2.0源码解析)

热门文章

  1. 交错CRM BOOST PFC仿真(三)——PSIM
  2. eclipse 代码颜色
  3. android省电模式 接口,了解是否启用了省电模式 – Android SDK
  4. 在线油耗计算机,计算器新玩法 Windows 7变身油耗计算器
  5. VMware虚拟机设置统一网段
  6. mount通过NFS挂载
  7. java aio_Java AIO详解
  8. Spring Boot 实现将多个MinIO文件压缩成压缩包并下载至本地
  9. [GridView控件]事件详解
  10. 详解遗传算法与生产作业调度