[模式识别复习笔记] 第8章 决策树

news/2024/9/24 18:04:59

1. 决策树

1.1 决策树简介

决策树(Decision Tree)是一种以 树形数据结构 来展示决策规则和分类结果的模型。每一条从根结点(对最终分类结果贡献最大的属性)到叶子结点(最终分类结果)的路径都代表一条决策的规则。



1.2 决策树的构建过程

  1. 首先生成一个 根节点,其 包含所有的样本

  2. 判断划分:

    • 当前节点中所有样本 都属于 同一类别 \(C\)。此时 无需再进行划分,此节点 标记为 \(C\) 类别的叶子节点

    • 数据为空,此时 无法进行划分,此节点 标记为 \(D\) 中样本最多的类

  3. 选择当前条件下的 最优属性进行划分

  4. 经历上步骤划分后,生成新的节点。

    继续循环判断,不断生成新的分支节点,直到所有节点都跳出循环。

    最后生成一颗决策树。



2. 最优划分属性的选择

2.1 信息增益

2.1.1 基本概念

  • 信息熵

    用来衡量一个随机变量取值的不确定程度,设 \(X\) 是一个取有限个值(\(m\) 类)的离散随机变量,其概率分布为:

    \[P(X = x_i) = p_i, \ i = 1, \ldots, m \]

    则随机变量 \(X\) 的熵定义为:

    \[\text{Ent}(X) = -\sum_{i=1}^{m}p_i \log p_i \]

    \(p_i = 0\) 时,定义 \(0 \log 0 = 0\)

    \(\log\)\(2\) 为底,此时熵的单位为比特 \(\text{bit}\)

    \(\log\)\(e\) 为底,此时熵的单位为纳特 \(\text{nat}\)


  • 信息熵的性质

    熵只依赖于随机变量的分布。

    对于一个有 \(m\) 个取值的随机变量 \(X\),可以证明:

    • \(p_1 = p_2 = \cdots = p_m = \frac{1}{m}\) 时,也就是 所有概率相等 时,\(X\) 的熵取得最大值 \(\log m\)

    • \(p_i = 1, \ \forall i \not = j, \ p_j = 0\) 时,\(X\) 的熵取得最小值 \(0\)

    熵越大,表明随机变量 \(X\) 的取值的 不确定性越大


  • 条件熵 \(\text{Ent}(X|Y)\)

    衡量随机变量 \(Y\) 的取值已知的条件下,随机变量 \(X\) 取值的不确定性:

    \[\text{Ent}(X|Y) = \sum_{i=1}^{m}P(Y = y_i)\text{Ent}(X|Y=y_i) \]


  • 信息增益 \(gain(X, Y)\)

    表示在得知 \(Y\) 后,随机变量 \(X\) 不确定性减少的程度,也是 确定性增加的程度:

    \[gain(X, Y) = \text{Ent}(X) - \text{Ent}(X|Y) \]



2.1.2 基于信息增益学习决策树

在决策树中,将样本类别看作是一个随机变量。对于一个 \(c\) 类的分类问题,类别变量的分布为:

\[P(\text{class} = i) = \frac{训练集 D 中第 i 类样本的数目}{训练集 D 中 所有样本的总数}, \ \ i = 1, \ldots, c \]

\(p_i = P(\text{class} = i)\),则类别变量的熵为:

\[\text{Ent}(\text{class}) = - \sum_{i=1}^{c}p_i \log p_i \]

将类别变量的熵称为 训练集 \(D\) 的熵,记为 \(\text{Ent}(D)\)


假设选取了属性 \(a\) 对样本进行划分,属性 \(a\)\(k\) 个不同的取值 \(\{ a^{(1)}, a^{(2)}, \cdots, a^{(k)} \}\),样本集 \(D\) 对应划分成 \(k\) 个子集 \(D_1, D_2, \ldots, D_k\)

\(|D_i|\) 表示属性 \(a\) 取值为 \(a_i\) 的对应的划分出来的 \(D_i\) 的大小。

