一、算法流程

step1:计算信息熵

step2: 划分数据集

step3: 创建决策树

step4: 利用决策树分类

二、信息熵Entropy、信息增益Gain

重点:选择一个属性进行分支。注意信息熵计算公式。

决策树作为典型的分类算法,基本思路是不断选取产生信息增益最大的属性来划分样例集和,构造决策树。信息增益定义为结点与其子结点的信息熵之差。

1.信息熵计算公式

Pi为子集合中不同性(二元分类即正样例和负样例)的样例的比例。其中n代表有n个分类类别(比如假设是二分类问题,那么n=2)。分别计算着2类样本在总样本中出现的概率p1和p2,这样就可以计算出未选中属性分支前的信息熵

选中一个属性xi来进行分支,分支规则:如果xi=vx,则将样本分到树的一个分支;过不相等则进入另一个分支。很显然,分支中的样本很有可能包括2个类别,分别计算这2个分支的熵H1和H2,计算出分支后的总信息熵H’=p1*H1+p2*H2,那么此时的信息增益为ΔH=H-H’。以信息增益为原则,把所有的属性都测试一遍,选择一个使增益最大的属性作为本次分支属性。

2.信息增益计算公式

定义:样本按照某属性划分时造成熵减少的期望,可以区分训练样本中正负样本的能力。

三、ID3算法

常规决策树通常为C4.5决策树,其核心是ID3算法。构造树的基本思想是随着树深度增加,节点的熵迅速地降低,熵降低的速度越快越好,目标就是构建高度最矮的决策树。根据信息熵减小的梯度顺序决定构建树节点。

四、几个对数换底公式

logc(A/B) = logcA -logcB

logAB = logcB / logcA

五、优缺点总结

优点:

1.计算量简单,可解释性强,比较适合处理有确实属性值的样本,能处理不相关的特征;

2.对中间值缺失不敏感,可以处理不相关特征数据

缺点:容易过拟合(改进的方案有RF随机森林,减小过拟合现象)

数据类型:数值型、标称型

六、决策树变种

决策树的剪枝可以减少过拟合的现象,但还是不够,更多的还是利用模型组合,决策树的几个变种GBRTRF将在下面两篇文章中提到。

【机器学习】决策树C4.5、ID3的更多相关文章

  1. 深入了解机器学习决策树模型——C4.5算法

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第22篇文章,我们继续决策树的话题. 上一篇文章当中介绍了一种最简单构造决策树的方法--ID3算法,也就是每次选择一个特 ...

  2. 02-22 决策树C4.5算法

    目录 决策树C4.5算法 一.决策树C4.5算法学习目标 二.决策树C4.5算法详解 2.1 连续特征值离散化 2.2 信息增益比 2.3 剪枝 2.4 特征值加权 三.决策树C4.5算法流程 3.1 ...

  3. 决策树(C4.5)原理

    决策树c4.5算法是在决策树ID3上面演变而来. 在ID3中: 信息增益 按属性A划分数据集S的信息增益Gain(S,A)为样本集S的熵减去按属性A划分S后的样本子集的熵,即 在此基础上,C4.5计算 ...

  4. 小啃机器学习(1)-----ID3和C4.5决策树

    第一部分:简介 ID3和C4.5算法都是被Quinlan提出的,用于分类模型,也被叫做决策树.我们给一组数据,每一行数据都含有相同的结构,包含了一系列的attribute/value对. 其中一个属性 ...

  5. 用于分类的决策树(Decision Tree)-ID3 C4.5

    决策树(Decision Tree)是一种基本的分类与回归方法(ID3.C4.5和基于 Gini 的 CART 可用于分类,CART还可用于回归).决策树在分类过程中,表示的是基于特征对实例进行划分, ...

  6. python实现决策树C4.5算法(在ID3基础上改进)

    一.概论 C4.5主要是在ID3的基础上改进,ID3选择(属性)树节点是选择信息增益值最大的属性作为节点.而C4.5引入了新概念"信息增益率",C4.5是选择信息增益率最大的属性作 ...

  7. 机器学习决策树ID3算法,手把手教你用Python实现

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第21篇文章,我们一起来看一个新的模型--决策树. 决策树的定义 决策树是我本人非常喜欢的机器学习模型,非常直观容易理解 ...

  8. 机器学习-决策树之ID3算法

    概述 决策树(Decision Tree)是一种非参数的有监督学习方法,它是一种树形结构,所以叫决策树.它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回 ...

  9. 决策树 -- C4.5算法

    C4.5是另一个分类决策树算法,是基于ID3算法的改进,改进点如下: 1.分离信息   解释:数据集通过条件属性A的分离信息,其实和ID3中的熵:   2.信息增益率   解释:Gain(A)为获的A ...

随机推荐

  1. rabbitmq 安装-单点

    centos6.5  rabbitmq搭建 环境:centos6.5 192.168.9.41   安装rabbitmq需要先安装erlang.rabbitmq3.6版本需要erlang R16B03 ...

  2. VSCode 配置python

    https://code.visualstudio.com/docs/?dv=win  下载64位的vscode 底下有python插件

  3. android菜鸟学习笔记14----Android控件(三) ListView的简单使用

    MVC模式: MVC的基本原理就是通过Controller连接View和Model.当View中所显示的数据发生变化时,会通知Controller,然后由Controller调用Model中的相关方法 ...

  4. lodash (js实用工具库)

    是什么? 它提供了一整套函数式编程的实用功能, 并且支持模块化, 比underscore更优秀. 文档? http://lodashjs.com/docs/ 引用? <script src=&q ...

  5. UVa 10828 Back to Kernighan-Ritchie 高斯消元+概率DP

    题目来源:UVa 10828 Back to Kernighan-Ritchie 题意:从1開始 每次等概率从一个点到和他相邻的点 有向 走到不能走停止 求停止时每一个点的期望 思路:写出方程消元 方 ...

  6. java中byte转string的方法有哪些?

    1.第一种 byte b = 1; String valueOf = String.valueOf(b) 2.第二种 byte b = 1; String st = Byte.toString(b); ...

  7. PHP上传视频

    https://github.com/chaping/plupload_docs 这下载 lupload有以下功能和特点: 1.拥有多种上传方式:HTML5.flash.silverlight以及传统 ...

  8. linux下tar.xz结尾文件的解压方法

    xz -d ***.tar.xz tar -xvf ***.tar 可以看到这个压缩包也是打包后再压缩,外面是xz压缩方式,里层是tar打包方式.

  9. eclipse显示adb is down错误,无法真机调试

    cmd进入adb目录下,运行adb kill-server 和 adb start-server还是不能正常调试时, 在360的网络连接列表中找到占用端口5037的adb.exe,全部关闭,重启ecl ...

  10. 常用的.gitignore文件

    target/ !.mvn/wrapper/maven-wrapper.jar ### STS ### .apt_generated .classpath .factorypath .project ...