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

文章目录

决策树形状

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

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

监督学习算法

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

分类与回归

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

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

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

信息熵

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

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=1∑np(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=1∑6p(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)=−i∑p(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,y∑p(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(Y∣X)=x∑p(x)H(Y∣X=x)

其中, H ( Y ∣ X = x ) H(Y|X=x) H(Y∣X=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(Y∣X)

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

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)=i∑P(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)=−i∑P(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(Y∣X) 可以通过香农熵 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)=−y∈Y∑p(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(Y∣X) 是在已知随机变量 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(Y∣X) 将等于 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(Y∣X) 将为 0。

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

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(Y∣X)=x∈X∑p(x)H(Y∣X=x)

其中, p ( x ) p(x) p(x) 是随机变量 X X X 取值为 x x x 的概率, H ( Y ∣ X = x ) H(Y|X=x) H(Y∣X=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(Y∣X=x)=−y∈Y∑p(y∣x)logbp(y∣x)

其中, p ( y ∣ x ) p(y|x) p(y∣x) 是在 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(Y∣X) 之间的关系可以通过互信息 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(Y∣X)

这也可以写作:

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(Y∣X)=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=1∑npilog2pi

其中, 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=1∑m∣D∣∣Dj∣H(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的样本数。

决策树:梯度下降路径

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

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

非参数模型

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

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

相关推荐
我爱挣钱我也要早睡!43 分钟前
Java 复习笔记
java·开发语言·笔记
Christo35 小时前
TFS-2018《On the convergence of the sparse possibilistic c-means algorithm》
人工智能·算法·机器学习·数据挖掘
汇能感知5 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun6 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
非门由也6 小时前
《sklearn机器学习——管道和复合估计器》回归中转换目标
机器学习·回归·sklearn
茯苓gao6 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾6 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT7 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
ST.J7 小时前
前端笔记2025
前端·javascript·css·vue.js·笔记
Suckerbin7 小时前
LAMPSecurity: CTF5靶场渗透
笔记·安全·web安全·网络安全