推荐阅读:纯度;信息熵;信息增益

关键词: 纯度;信息熵;信息增益;增益率;ID3;C4.5;基尼指数;预剪枝;后剪枝

4.1基本流程

关键词:决策树(decision tree)
决策树是一种分类方法,其优点:计算量小,可解释性强,比较适合处理有缺失属性值的样本以及类别不均衡的数据集。缺点:容易过拟合,数值必须是离散型。
一棵决策树包括:根结点,内部结点和叶结点。整个训练过程就是从根结点出发,经过若干个内部结点,最终达到若干个叶结点的过程。即:根结点—-内部结点—–叶结点。 叶结点就是分类的类别,根结点中包含的是整个训练样本,而内部结点就是一个个划分属性(判别)。具体如图所示:

4.2 划分选择

关键词:纯度;信息熵;信息增益;增益率;ID3;C4.5;基尼指数。
对于决策树来说首要问题是寻找决定性属性(特征),即当前数据集上哪个属性(特征)在划分数据分类时起决定性作用。如何称之为起决定性作用呢? 也就是说通过该属性,可以把样本划分得更“纯”, “纯”是啥意思呢?“纯度”(purity)指的是在中间结点(分支结点)所包含的样本尽可能属于同一类别。我们在众多属性中优先找一个起决定性的属性来划分样本,划分得越纯越好。那么纯怎么度量呢? 就要用到信息熵(information entropy),信息熵可以理解为信息的不确定性,信息熵越大,表明越不确定的东西。我们要“纯”,就是要信息很确定,即要信息熵小。信息熵衡量的是一个结点当中的纯度,而我们要的是当一个属性把样本划分到分支结点时,要让这个“纯度”更纯, 如何衡量这个“纯度”的变化呢? 这里就要用到信息增益(information gain),也就是说,信息增益是衡量一个属性把当前样本集进行划分之后,这个纯度的变化量,我们希望的时越纯越好,所以要信息增益越大越好。
有点绕,理一下,信息熵是针对单一结点而言,一个结点有它的信息熵,而信息增益是针对某一属性而言,指的是通过这个属性划分之后的那些结点的“纯度”相对于原结点的“纯度”的变化量,注意是变化量喔! 看一下公式就好理解了:
信息熵 : Ent(D)=−∑Kk=1pklog2pkEnt(D)=-\sum_{k=1}^{K}p_{k}log_{2}p_{k},在结点中的样本集为D,样本集D总共有K个类别, 表示第k个类别占样本集D中的比例。

信息增益 : Gain(D,a)=Ent(D)−∑Vv=1|Dv||D|Ent(Dv)Gain(D,a)=Ent(D)-\sum_{v=1}^{V} \frac{\left | D^{v} \right |}{\left |D \right |}Ent(D^{v}),其中a是属性,a的属性有V个取值,∑后的第一项(|Dv||D|\frac{\left | D^{v} \right |}{\left |D \right |})是第v个属性的权重,所以这是计算样本集D,经过属性a的划分之后的那V个子结点的“纯度”的变化量

所以决策树的训练过程就是,基于当前结点的样本,要找一个起到决定性的属性来对当前样本进行划分,而怎么比较各个属性的决定性大小呢?
著名的ID3(Iterative Dichotomiser ,迭代二分类器)决策树学习算法中,就采用信息增益来衡量的。

而在著名C4.5算法则采用增益率来衡量。为什么采用增益率呢? 我们回头看看信息增益的公式,发现属性的可能取值种类有V种,这个V的数量会严重影响决策树的性能。具体来说就是,信息增益准则对可取数值(例如V种取值)较多的属性(属性a)有所偏好,当属性a的取值可能有20种,而别的属性仅2,3种可能的时候,那么这棵树就偏好属性a,显然这是不合理的,因此,C4.5(Quinlan,1993)采用增益率来衡量各个属性之间的决定性作用大小

增益率公式就不写了,翻书吧,但是增益率准则对 可取值数目较少的属性有偏好,这点与信息增益准则有所不同。
基尼指数(Gini index):CART(classification and Regression Tree)决策树,采用基尼指数来选择划分属性。基尼指数Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率,因此,Gini(D)越小,则数据集D的纯度越高。

4.3 剪枝处理(pruning)

关键词:预剪枝;后剪枝。
剪枝(pruning)是决策树算法对付“过拟合”的主要手段。基本策略分为“预剪枝”(prepruning),“后剪枝”(post-pruning)。预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分,将当前结点标记为叶结点。后剪枝是先训练生成一棵树,然后自底向上对非叶结点进行考察,若将该结点对应的子树替换为叶结点能提升决策树泛化性能,则将该子树替换为叶结点。

