计算树的增益
在视频中,您已经了解了如何使用 Gini 指标为一棵树找到理想的划分。现在,您将为工作空间中加载的这棵树计算增益。
该数据集包含 500 个样本,其中 89 个为违约。这使得根节点的 Gini 为 0.292632。作为小提示,请记住:某个节点的 Gini = 2 × 该节点中违约占比 × 该节点中非违约占比。可以参考下面的代码复习一下。
gini_root <- 2 * (89 / 500) * (411 / 500)
您将使用这些 Gini 指标来帮助计算相对于根节点的叶节点增益。参考以下代码,了解如何使用已计算的 Gini 来求某个节点的增益。
Gain = gini_root - (prop(cases left leaf) * gini_left) - (prop(cases right leaf * gini_right))
请计算左叶节点与右叶节点的 Gini,以及两个叶节点相对于根节点的增益。包含该树的对象是 small_tree。
本练习是课程的一部分
R 中的信用风险建模
练习说明
- 已给出根节点 Gini 的计算方式。
- 计算左叶节点的 Gini 指标。
- 计算右叶节点的 Gini 指标。
- 通过用根节点 Gini 减去加权后的叶节点 Gini,计算增益。
- 关于此树划分的信息可以通过树对象
small_tree的$split获取。在这里,您应当查看improve列。improve是增益的另一种度量方式,即将增益乘以数据集中的样本数得到。请确保对象improve(代码已给出)的取值与small_tree$split中一致。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# The Gini-measure of the root node is given below
gini_root <- 2 * 89 / 500 * 411 / 500
# Compute the Gini measure for the left leaf node
gini_ll <-
# Compute the Gini measure for the right leaf node
gini_rl <-
# Compute the gain
gain <- gini_root - 446 / 500 * gini_ll - 54 / 500 * gini_rl
# compare the improve-column in small_tree$splits with our computed gain, multiplied by 500, and assure they are the same
small_tree$splits
improve <- gain * 500