西瓜书学习——决策树形状、熵和决策树的本质

文章目录

  • 决策树形状
    • 监督学习算法
    • 分类与回归
    • 信息熵
    • 香农熵 (Shannon Entropy) - H(X)
    • 联合熵 (Joint Entropy) - H(X, Y)
    • 条件熵 (Conditional Entropy) - H(Y|X)
    • 互信息 (Mutual Information) - I(X; Y)
    • 相对熵 (Relative Entropy) / KL散度 (Kullback-Leibler Divergence) - DKL(P||Q)
    • 交叉熵 (Cross-Entropy) - H(P, Q)
    • 相互关系
    • H(Y) 和 H(Y|X)
      • H(Y)
      • H(Y|X)
      • 理解关系
  • 决策树的本质
      • 损失函数:总信息熵
      • 梯度:信息增益
      • 决策树:梯度下降路径
      • 非参数模型

决策树形状

在这里插入图片描述

内部节点:每个内部节点代表一个特征属性。在决策树构建过程中,根据某种准则(如信息增益、基尼不纯度等)选择最优的特征属性作为节点的判断标准。数据集在每个内部节点处根据特征属性的取值被分割成子集,从而实现了数据的划分。

叶子节点:每个叶子节点代表一个决策结果。在分类任务中,叶子节点通常表示一个类别标签,而在回归任务中,叶子节点表示一个连续的输出值。叶子节点的决策结果是通过训练数据集上的多数投票(分类)或平均值(回归)得到的。

监督学习算法

决策树是一种监督学习算法,因为它需要带有标签的训练数据集来构建模型。在训练过程中,决策树算法学习如何根据输入特征来预测输出标签。

分类与回归

  • 分类树:用于分类任务的决策树。每个叶子节点代表一个类别,模型的输出是预测数据点属于哪个类别。
  • 回归树:用于回归任务的决策树。每个叶子节点代表一个连续值,模型的输出是预测数据点的连续值。

无论是分类还是回归,决策树都是通过递归地划分数据集来构建的。在分类树中,通常使用信息增益、增益率或基尼不纯度来选择最优的特征属性;而在回归树中,通常使用最小二乘回归树的方法来选择最优的特征属性和分割点。

决策树的一个优点是它们易于理解,因为它们的决策过程可以通过可视化来直观展示。然而,决策树也容易过拟合,特别是当树的结构非常深时。为了避免过拟合,可以采用剪枝技术,如预剪枝和后剪枝,来限制树的复杂度。此外,决策树的一个变体是随机森林,它通过集成多个决策树来提高模型的泛化能力。

信息熵

信息熵可以理解为信息含量的度量,熵越高,信息含量越大,不确定性也越大。对于离散随机变量,其熵可以通过以下公式计算:

H ( X ) = − ∑ i = 1 n p ( x i ) log ⁡ b p ( x i ) H(X) = -\sum_{i=1}^{n} p(x_i) \log_b p(x_i) H(X)=i=1np(xi)logbp(xi)

其中, H ( X ) H(X) H(X) 是随机变量 X X X 的熵, p ( x i ) p(x_i) p(xi) 是随机变量 X X X 取值为 x i x_i xi 的概率, n n n是随机变量 X X X 的所有可能取值的个数, b b b 是计算熵时使用的底数,通常取 2、e或 10,分别对应于以比特、纳特或十特为单位的熵。

假设我们有一个公平的六面骰子。我们想要知道掷骰子时得到的信息量。每个面出现的概率都是 1/6,因此我们可以计算这个随机事件的熵。

首先,我们选择以2为底数(这样可以计算以比特为单位的熵),然后应用熵的公式:

H ( X ) = − ∑ i = 1 6 p ( x i ) log ⁡ 2 p ( x i ) H(X) = -\sum_{i=1}^{6} p(x_i) \log_2 p(x_i) H(X)=i=16p(xi)log2p(xi)

