决策树通过依次提出一连串问题来进行预测,比如“完成了练习测验吗?”或“收入高于 50,00050{,}000 吗?”在分类树中,最好的问题通常是能让子节点比父节点更不混杂的问题。这正是熵和基尼不纯度发挥作用的地方。

随机森林使用的是同样的基本思想,但它不是只依赖一棵树,而是对很多棵树的结果取平均。如果你只想记住核心概念,那就是:熵和基尼帮助决策树选择划分,而随机森林帮助降低单棵树的不稳定性。

决策树中的熵和基尼衡量什么

熵和基尼不纯度都是衡量一个分类节点有多混杂的方法。

如果一个节点中各类别的概率为 p1,p2,,pkp_1, p_2, \dots, p_k,那么一种常见的熵公式是

H=i=1kpilog2piH = -\sum_{i=1}^k p_i \log_2 p_i

这个公式用于分类树。对数的底数只会改变数值尺度,但不会改变哪个划分更优的排序。

基尼不纯度为

G=1i=1kpi2G = 1 - \sum_{i=1}^k p_i^2

当一个节点完全纯净时,这两个指标都等于 00。当类别混合得越厉害时,它们的值都会变大。

在实际中,熵和基尼通常会对候选划分给出相近的排序。熵有直接的信息论解释,而基尼计算起来稍微更简单一些。

决策树如何选择划分

对于熵,一个常见规则是信息增益:

Information Gain=H(parent)jnjnH(childj)\text{Information Gain} = H(\text{parent}) - \sum_j \frac{n_j}{n} H(\text{child}_j)

这里,nn 是父节点中的样本数,njn_j 是第 jj 个子节点中的样本数。

对于基尼,思路是平行的:计算子节点加权后的不纯度,并优先选择让它下降最多的划分。

这里的条件很重要:熵和基尼是分类树的标准指标。回归树通常使用不同规则,比如方差下降,因为目标是数值而不是类别。

例题:一次划分中的熵与基尼

假设某个节点中有 66 个用于“通过/未通过”预测的训练样本:

  • 33 个是通过
  • 33 个是未通过

因此,父节点是均匀混合的。

它的熵为

Hparent=36log2(36)36log2(36)=1H_{\text{parent}} = -\frac{3}{6}\log_2\left(\frac{3}{6}\right) - \frac{3}{6}\log_2\left(\frac{3}{6}\right) = 1

它的基尼不纯度为

Gparent=1(36)2(36)2=0.5G_{\text{parent}} = 1 - \left(\frac{3}{6}\right)^2 - \left(\frac{3}{6}\right)^2 = 0.5

现在测试划分“完成了练习测验吗?”

  • 是分支:44 个样本,其中 33 个通过,11 个未通过
  • 否分支:22 个样本,其中 00 个通过,22 个未通过

对于“是”分支,

Hyes=34log2(34)14log2(14)0.811H_{\text{yes}} = -\frac{3}{4}\log_2\left(\frac{3}{4}\right) - \frac{1}{4}\log_2\left(\frac{1}{4}\right) \approx 0.811

以及

Gyes=1(34)2(14)2=0.375G_{\text{yes}} = 1 - \left(\frac{3}{4}\right)^2 - \left(\frac{1}{4}\right)^2 = 0.375

对于“否”分支,该节点是纯净的,所以

Hno=0,Gno=0H_{\text{no}} = 0, \qquad G_{\text{no}} = 0

划分后的加权熵为

46(0.811)+26(0)0.541\frac{4}{6}(0.811) + \frac{2}{6}(0) \approx 0.541

所以信息增益为

10.5410.4591 - 0.541 \approx 0.459

划分后的加权基尼为

46(0.375)+26(0)=0.25\frac{4}{6}(0.375) + \frac{2}{6}(0) = 0.25

所以基尼下降量为

0.50.25=0.250.5 - 0.25 = 0.25

这两个指标都说明,这个划分优于不划分父节点,因为两种情况下加权不纯度都下降了。

为什么决策树在直觉上说得通

树模型容易阅读,因为它模仿了人们解释决策时常用的方式:“如果这个条件成立,就往左;否则,就往右。”因此,当你需要一个可以检查、解释,或转化为人类可读规则的模型时,决策树会很有用。

它们也很灵活。决策树可以捕捉非线性模式和特征之间的交互,而不必用一个全局方程去强行描述整个数据集。

为什么随机森林通常效果更好

单棵树容易解释,但它可能不稳定。数据发生一点小变化,就可能生成明显不同的树。

随机森林通过构建很多棵树而不是一棵树,来降低这种不稳定性。常见做法是:

  • 对每棵树都从训练数据中进行有放回抽样
  • 在每次划分时只考虑随机选取的一部分特征
  • 汇总多棵树的预测结果

对于分类,随机森林通常采用多数投票。对于回归,它通常对各棵树的输出取平均。

这种权衡很直接。随机森林通常比单棵树更准确、更稳定,但也更难像一组清晰规则那样解释。

决策树中的常见错误

把熵和基尼当成不同类型的预测模型

它们是划分准则,不是不同的模型家族。无论使用哪一种,模型本质上仍然是决策树。

忘记它只适用于分类这一条件

熵和基尼是分类树的标准指标。如果目标是数值,树通常会改用基于方差或误差的规则。

过度追求完美纯度

如果你一直划分,直到训练集上的每个叶节点几乎都完美无误,这棵树就可能过拟合。深度限制、叶节点最小样本数或剪枝都有其存在的理由。

以为随机森林也能自我解释

随机森林通常预测更好,但透明度低于单棵树。如果可解释性是首要要求,那么一棵经过精心控制的树仍可能是更好的工具。

什么时候使用决策树或随机森林

决策树广泛出现在金融、医学、运营、营销以及许多其他应用场景中的分类和回归任务里。当输入与输出之间的关系无法被直线模型很好描述,且规则式解释又很重要时,它们尤其有用。

当可解释性最重要,并且你需要检查完整决策路径时,使用单棵树。当预测质量和稳定性比拥有一棵可以逐行阅读的紧凑树更重要时,使用随机森林。

试着做一道类似题

找一个只有两个类别的小型带标签数据集,测试两种可能的第一次划分。计算每个子节点中的类别比例,然后比较加权熵或加权基尼。亲手算一个小例子,往往是理解划分逻辑最快的方法。

需要解题帮助?

上传你的问题,几秒钟内获得经过验证的分步解答。

打开 GPAI Solver →