今天开始学决策树,尽管导师每天催任务,但我还是得把机器学习学完,学懂,现在看西瓜书很有感觉。这个机器学习太好了,感觉学着学着就变聪明了一样,不断地让自己的思维变得更敏捷,所以我爱机器学习。
今天要讲的内容主要有以下几点:

  1. 信息熵(条件熵)
  2. 决策树
  3. 决策树优化
  4. 剪枝
  5. 决策树可视化

说信息熵之前,先说下什么叫比特化

比特化

假设有一组随机变量X,X变量组成的序列: BACADDCBAC…;各个值出现的概率关系如图;如果现在希望把这个随机变量序列转换成二进制来进行网络传输,规定:那么我们得到一个这样的序列,01001000111110010010。我们可以使用两个比特位来表示一个随机变量。这种两个比特位表示一个随机变量的方式就是ABCD出现的概率都是四分之一。

然而,当X变量出现的概率值不一样的时候,如下图是每个随机变量出现的概率:
,在这种情况下我们怎样传输比特位才能少呢?可以这样,按照概率用每个比特表示,每个随机变量的平均比特位为:1.75,如下图所示:
我们可以把上面的求期望表示成另一种方式:

我们把上边的随机变量X一般化,假设随机变量X具有m个值,分别为:V 1 ,V 2 ,…,V m 并且各个值出现的概率如下表所示;
那么,对于一组变量来讲,每个变量平均需要多少比特位来表示呢?我们可以使用变量的期望来表示每个变量平均需要多少比特位:

信息熵

我们把H(X)叫做随机变量X的信息熵,H(X)表示如下:
信息量:指的是一个样本/事件所蕴含的信息,如果一个事件的概率越大,那么就可以认为该事件所蕴含的信息越少。极端情况下,比如:“太阳从东方升起”,因为是确定事件,所以不携带任何信息量。那么什么叫信息熵呢?
信息熵 :一个系统越是有序,比如上边说的太阳东升西落,信息熵就越低;相反,一个系统越是混乱,信息熵就越高。所以,信息熵被认为是一个系统有序程度的度量。
信息熵就是用来描述系统信息量的不确定度。信息熵越高,表示随机变量X是均匀分布,各种取值情况都是等概率出现的;随机变量X取值不是等概率出现,有的事件概率大,有的事件概率小。请看下面的图:右边的图,信息熵小但是表示的信息量很大。

举个例子说明一下高信息熵和低信息熵中携带的信息量:
在赌马比赛中,有两组赛马共八匹,获胜的概率如下:
在比赛前对于第一组而言,他们获胜的概率都是四分之一,我们就无法从中获取什么押哪批马赢。而第二组,我们可以清楚的判断A马获胜的概率大。这个例子有力地说明:信息熵越低,所携带的信息就越多。

条件熵H(Y|X)

条件熵是说,在给定条件X的情况下,所有不同的X值情况下Y的信息熵的平均值叫做条件熵。
看下面的例子,我们计算H(X)和H(Y)的条件熵,计算结果分别如下。

再计算**专业(X)**为数学的时候,Y的信息熵的值为:H(Y|X=数学)???

条件熵:在给定条件X的情况下,所有不同的X值情况下Y的信息熵的平均值叫做条件熵。

还用上边的这个例子直观的理解。



H(Y|X)=0.5
条件熵另一种表示

条件熵本身的概念:事件(X,Y)发生所包含的熵,减去事件X单独发生的熵,即为在事件X发生的前提
下,Y发生“新”带来的熵。
上边的推倒公式如下:

这里信息熵讲解完毕!下面请看什么是决策树?

决策树

举一个例子,直观的理解一下:
比如,现在有如下信息,ID为人,后边的这个人的基本信息,假如这个人去银行贷款,银行工作人与会根据这个人的基本信息,判断他是够有偿还能力,根据这些信息做出如下判断。


当构建好这样一个模型后,新来一个客户,可根据建好的模型直接判断,比如:新来一个客户,无房产,单身,年收入55K,那可以根据判断模型得出该用户无法偿还债务,不能借款给他。以上的判断模型,就类似于决策树。
决策树的纯度的度量

决策树效果评估:

上面例子的具体解法:


上图收入的信息增益为什么是0.395, 请看下图。