其中 p ( x i ) = 1 / 6 p(x_i) = 1/6 p(xi)=1/6 对于所有的 i i i(因为每个面出现的概率是相等的)。
H ( X ) = − 6 × 1 6 log ⁡ 2 1 6 H ( X ) = − log ⁡ 2 1 6 H ( X ) = log ⁡ 2 6 H ( X ) ≈ 2.585 H(X) = -6 \times \frac{1}{6} \log_2 \frac{1}{6} \\ H(X) = -\log_2 \frac{1}{6} \\ H(X) = \log_2 6 \\ H(X) \approx 2.585 H(X)=6×61log261H(X)=log261H(X)=log26H(X)2.585

所以,一个公平的六面骰子的信息熵大约是 2.585 比特。这意味着每次掷骰子时,你得到的信息量大约是 2.585 比特。

现在,如果我们考虑一个不公平的骰子,其中某个面出现的概率更高,那么这个面的信息量就会减少(因为你已经预期它更可能出现),从而降低整个系统的熵。相反,如果所有面出现的概率相等,熵就会更高,因为每个结果都是同样不可预测的。

香农熵 (Shannon Entropy) - H(X)

香农熵是衡量单个随机变量不确定性的度量。对于离散随机变量 X X X,其香农熵定义为:

H ( X ) = − ∑ i p ( x i ) log ⁡ b p ( x i ) H(X) = -\sum_{i} p(x_i) \log_b p(x_i) H(X)=ip(xi)logbp(xi)

其中, p ( x i ) p(x_i) p(xi)是随机变量 X 取值为 x i x_i xi的概率, b b b是底数(通常取 2、e 或 10)。

联合熵 (Joint Entropy) - H(X, Y)

联合熵是衡量两个或多个随机变量共同发生的不确定性的度量。对于两个随机变量 X X X Y Y Y,其联合熵定义为:

H ( X , Y ) = − ∑ x , y p ( x , y ) log ⁡ b p ( x , y ) H(X, Y) = -\sum_{x, y} p(x, y) \log_b p(x, y) H(X,Y)=x,yp(x,y)logbp(x,y)

其中, p ( x , y ) p(x, y) p(x,y) X X X Y Y Y 同时取值为 x x x y y y的联合概率。

条件熵 (Conditional Entropy) - H(Y|X)

条件熵是在已知一个随机变量的情况下,另一个随机变量的不确定性的度量。对于随机变量 Y Y Y 在已知 X X X 的情况下的条件熵定义为:

H ( Y ∣ X ) = ∑ x p ( x ) H ( Y ∣ X = x ) H(Y|X) = \sum_{x} p(x) H(Y|X=x) H(YX)=xp(x)H(YX=x)

其中, H ( Y ∣ X = x ) H(Y|X=x) H(YX=x)是在 X X X 取值为 x x x 的条件下 Y Y Y的条件熵。

互信息 (Mutual Information) - I(X; Y)

互信息是衡量两个随机变量之间相互依赖性的度量。互信息定义为:

I ( X ; Y ) = H ( Y ) − H ( Y ∣ X ) I(X; Y) = H(Y) - H(Y|X) I(X;Y)=H(Y)H(YX)

互信息也可以表示为联合熵和单独熵的差:

I ( X ; Y ) = H ( X ) + H ( Y ) − H ( X , Y ) I(X; Y) = H(X) + H(Y) - H(X, Y) I(X;Y)=H(X)+H(Y)H(X,Y)

相对熵 (Relative Entropy) / KL散度 (Kullback-Leibler Divergence) - DKL(P||Q)

相对熵,也称为KL散度,是衡量两个概率分布之间差异的度量。对于两个概率分布 P P P Q Q Q,KL散度定义为:

D K L ( P ∣ ∣ Q ) = ∑ i P ( i ) log ⁡ P ( i ) Q ( i ) D_{KL}(P||Q) = \sum_{i} P(i) \log \frac{P(i)}{Q(i)} DKL(P∣∣Q)=iP(i)logQ(i)P(i)

KL散度是非负的,并且不是对称的,即 D K L ( P ∣ ∣ Q ) ≠ D K L ( Q ∣ ∣ P ) D_{KL}(P||Q) \neq D_{KL}(Q||P) DKL(P∣∣Q)=DKL(Q∣∣P)

