回归树:递归二分、交叉验证剪枝(平方误差和泊松偏差)

怎么用一棵二叉树把数据按变量切成几块、每块给一个预测?树长多大合适?出险频率能不能用树来分组?

SOA SRMSOA PACAS MAS-IIIFoA CS2
对过的标准答案
3 条
覆盖的考试公式
2 个
参数
12 个
开源库
1 个

01当场运行

改一个参数,当场重算

正在用默认参数运行,计算量大的方法最多要 20 秒。

04出处和说明

公式从哪里来,有什么限制

列出参考的教材、论文和考试公式条目。方法的限制和实现上的说明也写在这里。

参考

  • James、Witten、Hastie、Tibshirani:An Introduction to Statistical Learning(第 2 版)8.1 决策树的基础
  • Breiman、Friedman、Olshen、Stone:Classification and Regression Trees(1984)第 3 章 最弱连接剪枝
  • Hastie、Tibshirani、Friedman:The Elements of Statistical Learning(第 2 版)9.2 Tree-based methods
  • Noll、Salzmann、Wüthrich (2018) Case Study: French Motor Third-Party Liability Claims(SSRN 3164764)第 3 节 泊松回归树

覆盖的考试公式

  • SML-004回归树与分类树(RSS、Gini、交叉熵、偏差)SRMPAMAS-IICS2
  • SML-005成本复杂度剪枝SRMPAMAS-II

公式条目按精算考试的公式表整理,编号和中文名是平台自己的。

这个方法算什么

按残差平方和(或泊松偏差,车险频率)贪心地递归二分,再用成本复杂度剪枝得到一串子树,用 K 折交叉验证选 α(误差最小或一倍标准误规则)。给出剪枝后的树、每片叶子的预测、剪枝路径和交叉验证曲线;车险数据另给测试集的泊松偏差,和 GLM 比较。

说明和限制

  • 分裂是贪心的:每一步只找当前最好的一刀,不回头。连续变量的分裂点取相邻两个不同值的中点,左边是 x < 分裂点。
  • 剪枝路径(α_k 和子树)在全部训练数据上算;交叉验证时每一折重新长树、剪枝,在相邻两个 α 的几何平均 √(α_k α_{k+1}) 上算这一折的误差(Breiman 等 1984 第 3.4 节)。
  • 车险演示数据按格子汇总后长树(和逐张保单长树是同一棵树),每片叶子至少 10 次出险;交叉验证按保单号分折(和种子无关)。交叉验证的泊松偏差按格子算,和逐张保单算只差一个与模型无关的常数,不影响选 α。测试集的偏差逐张保单算,和 glm.lift_gini、validation.model_comparison 同口径。
  • cp 是 α 除以根节点的风险(rpart 的写法),和数据的量纲无关。

数据

看参数里选的数据:选平台的数据集时是真实数据或公开样例,填自己的数时只用输入的数。上面运行的输出里写明这一次用的是哪种。

开源库和版本

  • numpy2.4.6BSD-3-Clause数值计算

05同族的方法

统计学习,还有 9 个方法

同一个方法族里的其他方法。在智能体里,用一句话就能调用这些方法。

在智能体里这样问“怎么用一棵二叉树把数据按变量切成几块、每块给一个预测?树长多大合适?出险频率能不能用树来分组?”