决策树、随机森林补充(一)
发布日期:2021-07-03 20:40:36 浏览次数:2 分类:技术文章

本文共 1326 字,大约阅读时间需要 4 分钟。

决策树、随机森林补充(一)

文章目录

一.条件熵的推导

条件熵的公式定义很简单:

H(Y|X) = H(X,Y) – H(X)

其中,H(X,Y)代表(X, Y)的联合熵。如果不理解这个,可以联想一下概率论当中的联合概率。条件熵表示:在X发生的前提下,Y发生“新”带来的熵。对于熵这个概念,看过电影《信条》的,大体都会知道,它表示混乱程度,熵越高,代表混乱程度或者不稳定程度越高。也就是说,如果他带来的熵越多,说明他带来的不稳定性就越多。

同时,条件熵还有一个推导公式,在这个公式当中,我们大量运用了熵的公式,如果不知道,看一看前面的决策树,随机森林部分:

在这里插入图片描述

(公式一)

Note:

  • 上述推导式子的第三行,我们只是为了前后统一,然后合并 构造出来了一个关于y的加和,因为在第二行,我们看到这个式子只是关于x的。而包含所有y的情况的(x,y)联合概率相加在一起,不正是p(x)嘛。
  • 倒数第二行推导到最后一行,用的是条件概率公式

我们在上一个推导出来的式子的基础上,再做进一步的推导:

在这里插入图片描述

Note:

  • 从第二行到第三行,我们运用条件概率公式,将p(x,y)进行替换,然后p(x)只是关于x的,和y并没有什么关系,所以到了第四行,把p(x)挪到前面并不影响最后的结果。

二.经验熵、经验条件熵

首先,我们先明确一些符号:

  1. 我们假设训练数据集为 D ,|D| 表示样本个数。这当中有K个类 ,记为:Ck , k =1 , 2 …… K ,|Ck| 为属于类 Ck 的样本个数,所以我们有:

    ∑ k ∣ C k ∣ = ∣ D ∣ \sum_{k}|Ck| = |D| kCk=D

  2. 假设特征A有n个不同的取值 {a1, a2, ……, an} ,根据特征A的取值将D划分为n个子集 D1, D2……Dn , 其中|Di |为 Di的样本个数,即:

    ∑ i D i = ∣ D ∣ \sum_ {i}Di = |D| iDi=D

  3. 记子集 Di 中属于类 Ck 的样本的集合为 Dik , 则|Dik|为 D ik 的样本个数 。

首先来说,经验熵的公式没什么好解释的,因为|Ck|/|D|就是一个概率。把这个概率直接代入,我们就得到了这个经验熵的公式:

在这里插入图片描述

然后,我们进一步去推经验条件熵:

在这里插入图片描述

Note:

  • 从第一行开始,我们就用到了前面(公式一)的结论,然后再去套条件概率公式。

三.信息增益率,和Gini系数

决策树学习的学习的生成算法主要有三个,这个在以前也有所介绍。这三个分别是:

  • ID3:信息增益 最大的准则(也就是1.3所讲的内容)
  • C4.5:信息增益比 最大的准则
  • CART :使用基尼系数

关于ID3,详细见

关于C4.5,那么最关键的就是:什么是信息增益比,其实很简单,信息增益比也叫信息增益率,它的公式如下:

在这里插入图片描述

即:信息增益,和熵值的比值

什么又是基尼系数呢?Gini系数的公式如下:

在这里插入图片描述

注意:机器学习当中的基尼系数和经济学当中那个并不是一个东西。计算上,这两个也不是一个东西。所以,别把这两个搞混淆了

在决策树当中,一个属性的信息增益(率)或者gini指数越大,表明属性对样本的熵减少的能力更强,这个属性使得数据由不确定性变成确定性的能力越强。

转载地址:https://blog.csdn.net/johnny_love_1968/article/details/116355767 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:决策树,随机森林补充(二)
下一篇:回归补充(二)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年03月20日 14时43分57秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

剑指 Offer 27. 二叉树的镜像 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 28. 对称的二叉树 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 29. 顺时针打印矩阵 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 30. 包含min函数的栈 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 31. 栈的压入、弹出序列 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 32 - I. 从上到下打印二叉树 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 32 - II. 从上到下打印二叉树 II - leetcode 剑指offer系列 2019-04-26
剑指 Offer 32 - III. 从上到下打印二叉树 III - leetcode 剑指offer系列 2019-04-26
剑指 Offer 33. 二叉搜索树的后序遍历序列 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 34. 二叉树中和为某一值的路径 - leetcode 剑指offer系列 2019-04-26
面试官上来就问:Java 进程中有哪些组件会占用内存? 2019-04-26
VMWare虚拟机下Fedora30升级Fedora31,重启后无法启动系统,出现alloc magic is broken at 0xXXXX的错误 2019-04-26
【解决方案】STM32L152单片机驱动段码LCD屏,执行HAL_LCD_Init函数失败返回HAL_TIMEOUT,长时间卡在LCD_FLAG_RDY的while循环里面的解决办法 2019-04-26
【方法】STM32F103C8单片机在Keil 5环境下使用C++编写程序,并将printf和cout重定向到串口 2019-04-26
【STemWin】STM32F429IG单片机用LTDC驱动正点原子7寸RGB彩色触摸屏,并裸机移植STemWin图形库 2019-04-26
【经验分享】调试STM32F107VC单片机驱动DP83848以太网PHY芯片时遇到的问题 2019-04-26
【程序】STM32F107VC单片机驱动DP83848以太网PHY芯片,移植lwip 2.1.2协议栈,并加入网线热插拔检测的功能(HAL库) 2019-04-26
【BUG处理】STM32F1和F2单片机上用HAL库的USART串口接收函数HAL_UART_Receive_IT循环接收串口字符,串口接收大批量数据后突然死机,不能继续接收的解决办法 2019-04-26
在PCB板上调试104(0.1μF)独石电容驱动MAXIM MAX3232串口芯片的心得 2019-04-26
【方法】STM32 FreeRTOS系统errno变量做到线程安全的方法 2019-04-26