交叉熵 (Cross-Entropy) - H(P, Q)

交叉熵是衡量两个概率分布之间差异的另一种度量。对于概率分布 P P P Q Q Q,交叉熵定义为:

H ( P , Q ) = − ∑ i P ( i ) log ⁡ Q ( i ) H(P, Q) = -\sum_{i} P(i) \log Q(i) H(P,Q)=iP(i)logQ(i)

交叉熵可以用来衡量 Q Q Q 分布与 P P P 分布之间的差异。

相互关系

  • 互信息 I ( X ; Y ) I(X; Y) I(X;Y) 可以看作是 X X X Y Y Y 共享的信息量,或者是在知道 X X X 的值后 Y Y Y 的不确定性的减少量。

  • 条件熵 H ( Y ∣ X ) H(Y|X) H(YX) 可以通过香农熵 H ( Y ) H(Y) H(Y) 减去互信息 I ( X ; Y ) I(X; Y) I(X;Y) 来计算。

  • KL散度 D K L ( P ∣ ∣ Q ) DKL(P||Q) DKL(P∣∣Q) 可以通过交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 减去 P P P 的熵 H ( P ) H(P) H(P) 来计算。

这些熵和散度在机器学习、数据科学和通信理论中有着广泛的应用,用于量化不确定性、优化模型、评估模型性能以及比较概率分布。

H(Y) 和 H(Y|X)

H(Y)

H ( Y ) H(Y) H(Y) 是随机变量 Y Y Y 的无条件熵,它衡量的是 Y Y Y 本身的不确定性。换句话说, H ( Y ) H(Y) H(Y) 告诉我们在没有任何其他信息的情况下,随机变量 Y Y Y 的取值有多么不可预测。无条件熵越大, Y Y Y 的取值就越分散,我们也就越难准确预测 Y 的具体取值。

H ( Y ) H(Y) H(Y) 的计算公式是:

H ( Y ) = − ∑ y ∈ Y p ( y ) log ⁡ b p ( y ) H(Y) = -\sum_{y \in Y} p(y) \log_b p(y) H(Y)=yYp(y)logbp(y)

其中, p ( y ) p(y) p(y) 是随机变量 Y Y Y 取值为 y y y 的概率, b b b 是计算熵时使用的底数(通常取 2、e 或 10)。

H(Y|X)

H ( Y ∣ X ) H(Y|X) H(YX) 是在已知随机变量 X X X 的取值的情况下,随机变量 Y Y Y 的条件熵。它衡量的是在已经知道 X X X 的信息后, Y Y Y 的不确定性还有多少。如果 X X X Y Y Y 完全独立,那么知道 X X X 的取值不会对 Y Y Y 的不确定性产生影响, H ( Y ∣ X ) H(Y|X) H(YX) 将等于 H ( Y ) H(Y) H(Y)。如果 X X X Y Y Y 完全相关,那么一旦知道了 X X X 的取值, Y Y Y 的取值也就确定了,此时 H ( Y ∣ X ) H(Y|X) H(YX) 将为 0。

H ( Y ∣ X ) H(Y|X) H(YX) 的计算公式是:

H ( Y ∣ X ) = ∑ x ∈ X p ( x ) H ( Y ∣ X = x ) H(Y|X) = \sum_{x \in X} p(x) H(Y|X=x) H(YX)=xXp(x)H(YX=x)

其中, p ( x ) p(x) p(x) 是随机变量 X X X 取值为 x x x 的概率, H ( Y ∣ X = x ) H(Y|X=x) H(YX=x) 是在 X X X 取值为 x x x 的条件下 Y Y Y 的条件熵,其计算公式为:

H ( Y ∣ X = x ) = − ∑ y ∈ Y p ( y ∣ x ) log ⁡ b p ( y ∣ x ) H(Y|X=x) = -\sum_{y \in Y} p(y|x) \log_b p(y|x) H(YX=x)=yYp(yx)logbp(yx)