选择 \(a\) 属性对样本集 \(D\) 进行划分产生的 信息增益

\[gain(D, a) = \text{Ent}(D) - \text{Ent}(D | a) \]

\[\text{Ent}(D | a) = \sum_{i=1}^{k}\frac{|D_i|}{|D|}\text{Ent}(D_i) \]


而选择的 最优划分属性 是信息增益最大的属性(增加确定性最多):

\[a^{*} = \text{argmax}_{a\in A}gain(D, a) \]


例题 1

解:



例题 2

\(X\) 是一个离散型随机变量,其概率分布为:

\[P(X = x_i) = p_i , i = 1,2, \cdots, m \]

\(X\)熵的最大值,其中熵以 纳特 为单位。



未完待续...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/46306.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

CM3调试系统简析

包括对两大调试接口:JTAG接口和SWD串行线调试接口、CoreSight调试接口:基于CoreSight架构的CM3调试系统和标准CoreSight架构和CM3中调试系统异同点、CoreSight跟踪接口、 调试功能的总结、调试模式、调试事件、STM32调试单元、SWV调试、JTAG边界扫描 、代码断点类型等知识点的…

KOPRA论文阅读笔记

Joint Knowledge Pruning and Recurrent Graph Convolution for News Recommendation论文阅读笔记 Abstract ​ 最近,利用知识图谱(KG)来丰富新闻文章的语义表征已被证明对新闻推荐有效。这些解决方案的重点是利用知识图谱中的附加信息对新闻文章进行表征学习,用户表征主要…

R语言估计时变VAR模型时间序列的实证研究分析案例|附代码数据

原文链接: http://tecdat.cn/?p=3364 原文出处:拓端数据部落公众号最近我们被客户要求撰写关于时变VAR模型的研究报告,包括一些图形和统计输出。 加载R包和数据集加载包后,我们将此数据集中包含的12个心情变量进行子集化: mood_data <- as.matrix(symptom_data$data[…

Modbus协议转Profibus协议网关模块连PLC与激光发射器通讯

PLC作为控制中枢,而Modbus协议和Profibus协议是两种常见的工业通讯协议。在实际应用中,我们常常会遇到需要将Modbus协议转换为Profibus协议的情况,这时就需要借助Modbus协议转Profibus协议网关模块(XD-MDPB100)来进行实现。Modbus协议转Profibus协议网关模块可以理解为一种…

生态学建模:增强回归树(BRT)预测短鳍鳗生存分布和影响因素|附代码数据

全文下载链接: http://tecdat.cn/?p=22482 最近我们被客户要求撰写关于增强回归树(BRT)的研究报告,包括一些图形和统计输出。 在本文中,在R中拟合BRT(提升回归树)模型。我们的目标是使BRT(提升回归树)模型应用于生态学数据,并解释结果。 引言 本教程的目的是帮助你学…

基于机会网络编码(COPE)的卫星网络路由算法matlab仿真

1.程序功能描述基于机会网络编码(COPE)的卫星网络路由算法。基于机会的网络编码(COPE,completely opportunity encoding)方法,使每个接收节点都对信道进行侦听,通过获取邻居节点的信息状态确定编码机会,并且在本地信息缓存区中进行编码,最后进行基于编码机会的路由,可以…

Cocos 编译发布微信小程序

微信小游戏不允许 远程加载脚本,所以这里会和其他web的打包生成的不一样 然后把remote文件夹拷贝到服务器上,让文件资源域名指向 remote的上一级,然后可以通过域名:/remote/main 访问到config.json即可

IOS微信版本过低无法登录 2024最新

备机IOS 12 ,微信已经没法再登录了,一直提示升级。 So,jailbreak it , 是的,2024年了还越狱,过程就不说了,现在不像以前,jb越来越简单 连接到爱思助手,打开“文件管理”并依次打开“程序(用户)- 微信 - WeChat.app”,找到“Info.plist”文件修改最新的版本号 从这里…