欢迎来到决策树的世界!

你好!今天我们将深入探讨 Exam PA 当中最直观且具视觉化的部分:决策树(Decision Trees)。如果你曾经玩过“20 个问题”猜谜游戏,或者曾依照流程图来排解网络连线问题,那你其实已经掌握了决策树的基本逻辑。在本章中,我们将学习如何建立决策树、如何避免它们变得过于“天马行空”,以及如何确保模型能应用于未曾见过的新数据。如果刚开始觉得有点技术性也不用担心——我们会一步步为你拆解!

1. 建立决策树:递归二元分割法

当我们建立决策树时,目标是将数据切分成更小、更“纯”的组别。这个过程称为递归二元分割(Recursive Binary Splitting)。试着把它想象成你在分类洗涤衣物:你可能会先按颜色分类(白色 vs. 彩色),然后再根据材质将彩色衣物进行细分。

运作方式(步骤详解):

1. 从顶部开始:我们从包含所有观测值的一个大组(根节点,Root Node)开始。
2. 寻找最佳分割点:我们检视每一个预测变量(predictor variable)以及所有可能的“分割点”(例如:年龄 < 30 vs. 年龄 ≥ 30)。
3. 目标:我们选择能使“不纯度(impurity)”降低最多的分割方式。我们希望最终形成的组别(叶节点,leaves)尽可能地相似。
4. 重复步骤:我们对每一个新产生的分支重复上述步骤。这就是为什么它被称为“递归(recursive)”的原因。

衡量成功(数学部分)

我们如何判断一个分割是否“优秀”?这取决于我们的预测目标:

针对回归树(预测数值):
我们使用残差平方和(Residual Sum of Squares, RSS)。我们想找到能使以下式子最小化的分割: \( \sum (y_i - \hat{y}_{R})^2 \) 解读:我们希望在该组别内的实际数值,尽可能地接近该组的平均值。

针对分类树(预测类别):
我们使用诸如基尼指数(Gini Index)熵(Entropy)之类的指标。
- 基尼指数: \( G = \sum_{k=1}^{K} \hat{p}_{mk}(1 - \hat{p}_{mk}) \)
- 熵: \( D = -\sum_{k=1}^{K} \hat{p}_{mk} \log \hat{p}_{mk} \)
当节点“纯度”很高(意即该组中几乎所有样本都属于同一个类别)时,这两个指标的数值都会很低。

快速回顾:分割是贪婪(greedy)的。这意味着模型会在当前步骤做出最佳决策,而不考虑该分割是否会引导未来五个步骤后产生更好的整棵决策树。

2. 生长过大的危险:过拟合(Overfitting)

如果我们让决策树持续生长,直到每个观测值都成为一个独立的微小叶节点,我们在训练数据上的误差将会是 0%。听起来很棒,对吧?错了!这就是典型的过拟合(Overfitting)

类比:想象一下,与其理解底层概念,你却死背练习题中的每一个具体问题与答案。当正式考试出现稍微不同的题目时,你会因为学到的只是“杂讯”而非“规律”而惨遭滑铁卢。

停止规则(超参数,Hyperparameters)

为了防止决策树变成一团混乱、过拟合的庞然大物,我们使用“停止规则”:
- minbucket:叶节点内允许的最少观测值数量。如果某次分割产生的组别小于此数值,则该分割不被允许。
- maxdepth:决策树允许的最大“层级”数。
- cp(复杂度参数,Complexity Parameter):一个阈值,用于衡量误差必须改进多少,才足以证明进行下一次分割的合理性。

3. 修剪:精简决策树

即使有了停止规则,通常更好的做法是先让决策树长得很大,然后再进行“修剪”。这称为代价复杂度修剪(Cost Complexity Pruning)(或称最弱链接修剪)。

我们使用一个公式来评分决策树: \( R_{\alpha}(T) = R(T) + \alpha |T| \) - \( R(T) \) 是误差(例如 RSS)。
- \( |T| \) 是终端节点的数量(决策树的大小)。
- \( \alpha \)(Alpha):这是复杂度的“惩罚项”。

取舍平衡:
- 若 \( \alpha = 0 \),惩罚为零,我们将得到一棵巨大且复杂的树。
- 当 \( \alpha \) 增加,拥有更多叶节点的惩罚随之增加,迫使决策树变得更小、更简单。

你知道吗?在 R 语言的 rpart 套件中,复杂度参数 cp 与此处的 \(\alpha\) 直接相关。更高的 cp 代表决策树更小!

4. 验证:选择最佳决策树

我们如何选择完美的修剪程度(最佳的 \(\alpha\))?我们使用 K 折交叉验证(K-fold Cross-Validation)

流程:
1. 将数据分成 10 等分(folds)。
2. 用 9 等分进行训练,并在第 10 等分上进行测试。
3. 针对不同大小的决策树重复上述过程。
4. 选择交叉验证误差最低的那个大小。

1-SE 规则

在 Exam PA 中,你常会听到 1-SE 规则。与其选择表现绝对最好的树,我们选择在最小误差的一个标准误(Standard Error)范围内,最小(最简单)的那棵树
为什么呢?因为在精算领域中,我们偏好简约性(parsimony)。模型越简单,越不容易过拟合,也更容易向利益相关者进行解释!

5. 总结与关键要点

- 决策树是使用递归二元分割建立的,这是一种“贪婪”的方法。
- 回归树最小化 RSS分类树最小化 Gini 指数
- 当决策树过于复杂并捕捉到杂讯而非信号时,就会发生过拟合
- 修剪使用代价复杂度来寻找精确度与简约性之间的平衡。
- 交叉验证帮助我们挑选决策树的最佳版本。
- 记住:cp = 小树;低 cp = 大树。

常见错误提醒:不要混淆 minbucketminsplitminsplit 是“尝试”分割所需的观测值数量,而 minbucket 是分割后产生的叶节点中必须“保留”的观测值数量。

继续加油!基于树的模型是更进阶技术(如随机森林和提升法)的基础。掌握好这些基本功,你就已经成功了一半!