其中, p ( y ∣ x ) p(y|x) p(yx) 是在 X X X 取值为 x x x 的条件下, Y Y Y 取值为 y y y 的条件概率。

理解关系

H ( Y ) H(Y) H(Y) H ( Y ∣ X ) H(Y|X) H(YX) 之间的关系可以通过互信息 I ( X ; Y ) I(X;Y) I(X;Y) 来理解,互信息衡量的是知道 X X X 的值后 Y Y Y 的不确定性的减少量。互信息 I ( X ; Y ) I(X;Y) I(X;Y) 可以表示为:

I ( X ; Y ) = H ( Y ) − H ( Y ∣ X ) I(X;Y) = H(Y) - H(Y|X) I(X;Y)=H(Y)H(YX)

这也可以写作:

I ( X ; Y ) = H ( Y ) − H ( Y ∣ X ) = H ( X ) + H ( Y ) − H ( X , Y ) I(X;Y) = H(Y) - H(Y|X) = H(X) + H(Y) - H(X,Y) I(X;Y)=H(Y)H(YX)=H(X)+H(Y)H(X,Y)

互信息 I ( X ; Y ) I(X;Y) I(X;Y) 描述了知道 X X X 的值后 Y Y Y 的不确定性的减少量。如果 X X X Y Y Y 完全独立,那么 I ( X ; Y ) = 0 ; I(X;Y) = 0; I(X;Y)=0如果 X X X Y Y Y 完全相关,那么 I ( X ; Y ) = H ( Y ) I(X;Y) = H(Y) I(X;Y)=H(Y)

决策树的本质

损失函数:总信息熵

决策树的构建是一个递归的过程,每次选择最优的特征来分割数据集,直到满足停止条件。在这个过程中,我们需要一个准则来衡量分割的好坏,这个准则就是损失函数。在决策树中,常用的损失函数是总信息熵(Overall Information Entropy),它衡量的是数据集的不确定性。我们希望每次分割都能最大程度地减少数据集的不确定性,从而提高模型的预测准确性。

信息熵是由香农提出的,用于衡量一个随机变量的不确定性。在决策树中,我们通常使用信息熵来衡量数据集的不确定性。数据集的信息熵定义为:

H ( D ) = − ∑ i = 1 n p i log ⁡ 2 p i H(D) = -\sum_{i=1}^{n} p_i \log_2 p_i H(D)=i=1npilog2pi

其中, p i p_i pi 是数据集中第 i i i 类样本的比例。信息熵越大,数据集的不确定性越高。

梯度:信息增益

在机器学习中,梯度是损失函数的导数,它指向损失函数增加最快的方向。在决策树中,我们没有显式的梯度概念,但可以类比地引入“梯度”的概念,即信息增益(Information Gain),它衡量的是分割前后数据集信息熵的减少量。我们希望每次分割都能获得最大的信息增益,从而最大程度地减少数据集的不确定性。

信息增益的计算公式为:

I G ( D , A ) = H ( D ) − ∑ j = 1 m ∣ D j ∣ ∣ D ∣ H ( D j ) IG(D, A) = H(D) - \sum_{j=1}^{m} \frac{|D_j|}{|D|} H(D_j) IG(D,A)=H(D)j=1mDDjH(Dj)

其中, H ( D ) H(D) H(D)是数据集 D的信息熵, D j D_j Dj是数据集 D D D 在特征 A A A 的第 j j j 个取值下的子集, ∣ D j ∣ |D_j| Dj是子集 D j D_j Dj的样本数, ∣ D ∣ |D| D是数据集 D D D的样本数。

决策树:梯度下降路径

在构建决策树的过程中,我们每次选择最优的特征来分割数据集,这可以类比于梯度下降算法中的迭代优化过程。在梯度下降中,我们沿着梯度的反方向更新参数,以减小损失函数的值。

在决策树中,我们选择信息增益最大的特征进行分割,这可以看作是在沿着信息熵减少的方向优化,即“梯度下降路径”。

非参数模型