【机器学习-西瓜书】四、决策树:信息熵;信息增益;增益率;ID3;C4.5相关推荐

  1. 机器学习西瓜书(周志华)第七章 贝叶斯分类器

    第七章 贝叶斯分类器 1. 贝叶斯决策论 1.1 先验分布 1.2 后验分布 1.3 似然估计 1.4 四大概率在贝叶斯分类中指代含义 1. 朴素贝叶斯 7. 课后练习参考答案 1. 贝叶斯决策论 贝 ...

  2. 机器学习西瓜书-1-2章

    学习目标: 概览机器学习西瓜书 1.2章 学习内容: 第一章 绪论 1.1 基本术语 1.2 假设空间 1.3 归纳偏好 1.4 发展历程 第二章 模型评估与选择 2.1 经验误差与过拟合 2.2 评 ...

  3. 周志华-机器学习西瓜书-第三章习题3.3 编程实现对率回归

    本文为周志华机器学习西瓜书第三章课后习题3.3答案,编程实现对率回归,数据集为书本第89页的数据 使用tensorflow实现过程 # coding=utf-8 import tensorflow a ...

  4. 小白学机器学习西瓜书-第三章对数几率回归

    小白学机器学习西瓜书-第三章对数几率回归 3.3 对数几率回归 3.3.1 对数几率函数 3.3.1 估计参数 上一部分我们介绍了线性回归,包括简单的二元回归和多元回归,这两个主要解决的是拟合预测的问 ...

  5. 机器学习西瓜书南瓜书 神经网络

    机器学习西瓜书&南瓜书 神经网络 1. 神经元模型 神经网络:由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实事件物体所做出的交互反应. 神经网络最基本的成分 ...

  6. [机器学习-Sklearn]决策树学习与总结 (ID3, C4.5, C5.0, CART)

    决策树学习与总结 (ID3, C4.5, C5.0, CART) 1. 什么是决策树 2. 决策树介绍 3. ID3 算法 信息熵 信息增益 缺点 4. C4.5算法 5. C5.0算法 6. CAR ...

  7. 决策树①——信息熵信息增益基尼系数

    本文主要是通过大白话,解释何为 信息,信息熵,信息增益,信息增益率,基尼系数 一.信息(information) 能消除不确定性的内容才能叫信息,而告诉你一个想都不用想的事实,那不叫信息. 比如数据分 ...

  8. 机器学习西瓜书各章详细目录定位

    第一章 绪论 1.1 引言(P1) 1.2 基本术语(P2) 1.3 假设空间(P4) 1.4 归纳偏好(P6) 1.5 发展历程(P10) 1.6 应用现状(P13) 1.7 阅读材料(P16)   ...

  9. 【吃瓜教程】周志华机器学习西瓜书第三章答案

    线性模型结构梳理 3.1 试析在什么情形下式3.2中不必考虑偏置项b 答案一: 偏置项b在数值上代表了自变量取0时,因变量的取值: 1.当讨论变量x对结果y的影响,不用考虑b: 2.可以用变量归一化( ...

  10. 决策树(信息熵、增益率、基尼指数)

    目录 前言 一.决策树是什么? 二.实验过程 1.选择数据集中各个决策属性的优先级 1.1信息熵 1.2增益率 1.3基尼指数 2.决策树的构造 2.1创建决策树: 2.2准备数据: 2.3.读取和保 ...

最新文章

  1. 普通人也要学python吗-普通人学Python有意义吗?
  2. Java synchronized解析
  3. Hadoop权威指南阅读笔记
  4. hdu2846 字典树(带id的)
  5. 4 项目开发 - 后台
  6. upload-labs_pass 9_::$DATA_绕过
  7. [20180816]校内模拟赛
  8. 浅析 Linux 初始化系统(系统服务管理和控制程序/Init System) -- systemd
  9. Java Spring 后端项目搭建
  10. d778: NOIP2009 2.Hankson的趣味题
  11. 迁移学习比赛:OpenAI喊你重温「音速小子索尼克」
  12. 使用阿里云code和git管理项目
  13. 还不懂数据库模糊查询?总结7种窍门技巧!
  14. iOS14.7 验证失败,因为您不再连接到互联网
  15. 快速查毒及电脑防毒的解决方案
  16. matlab 混沌工具箱,matlab混沌工具箱
  17. 明星热图|小S代言新品牌;黄景瑜、高圆圆、木村光希及贾樟柯拍摄品牌广告;欧阳娜娜等出席品牌活动...
  18. Codevs 1066 引水入城 2010年NOIP全国联赛提高组
  19. Google的地球日图标08版
  20. 2008年度最佳开源软件大奖

热门文章

  1. JAVA利用JXL导出/生成 EXCEL1
  2. 查看某个进程的线程在干什么_有了多线程,为什么还要有协程?
  3. Nginx 默认的日志类型
  4. MySQL 8.0窗口函数
  5. 查看、启动、关闭防火墙
  6. ASP.NET Core 2.1 源码学习之 Options[2]:IOptions 【转】
  7. (转载)二进制与三进制的妙用
  8. 【小记事】电脑命令行开WiFi
  9. NATSserver配置具体解释
  10. C/C++ 中的指针