决策树的评估损失函数


通过上面的例子,可以得出该值越小越好。
几种决策树生成算法—ID3,C4.5,CART
1. ID3
ID3算法是决策树的一种经典构造算法,内部使用信息熵信息增益来进行构建,每次迭代选择信息增益最大的特征属性作为分割属性。
ID3优缺点
优点:
决策树构建速度快,实现简单。
缺点:

  • 计算依赖于特征数目较多的特征,而属性值最多的属性并不一定最优
  • ID3算法不是递增算法
  • ID3算法是单变量决策树,对于特征属性之间的关系不会考虑
  • 抗噪性差
  • 只适合小规模数据集,需要将数据放到内存中
    C4.5算法
    在ID3算法的基础上,进行算法优化提出的一种算法(C4.5);使用信息增益率来取代ID3算法中的信息增益,在树的构造过程中会进行剪枝操作进行优化;能够自动完成对连续属性的离散化处理;C4.5算法在选中分割属性的时候选择信息增益率最大的属性,涉及到的公式为:

    优点:
  • 产生的规则易于理解
  • 准确率高
  • 实现简单
    缺点:
  • 对数据集需要进行多次顺序扫描和排序,所以效率较低
  • 只适合小规模数据集,需要将数据放在内存中
    CART分类回归树算法
    使用基尼系数作为数据纯度的量化指标来结构件的决策树算法就叫做CART(Classification And Regression Tree分类回归树)算法。CART算法使用GINI增益作为分割属性选择的标准,选择GINI增益最大的作为当前数据集的分割属性,可用于分类和回归两类问题。CART构建的是二叉树

    三种算法总结

通过鸢尾花分类的例子,如果决策树层次太多,就会存在过拟合和欠拟合的问题,为了解决这个问题,对决策树进行优化操作(剪枝和Random Forest)

决策树剪枝

决策树的剪枝是决策树算法中最基本、最有用的一种优化方案,主要分为两大类:
**前置剪枝:**在构建决策树的过程中,提前停止。结果是决策树一般比较小,实践证明这种策略无法得到比较好的结果。
**后置剪枝:**在决策树构建好之后开始裁剪,一般使用两种方式:

  • 用单一叶子节点代替整个子树,叶节点的分类采用子树中最主要的分类;
  • 将一个子树完全替代另外一棵子树;后置剪枝的主要问题是计算效率问题,存在一定的浪费情况。

    剪枝过程:
  • 计算所有内部非叶子节点的剪枝系数
  • 查找最小剪枝系数的节点,将其子节点进行删除操作,进行剪枝得到决策树Tk ; 如果存在多个最小剪枝系数节点,选择包含数据项最多的节点进行剪枝操作
  • 重复上述操作,直到产生的剪枝决策树T k 只有1个节点
  • 得到决策树T0 T1 T2 …Tk
  • 使用验证样本集选择最优子树Ta
    剪枝损失函数(这个位置剪枝前后的损失函数我好想写反了,看懂了告诉我一声)
    原始损失函数:

回归树和分类树的区别

回归树X-----> Y要求是连续的
分类树X----->Y要求是离散的
分类树采用信息增益、信息增益率、基尼系数来评价树的效果,都是基于概率值进行判断的;而分类树的叶子节点的预测值一般为叶子节点中概率最大的类别作为当前叶子的预测值。
在回归树中,叶子点的预测值一般为叶子节点中所有值的均值来作为当前叶子节点的预测值。所以在回归树中,一般采用**MSE(Mean Square Error)**作为树的评价指标,即均方差。

下面这个图清晰两者的区别:

