## 介绍
决策树(DT)是一种用于分类和回归的非参数监督学习方法。目标是创建一个模型,通过学习从数据特征推断出的简单决策规则来预测目标变量的值。
熵
训练的目标是找到节点中的最佳分割,从而找到最优树。分割是使用一些标准完成的,例如:熵。
熵有许多定义,例如:
-
熵对应于信息源中包含的信息量。
-
熵也可以被视为随机性或集合中惊喜的测量。
-
熵是衡量系统中不可预测性或杂质的指标。
在决策树中,我们将熵视为节点内部纯度的度量。决策树模型的目标是减少每次分裂时节点的熵:
因此,我们希望最大化父节点的熵和子节点的熵之间的差异。这种差异称为信息增益。
集合 X 的熵 H 的数学公式如下:
H(X)=−∑_x∈Xp(x)logp(x)
信息增益
信息增益是父节点的熵与子节点的熵的加权和之间的差,因此可以用以下公式表示:
IG(Y,X)=H(Y)−∑x∈unique(X)P(x∣X)×H(Y∣X=x)
=H(Y)−∑x∈unique(X)len(X)X.count(x)×H(Y[X==x])
在哪里:
让我们举一个适当的例子:
当我们使用 X 的值除父节点时,我们将计算信息增益:
IG(parent,X)=H(parent)−∑x∈unique(X)P(x∣X)×H(parent∣X=x)
\
首先,我们计算父节点的熵:
H(parent)=−P(Y=Blue)×logP(Y=Blue)−P(Y=Yellow)×logP(Y=Yellow)
=−2111×log(2111)−2110×log(2110)=0.3
\
然后,我们将使用 X 的唯一值来计算分割后每个子节点的内部概率:
unique(X)=[Circle,Square]
∑_x∈unique(X)P(x∣X)×H(Y∣X=x)=P(Square∣X)×H(Y∣X=Square)
+P(Circle∣X)×H(Y∣X=Circle)
=219×H(Y∣X=Square)+2112×H(Y∣X=Circle)
例如:
\
我们从第一个子节点开始:
H(Y∣X=Square)=−P(Y=Blue∣X=Square)×logP(Y=Blue∣X=Square)
−P(Y=Yellow∣X=Square)×logP(Y=Yellow∣X=Square)
=−97×log97−92×log92=0.23
\
然后是第二个子节点:
H(Y∣X=Circle)=−P(Y=Blue∣X=Circle)×logP(Y=Blue∣X=Circle)
−P(Y=Yellow∣X=Circle)×logP(Y=Yellow∣X=Circle)
=−124×log124−128×log128=0.28
\
最后,我们将熵代入信息增益公式中:
IG(parent,X)=H(parent)−∑x∈unique(X)P(x∣X)×H(parent∣X=x)
=0.3−219×0.23−2112×0.28=0.041
\
\
如前所述,节点分裂的目标是最大化信息增益,从而最小化结果子节点中的熵。为此,我们需要尝试使用不同的输入集 X1,X2,…,Xn 来分割节点,并且我们只保留最大化信息增益的分割:
X\*=XiargmaxIG(Y,Xi)
何时停止分裂
决策树中的节点分裂是递归的,因此必须有一个我们可以使用的标准来停止分裂。这些是一些最常实施的标准:
-
当节点是纯节点时: H(node) = 0。进一步分裂节点是没有意义的。
-
最大深度数: 我们可以设置模型可以达到的最大深度,这意味着即使节点不纯,分裂也会停止。
-
每个节点的最小样本数: 我们还可以设置每个节点的最小样本数 N。如果每个节点的样本数等于 N,那么即使该节点不是纯节点,我们也会停止分裂。
在训练结束时(分裂),依赖于决策树末端的每个节点被称为“叶子”,因为它不是任何子树的根。每片叶子将代表样本最多的类别的产量。
## 结论
决策树因其高效、直观的背景和简单的实现而成为最著名的机器学习算法之一。该算法可以进一步与数值自变量(高斯决策树)一起使用,并且也可以扩展到解决回归任务。