真实面经题目 · 原创解析
什么是随机森林?
随机森林是用多棵决策树做 Bagging 集成的方法,通过样本随机和特征随机降低单棵树的方差,最终用投票或平均得到更稳的预测。
出现于:腾讯 · 算法
真实面经题目 · 原创解析
随机森林是用多棵决策树做 Bagging 集成的方法,通过样本随机和特征随机降低单棵树的方差,最终用投票或平均得到更稳的预测。
随机森林可以理解为很多棵相对独立的决策树组成的集成模型。训练时每棵树用 bootstrap 抽样得到不同训练集,节点分裂时只在随机选出的部分特征中找最优切分,让树之间差异更大。分类任务通常投票,回归任务取平均。它相比单棵树更不容易过拟合,鲁棒性更好,也能给出特征重要性,但模型较大、解释性不如单棵树。
随机森林属于 Bagging 集成。它训练多棵高方差、低偏差的决策树,再把结果平均或投票,用多个模型的差异抵消单棵树的不稳定。
每棵树通常用 bootstrap 有放回抽样得到训练样本。不同树看到的数据不完全一样,因此学到的分裂结构也会不同,这为后续投票或平均提供了多样性基础。
节点分裂时不是扫描全部特征,而是在随机特征子集中选择最优切分。这样能避免所有树都依赖少数强特征,提高集成多样性。
分类任务让多棵树投票,回归任务通常取平均。树越多,整体预测方差通常越低,但训练和推理成本也会上升,所以工程上要在树数量、深度和延迟之间取舍。
随机森林对非线性和特征交互友好,对异常值相对鲁棒,调参成本不高;缺点是模型体积大、推理慢一些,对外推能力弱,解释性弱于单棵树。
随机森林是并行 Bagging 降方差,GBDT 是串行 Boosting 逐步拟合残差或梯度,优化目标和训练方式不同。
它降低树之间相关性,让集成时错误不那么同步,从而更有效降低方差。
每棵树 bootstrap 没抽到的样本可作为袋外样本,用来估计泛化误差,不必额外划分验证集。