机器学习_决策树(信息熵,决策树,决策树优化,剪枝)相关推荐

  1. 决策树信息熵计算_决策树熵|熵计算

    决策树信息熵计算 A decision tree is a very important supervised learning technique. It is basically a classi ...

  2. 机器学习笔记(四)决策树剪枝

    一.什么是剪枝? 顾名思义,剪枝就是指将决策树的某些内部节点下面的节点都删掉,留下来的内部决策节点作为叶子节点. 二.为什么要剪枝? 决策树是充分考虑了所有的数据点而生成的复杂树,它在学习的过程中为了 ...

  3. python机器学习数据建模与分析——决策树详解及可视化案例

    文章目录 前言: 决策树的定义 熵和信息熵的相关概念 信息熵的简单理解 经典的决策树算法 ID3算法 划分选择或划分标准--信息增益 ID3算法的优缺点 C4.5算法 信息增益率 划分选择或划分标准- ...

  4. 【机器学习】分类决策树与回归决策树案例

    一.回顾 什么是决策树,信息熵 构建决策树的过程 ID3.C4.5和CRAT算法 上面三篇,主要介绍了相关的理论知识,其中构建决策树的过程可以很好地帮助我们理解决策树的分裂属性的选择. 本篇所有源代码 ...

  5. 12_信息熵,信息熵公式,信息增益,决策树、常见决策树使用的算法、决策树的流程、决策树API、决策树案例、随机森林、随机森林的构建过程、随机森林API、随机森林的优缺点、随机森林案例

    1 信息熵 以下来自:https://www.zhihu.com/question/22178202/answer/161732605 1.2 信息熵的公式 先抛出信息熵公式如下: 1.2 信息熵 信 ...

  6. 机器学习基础——实现基本的决策树

    一.决策树基本流程  决策树是常见的机器学习方法.我在学习周志华的机器学习的时候,用python实现了最基础的ID3算法,其基本思想是: 基于信息论中的信息增益理论,首先找出判断样本的最高的信息增益的 ...

  7. 机器学习算法(5)——决策树(ID3、C4.5、CART)

    决策树又称为判定树,是运用于分类的一种树结构.决策树(decision tree)是一个树结构(可以是二叉树或非二叉树).其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的 ...

  8. 机器学习实战(三)——决策树

    出处:https://blog.csdn.net/jiaoyangwm/article/details/79525237 决策树 3.1 决策树的构造 3.1.1 信息增益 3.1.2 编写代码计算经 ...

  9. Python机器学习(二):决策树(Decision Tree-DTs)

    Python机器学习(二):决策树(Decision Tree-DTs) 目录: Python机器学习(二):决策树(Decision Tree-DTs) 一.什么是决策树 1.基本概念 2.决策树算 ...

最新文章

  1. 深度学习——什么是张量(tensor)?
  2. python语言自学-为什么建议大家都学习Python语言?原因在这
  3. NFS网络文件共享存储服务器
  4. CRM Fiori my note应用的后台ABAP实现
  5. sum函数两个同行的元素相加_Excel函数公式大全:利用sum函数进行汇总以及对多个汇总进行求和...
  6. const iterator 和const_iterator的区别
  7. Libra 新编程语言 :Move 所有权模型灵感竟是来自它……
  8. tomcat事件处理机制
  9. oracle用UNION-ALL 替换UNION ( 如果有可能的话)
  10. Okhttp源码简单解析(一)
  11. 为什么正常单据记账没有数据_正常单据记账中找不到记账单据
  12. 百度地图 java 纠偏_模板:纠偏服务首页 | 百度地图API SDK
  13. 第一届全国大学生GIS应用技能大赛试题答案及数据下载(下午)
  14. unable to load dll 'gdiplus.dll' in docker
  15. 大数据Spark(三十九):SparkStreaming实战案例四 窗口函数
  16. 高数——换元法(2)
  17. CentOS7配置supervisor开机自启[队列监听,Horizon服务启动]
  18. 腾讯cos做文件服务器,将腾讯云COS对象存储挂载至腾讯云服务器实现大硬盘存储...
  19. C Primer Plus 第11章_字符串和字符串函数_代码和练习题
  20. Oracle 数据库导出数据库语句

热门文章

  1. JZOJ 5637 一双木棋
  2. 可以随时牵手,但不要随便分手
  3. 磁带转换成MP3 文件,摆脱复读机
  4. JAVA学习笔记_Junit测试简单使用_assertEquals
  5. 北京物联展完美收官,拾联诠释“视频+物联网”新时代
  6. 【第7节】零基础新手的Python入门实战宝典(五) —— 最基础的表达(数据类型 · 下)
  7. JDK 8的依赖使用
  8. [附源码]Java计算机毕业设计SSM二手车交易平台设计
  9. SAP 会计凭证更改(FB02) 配置及注意事项
  10. PS 合理使用图层 魔棒选取 蒙版 整合多种贴图