01 决策树 - 数学理论概述 - 熵
今天开始进入决策树的算法部分,首先介绍一下这部分涉及到的知识点。
一、大纲
1、信息熵
决策树在生成过程中,对于评判是否要对树进行划分的关键指标。即树生成时的决策根本。
2、决策树
之前提过KD树的划分标准。02 KNN算法 - KD Tree KD树是基于一个划分的标准(中位数),最后构建起了整个KD树。决策树同样也是一个树形结构,同样需要某些决策指标来构建起决策树。最后帮助我们实现回归或分类的目标。
3、决策树优化
和KD树一样,决策树模型生成以后同样会存在欠拟合和过拟合的问题。如何解决这些问题就是决策树优化需要考虑的。
4、剪枝
防止决策树过拟合的过程,实际生产过程中剪枝的操作用的很少,但面试可能会提问,了解即可。
5、决策树可视化
导入一些新的模块,最后将决策树展现在用户面前。
二、决策树的直观理解
根据一个人是否有房产、婚姻情况、年收入情况判断一个人是否有能力偿还债务。
根据样本构建出一个模型:
相比Logistic模型、回归模型中参数的理解,决策树是一个解释性更强的模型。
三、比特化
数据:BACADCBD...
这里ABCD出现的概率都是1/4,等概率。
即P(X=A) =P(X=B) =P(X=C) =P(X=D) =1/4
令A-00 B-01 C-10 D-11(等概率,用两个比特位表示4个变量即可)
BACADC = 01001011100111
E = 1×1/4 *4 = 1
(每个变量占用一个比特位,出现概率是1/4,一共4个变量,平均每个变量占1个比特位)
如果X变量出现概率不同:
即P(X=A)=1/2; P(X=B) = 1/4; P(X=C) =P(X=D) =1/8;
用更少的比特位描述出现概率更大的事件,能够让总的比特位数量最少:
令A-0 B-10 C-110 D-111
E=1×1/2 + 2×1/4 + 3×1/8 + 3×1/8 = 1.75
平均每个变量占1.75个比特位。其他任何一种编码方式最终得到的期望都会大于1.75,耗费了多余的计算机资源。
还可以用下面的公式表示__平均每个变量占用的比特位__数量:
$color{red}{每个变量出现的概率:}$ p
$color{red}{每个变量占用的比特位:}$ -log2p
所以,m个变量在不同的出现概率p1~pm时,平均每个变量占用的比特位公式如下:
四、信息熵
__信息熵__是描述一个信息量的指标。如果一个事件发生的概率越大,那么认为该事件蕴含的信息越少。
当一个事件百分百确定的时候,我们得不到其他推论。那么认为信息量为0。
只有当事件的出现存在概率性,说明有额外的信息影响事件发生,那么针对这些信息我们才需要推理判断 。
__信息熵__是系统有序程度的度量,一个系统越是有序,信息熵就越低。信息熵就是用来描述系统信息量的不确定度。
信息熵 = 比特化随机变量X占用比特位的数学期望
五、条件熵
回顾H(X)的概念,并看下面的例子:
令L(S) = -P(S) × log2(S)
H(X) = L(X=数学) + L(X=IT) + L(X=英语)
= -0.5 × log2(0.5) - 0.25 × log2(0.25) - 0.25×log2(0.25)
= 0.5 + 0.5 + 0.5 = 1.5
H(Y) = L(Y = M) + L(Y = F)
= -0.5 × log2(0.5) - 0.5 × log2(0.5)
= 0.5 + 0.5 = 1
H(X, Y) = L(X=数学, Y=M) + L(X=IT, Y=M) + L(X=英语, Y=F) +
L(X=数学, Y=F) = -0.25 × log2(0.25) × 4 = 2
看明白上面的例子后,接下来引入__条件熵__的概念:
给定条件X的情况下,随机变量Y的信息熵就是__条件熵__。
给定条件X的情况下,所有不同x值情况下,Y的信息熵的平均值,叫做__条件熵__。
当专业X为数学时,Y的信息熵的值为:H(Y|X=数学)
怎么计算H(Y|X=数学)?先把数学相关的项提取出来:
现在姓别出现的概率都是2/4,根据公式:
$color{red}{每个变量出现的概率:}$ p
$color{red}{每个变量占用的比特位:}$ -log2p
-log2(0.5)=1:单个性别的信息熵。
H(Y|X=数学) = -0.5 × log2(0.5) × 2 = 1
H(Y|X=数学) 是 H(Y|X) 的一部分,H(Y|X)还包括H(Y|X=IT)、H(Y|X=英语) 根据上述的方式能够依次计算出H(Y|X=IT)、H(Y|X=英语) 的值。
回顾一下定义:
给定条件X的情况下,所有不同x值情况下,Y的信息熵的平均值,叫做__条件熵__。
以下log表示log2
条件熵 H(X/Y)
= H(X/Y=M)×P(Y=M) + H(X/Y=F)×P(Y=F) 即加权平均熵
= [L(X=数学/Y=M)+L(X=数学/Y=M)]×P(Y=M) + H(X/Y=F)×P(Y=F)= [-0.5 × log(0.5) × 2] × 0.5 + H(X/Y=F)×P(Y=F)= 0.5 + H(X/Y=F)×P(Y=F) = 0.5 + 0.5 = 1= __H(X, Y) - H(Y)__
条件熵 H(Y/X)
= H(Y/X=数学)×P(X=数学)+H(Y/X=IT)×P(X=IT)+H(Y/X=英语)×P(X=英语)
= [-0.5 × log(0.5) × 2] × 0.5+H(Y/X=IT)×P(X=IT)+H(Y/X=英语)×P(X=英语)= 0.5 + 0 + 0 = 0.5= __H(X, Y) - H(X)__
条件熵__的另一个公式: __H(Y/X) = H(X, Y) - H(X)
事件(X,Y)发生所包含的熵,减去事件X单独发生的熵,即为事件X发生前提下,Y发生“新”带来的熵。
结合概率论中的Venn图思考上面公式的意义:
最后给出一个推导公式:
01 决策树 - 数学理论概述 - 熵相关推荐
- math专栏 01.数学内容概述
# 01.学习数学的必要性[toc]{type: "ol", level: [2, 3, 4, 5]}## 微积分[*微分] ### 大纲 Num | 大纲 :---|:----- ...
- 决策树——从理论到入手
决策树--从理论到入手 决策树 基本知识点 基本概念 分析与思考 决策树前提知识点 信息增益.增益率.基尼指数 信息增益(ID3) 增益率(C4.5) 基尼指数(CART) 剪枝处理 预剪枝 后剪枝 ...
- [数据分析][评价方法]打分式评价-信息熵理论与熵权法
前言: 信息熵是一种用于衡量系统内部信息量的度量.在信息论中,信息是系统有序程度的一种度量. 信息是确定性的增加,不确定性的减少(香农定理).而信息熵是系统无序程度的一种度量,是系统不确定性的量度.两 ...
- 计算数学与数学理论专栏【简介】
计算数学与数学理论专栏 (简介) 文章目录 计算数学与数学理论专栏 (简介) 一.离散(discrete)与计算数学 二.现代数学理论 2.0 概述与杂论 2.1 代数 2.2 分析 2.3 几何 2 ...
- 机器人学数学理论_基于格理论的机器学习数学
机器人学数学理论 This is a third article in the series of works (see also first one and second one) describi ...
- 【机器学习】决策树(理论)
决策树(理论) 目录 一.何为决策树 1.决策树的组成 2.决策树的构建 二.熵 1.熵的作用 2.熵的定义 3.熵的计算 4.条件熵的引入 5.条件熵的计算 三.划分选择 1.信息增益( ID3 算 ...
- 神经网络的数学方法及应用,神经网络的数学理论
神经网络算法原理 4.2.1 概述人工神经网络的研究与计算机的研究几乎是同步发展的. 1943年心理学家McCulloch和数学家Pitts合作提出了形式神经元的数学模型,20世纪50年代末,Rose ...
- AI算法工程师 | 04人工智能基础-高等数学知识强化(一)数学内容概述
数学内容概述 人工智能学习数学的必要性: 人工智能跟开发 APP 和后台服务器相比,人工智能需要大量的数学知识. 人工智能需要一些必要的数学知识,这对后续理解机器学习.深度学习的算法有帮助,会理解得更 ...
- 视频编解码之理论概述 和即时通信
前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的.有关实时 ...
最新文章
- 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第1课0.15节创建剪切蒙版...
- nginx php 配置请求等待时间_CVE-2019-11043: PHP-FPM在Nginx特定配置下任意代码执行漏洞预警...
- SpringMVC传递JSON数据的方法
- linux最小安装桌面,Linux工作环境:CentOS7最小安装+Xfce桌面环境
- vscode markdown_搭建 Markdown 舒适写作环境(VSCode,含扩展盘点)
- 因为在此系统上禁止运行脚本。有关详细信息_win10系统下Hyper-V基本(网上资源整合)3
- Web项目--------原Oracle数据库的项目同时兼容MySql
- linux jvm启动过程,Linux操作系统启动过程详解
- java语言介绍及特点分析(萌新入门须知内容)
- NOD32杀毒软件如何更新及用户名列表
- linux不能显示微软雅黑字体
- Java SE《基础篇》——(二)程序基础01
- vue项目 webpack-dev-server 报错
- 桌面word文档变成了html,我电脑上的Word文档都变成网页形式了怎么回事?
- LiveMe x TiDB丨单表数据量 39 亿条,简化架构新体验
- 相关性分析热点图_防老剂TMQ及6PPD价格上涨逻辑分析及后市展望
- 【MySQL】SQL优化
- 【PP】PP 模块配置
- 百度搜索 “Java面试题” 前200页
- 学习Linux前必备专业知识