成本复杂度剪枝:最弱连接和子树序列
一棵长满的树怎么一步步剪小?给定惩罚 α,代价 R(T) + α|T| 最小的是哪棵子树?
- 对过的标准答案
- 2 条
- 覆盖的考试公式
- 1 个
- 参数
- 9 个
- 开源库
- 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
覆盖的考试公式
- SML-005成本复杂度剪枝SRMPAMAS-II
公式条目按精算考试的公式表整理,编号和中文名是平台自己的。
这个方法算什么
长一棵大树,按最弱连接算出剪枝的序列:每一步剪掉 g(t) = (R(t) − R(T_t)) / (|T_t| − 1) 最小的内部节点,得到 α_1 < α_2 < … 和嵌套的子树。对给定的 α 列出每棵子树的代价 R(T) + α|T|,标出最小的那棵。
说明和限制
- R(t) 是节点 t 作叶子时的风险(回归树是残差平方和,车险频率是泊松偏差),T_t 是以 t 为根的子树。
- 同一个 α 下几个节点的 g(t) 相等时一起剪掉。α 从 α_k 到 α_{k+1} 之间,最优的子树都是 T_k(Breiman 等 1984 定理 3.10)。
- 这里只算剪枝的序列。用交叉验证选 α 见 statistical_learning.regression_tree。
数据
看参数里选的数据:选平台的数据集时是真实数据或公开样例,填自己的数时只用输入的数。上面运行的输出里写明这一次用的是哪种。
开源库和版本
- numpy2.4.6BSD-3-Clause数值计算
05同族的方法
统计学习,还有 9 个方法
同一个方法族里的其他方法。在智能体里,用一句话就能调用这些方法。
在智能体里这样问“一棵长满的树怎么一步步剪小?给定惩罚 α,代价 R(T) + α|T| 最小的是哪棵子树?”
- Bagging 和随机森林:袋外误差和变量重要性一棵树太不稳定。在自助样本上种很多棵树再取平均(Bagging),每次分裂只看随机的几个变量(随机森林),误差能降多少?不用测试集怎么估计误差?2条标准答案
- 偏差-方差分解:测试误差为什么随复杂度先降后升模型越灵活,训练误差越小,可测试误差为什么会先降后升?测试误差里多少是方差、多少是偏差、多少是去不掉的噪声?3条标准答案
- 分类的评估:混淆矩阵、精确率、召回率、F1、ROC 和 AUC一个分类模型(例如预测是否出险、是否欺诈)好不好:在某个阈值下各类错了多少,精确率和召回率多少,换阈值时怎么取舍,AUC 多少?3条标准答案
- 分类树:Gini 指数、交叉熵、误分率和剪枝怎么用一棵树做分类?三种不纯度(Gini、熵、误分率)分出的树有什么不同?剪到多大,测试集上的混淆矩阵怎样?2条标准答案
- 层次聚类:完全、单、平均和重心连接不预先定类的个数,怎么一步步把最相近的观测和类合并成一棵树(谱系图)?不同的连接方式结果差在哪?3条标准答案
- K 均值聚类:类内平方和和肘部图怎么把观测分成 K 组,让组内尽量相似?分几组合适?2条标准答案
- K 近邻:分类和回归、贝叶斯分类器和贝叶斯错误率用离它最近的 K 个观测来预测一个新观测,K 取多大好?最好的分类器(贝叶斯分类器)能做到多低的错误率?4条标准答案
- 主成分分析:载荷、得分和方差解释比例(PVE)几个相关的变量能不能用少数几个综合指标概括?每个主成分是哪些变量的组合,解释了多少方差,要留几个?3条标准答案
- 回归树:递归二分、交叉验证剪枝(平方误差和泊松偏差)怎么用一棵二叉树把数据按变量切成几块、每块给一个预测?树长多大合适?出险频率能不能用树来分组?3条标准答案