Bagging 和随机森林:袋外误差和变量重要性
一棵树太不稳定。在自助样本上种很多棵树再取平均(Bagging),每次分裂只看随机的几个变量(随机森林),误差能降多少?
- 对过的标准答案
- 2 条
- 覆盖的考试公式
- 1 个
- 参数
- 8 个
- 开源库
- 1 个
01当场运行
改一个参数,当场重算
正在用默认参数运行,计算量大的方法最多要 20 秒。
04出处和说明
公式从哪里来,有什么限制
列出参考的教材、论文和考试公式条目。方法的限制和实现上的说明也写在这里。
参考
- James、Witten、Hastie、Tibshirani:An Introduction to Statistical Learning(第 2 版)8.2.1 Bagging、8.2.2 随机森林
- Breiman (2001) Random forests, Machine Learning 45
- Breiman (1996) Bagging predictors, Machine Learning 24
覆盖的考试公式
- SML-006Bagging、袋外误差与随机森林SRMPAMAS-II
公式条目按精算考试的公式表整理,编号和中文名是平台自己的。
这个方法算什么
在 B 个自助样本上各长一棵树,预测取平均。每个观测只用没抽到它的树(袋外,OOB)来预测,得到袋外误差。m = p 是 Bagging,m < p 是随机森林。给出袋外误差和树的棵数的曲线、和单棵树的比较、按分裂增益的变量重要性;车险数据另给测试集的泊松偏差,和 GLM 比较。
说明和限制
- 车险数据按保单做自助抽样:每张保单抽到的次数 k_i 来自多项分布,再按格子汇总(Σk_i·次数、Σk_i·风险暴露),和逐张保单长树相同。
- 袋外误差:每个观测只用没抽到它的树的平均预测。B 小的时候有的观测没有袋外的树,这些观测不计入(表里写明个数)。
- 随机森林在每个节点随机选 m 个变量再找最好的一刀,让树之间更不相关,平均以后方差降得更多。车险数据只有 3 个变量(年龄、车型、地区),m 的作用有限。
- 变量重要性是每个变量在全部树上的分裂增益(残差平方和或泊松偏差的减少)之和,再归一化到合计 100%。
数据
看参数里选的数据:选平台的数据集时是真实数据或公开样例,填自己的数时只用输入的数。上面运行的输出里写明这一次用的是哪种。
开源库和版本
- numpy2.4.6BSD-3-Clause数值计算
05同族的方法
统计学习,还有 9 个方法
同一个方法族里的其他方法。在智能体里,用一句话就能调用这些方法。
在智能体里这样问“一棵树太不稳定。在自助样本上种很多棵树再取平均(Bagging),每次分裂只看随机的几个变量(随机森林),误差能降多少?不用测试集怎么估计误差?”
- 偏差-方差分解:测试误差为什么随复杂度先降后升模型越灵活,训练误差越小,可测试误差为什么会先降后升?测试误差里多少是方差、多少是偏差、多少是去不掉的噪声?3条标准答案
- 分类的评估:混淆矩阵、精确率、召回率、F1、ROC 和 AUC一个分类模型(例如预测是否出险、是否欺诈)好不好:在某个阈值下各类错了多少,精确率和召回率多少,换阈值时怎么取舍,AUC 多少?3条标准答案
- 分类树:Gini 指数、交叉熵、误分率和剪枝怎么用一棵树做分类?三种不纯度(Gini、熵、误分率)分出的树有什么不同?剪到多大,测试集上的混淆矩阵怎样?2条标准答案
- 成本复杂度剪枝:最弱连接和子树序列一棵长满的树怎么一步步剪小?给定惩罚 α,代价 R(T) + α|T| 最小的是哪棵子树?2条标准答案
- 层次聚类:完全、单、平均和重心连接不预先定类的个数,怎么一步步把最相近的观测和类合并成一棵树(谱系图)?不同的连接方式结果差在哪?3条标准答案
- K 均值聚类:类内平方和和肘部图怎么把观测分成 K 组,让组内尽量相似?分几组合适?2条标准答案
- K 近邻:分类和回归、贝叶斯分类器和贝叶斯错误率用离它最近的 K 个观测来预测一个新观测,K 取多大好?最好的分类器(贝叶斯分类器)能做到多低的错误率?4条标准答案
- 主成分分析:载荷、得分和方差解释比例(PVE)几个相关的变量能不能用少数几个综合指标概括?每个主成分是哪些变量的组合,解释了多少方差,要留几个?3条标准答案
- 回归树:递归二分、交叉验证剪枝(平方误差和泊松偏差)怎么用一棵二叉树把数据按变量切成几块、每块给一个预测?树长多大合适?出险频率能不能用树来分组?3条标准答案