决策树是一种非参数模型,这意味着它不依赖于数据的分布假设,可以捕捉数据中的非线性关系。决策树的灵活性使得它适用于多种数据类型和任务,但它也容易过拟合,因此需要剪枝等技术来提高模型的泛化能力。

总结来说,决策树的本质是一种基于总信息熵的损失函数,通过信息增益来选择最优特征进行分割的梯度下降路径,它是一种灵活的非参数模型,可以捕捉数据中的复杂关系。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

misc学习

一.知识点 1.BMP文件 BMP文件主要有四部分组成,位图头、位图信息、调色板、位图数据。 bmp文件头(bmp file header):提供文件的格式、大小等信息 位图信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息…

JAVA顺序表相关习题1

1.笔试题:cvte str1 :welcome to cvte str2:come 描述:删除第一个字符串当中出现的所有的第二个字符串的字符!结果:wlt vt 要求 用ArrayList完成! public class Test {public static List<Character> findSameWords(String u1, String u2){List<Character> listn…

Sora新突破!AI生成电影迈向新阶段,配音版Sora登场!将如何改变影视行业?

Sora之后迎来新突破&#xff01; 配音版Sora来袭&#xff0c;AI生成电影又更近一步&#xff01; 在2024年伊始&#xff0c;人工智能界迎来了一次创新性的突破&#xff0c;由AI语音技术的先锋公司ElevenLabs带头实现。他们最近的成就体现在为OpenAI的Sora视频模型提供了令人动容…

tiktok如何影响用户行为的分析兼论快速数据分析的策略

tiktok如何影响用户行为的分析 快速数据分析的策略流程&#xff1a; 1.确定指标变量&#xff0c;也就确定了数据分析想要回答的问题。想回答不同的问题&#xff0c;就选择不同的指标变量。 变量筛选方法选出指标变量相关的变量&#xff1b; 针对筛选出的变量进行描述性分析和因…

【网站项目】家庭理财系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

金三银四面试题(二十三):装饰器模式知多少?

什么是装饰器模式 装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许动态地向对象添加新的行为&#xff0c;而无需修改原始对象的结构。通过将对象包装在一个或多个装饰器对象中&#xff0c;装饰器模式可以增强原始对象的功能。 装…

Python俄罗斯方块

文章目录 游戏实现思路1. 游戏元素的定义2. 游戏区域和状态的定义3. 游戏逻辑的实现4. 游戏界面的绘制5. 游戏事件的处理6. 游戏循环7. 完整实现代码 游戏实现思路 这个游戏的实现思路主要分为以下几个步骤&#xff1a; 1. 游戏元素的定义 Brick类&#xff1a;表示游戏中的砖…

SpringCloud学习笔记(三)Nacos配置管理与热更新、Feign远程调用替代RestTemplate

文章目录 前言6 Nacos配置管理6.1 在Nacos中添加配置文件6.2 微服务拉取配置6.3 配置热更新6.3.1 方式一&#xff1a;RefreshScope注解6.3.2 方式二&#xff1a;ConfigurationProperties注解 6.4 配置共享6.4.1 添加一个环境共享配置6.4.2 实现读取共享配置 6.5 配置共享的优先…

Agent AI智能体:未来社会的无形引领者

目录 前言1. 智能体说明1.1 定义1.2 作用1.3 类型介绍1.4 核心技术 2. 技术进步与创新2.1 机器学习的进步2.2 深度学习与神经网络2.3 强化学习2.4 转移学习与多任务学习2.5 自然语言处理(NLP)的革新2.6 知识图谱与推理 3. 行业领域应用场景3.1 游戏行业3.2 医疗健康3.3 金融服务…

【译】Celery文档1:First Steps with Celery——安装和配置Celery

https://docs.celeryq.dev/en/stable/getting-started/first-steps-with-celery.html#first-steps Celery的第一步 Celery时一个自带电池的任务队列。 本教程内容&#xff1a; 安装消息传输代理(broker)安装Celery并创建第一个任务(task)启动Celery工作进程(worker)并执行任务…

【Harmony3.1/4.0】笔记七-选项卡布局

概念 当页面信息较多时&#xff0c;为了让用户能够聚焦于当前显示的内容&#xff0c;需要对页面内容进行分类&#xff0c;提高页面空间利用率。Tabs组件可以在一个页面内快速实现视图内容的切换&#xff0c;一方面提升查找信息的效率&#xff0c;另一方面精简用户单次获取到的…

源码编译framework.jar 并成功导入android studio 开发

一、不同安卓版本对应路径 Android N/O: 7 和 8 out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar Android P/Q: 9 和 10 out/soong/.intermediates/frameworks/base/framework/android_common/combined/framework.jar Android R: 11以上 out/so…

第1章 手写WebServer

1.1 Web原理 1.1.1 Web概述 Web是指互联网上的万维网&#xff08;World Wide Web&#xff09;&#xff0c;是一个由超文本、超链接和多媒体内容组成的信息空间。Web的基础技术是HTTP协议、URL、HTML、CSS和JavaScript等。Web被广泛应用于信息检索、在线购物、社交媒体、在线游…

揭秘APP收益:养机流程带来的盈利秘诀

在这个高速发展的数字时代&#xff0c;手机应用&#xff08;APP&#xff09;已成为人们日常生活中不可或缺的工具。随着移动设备的普及和网络技术的不断进步&#xff0c;APP市场呈现出前所未有的活力和潜力。今天&#xff0c;我们将深入探讨一个特殊的高效APP运营模式——通过广…

18 如何设计微服务才能防止宕机?

在上一讲里&#xff0c;介绍了构建一个稳健的微服务的具体法则&#xff1a;防备上游、做好自己、怀疑下游&#xff0c; 并介绍了为什么要防备上游&#xff0c;以及一些防备上游的具体手段。 在本讲里&#xff0c;咱们一起来学习&#xff0c;做好微服务自身的设计和代码编写的常…

大小鼠无创血压测量系统KT-104

大小鼠无创血压测量分析系统又称鼠尾动脉血压仪&#xff0c;是新一代测量鼠血压产品&#xff0c;系统包含软件、采集器、充放气装置等组成。 详情介绍&#xff1a; 一、工作原理&#xff1a; 该仪器测量工作原理与用普通人体血压计量人体动脉血压的克氏音原理类似。高敏脉搏换…

《QT实用小工具·四十八》趣味开关

1、概述 源码放在文章末尾 该项目实现了各种样式的趣味开关&#xff1a; 1、爱心形状的switch开关&#xff0c;支持手势拖动、按压效果 2、线条样式的3种开关 项目demo演示如下所示&#xff1a; 使用方式&#xff1a; 1、sapid_switch文件夹加入工程&#xff0c;.pro文件中…

最新版pycharm安装教程

目录 PyCharm 简介 访问 PyCharm 官网&#xff1a; 选择版本&#xff1a; 这里我们选择社区版即可 环境变量的配置 第一步 第二步 第三步 Pycharm的使用 【报错解决】 通用注意事项&#xff1a; PyCharm 简介 ​ PyCharm是一种Python IDE&#xff08;Integrated Devel…

ABB机械臂3HAC2492-1控制柜电缆维修思路

ABB机器人控制柜是机器人运行的核心部件&#xff0c;而电缆则是控制柜与机器人之间的桥梁。当出现ABB工业机械手控制柜电缆故障时&#xff0c;会影响机器人的正常运行&#xff0c;甚至可能导致安全事故。ABB机械臂3HAC2492-1控制柜信号线缆维修步骤 1. 拆下控制柜电缆&#xff…

Oracle索引组织表与大对象平滑迁移至OceanBase的实施方案

作者简介&#xff1a;严军(花名吉远)&#xff0c;十年以上专注于数据库存储领域&#xff0c;精通Oracle、Mysql、OceanBase&#xff0c;对大数据、分布式、高并发、高性能、高可用有丰富的经验。主导过蚂蚁集团核心系统数据库升级&#xff0c;数据库LDC单元化多活项目&#xff…