[机器学习]随机森林(介绍)

1,135 阅读3分钟

下面详细介绍随机森林算法

关键词:

集成学习, bagging思想, 有放回的重复采样.

有放回抽样,每个子训练数据集生成一棵决策树, 并行训练. 2个随机(样本随机,特征随机)

cart决策树, 二叉树, 分类采用基尼系数, 回归采用mse均方差

不剪枝, 允许树生长到最大的深度, 因为随机性和集成, 可以抵消过拟合的风险.

没有显示的惩罚, 没有L1和L2正则项

不剪枝, 允许树生长到最大的深度, 做到了低偏差, 也就是准确. 集成思想, 做到了低方差, 也就是鲁棒性好, 泛化能力强.

1. 什么是随机森林算法?

随机森林(Random Forest)是一种基于集成学习思想(Ensemble Learning)的机器学习算法,通过组合多个决策树(Decision Tree)来提高模型的泛化能力和鲁棒性。

其核心思想是:

  • Bagging(Bootstrap Aggregating) :通过有放回抽样(Bootstrap Sampling)生成多个训练数据子集,每个子集训练一个决策树。
  • 特征随机性:每棵树在节点分裂时,随机选择部分特征进行最优划分(减少特征间的相关性)。

最终,分类问题通过投票(多数表决),回归问题通过平均得到预测结果。


2. 适合解决的问题类型

随机森林适用于以下场景:

  • 分类问题:如垃圾邮件检测、图像分类。
  • 回归问题:如房价预测、销量预测。
  • 高维数据:特征维度高(例如基因数据、文本数据)。
  • 缺失值处理:对缺失值不敏感,可通过袋外数据(Out-of-Bag, OOB)填充。
  • 非线性关系:能捕捉特征间的复杂交互。
  • 特征重要性评估:通过特征在分裂中的贡献度衡量重要性。

3. 使用的决策树类型

随机森林通常使用 CART(Classification and Regression Tree) 作为基学习器,特点包括:

  • 不剪枝:允许树生长到最大深度(通过随机性和集成抵消过拟合风险)。
  • 支持分类和回归:基尼系数(Gini Index)用于分类,均方误差(MSE)用于回归。

4. 节点划分方法

每棵树的节点划分通过以下步骤实现:

  1. 随机选择特征子集:在全部特征中随机选取 m 个候选特征(通常 m=总特征数

  2. 最优划分选择

    • 分类任务:使用基尼系数或信息增益(Information Gain)。

    • 回归任务:使用均方误差(MSE)或平均绝对误差(MAE)。

  3. 递归分裂:重复上述过程直到达到停止条件(如节点样本数小于阈值)。


5. 惩罚项机制

随机森林 没有显式的惩罚项(如L1/L2正则化),但通过以下机制防止过拟合:

  • 样本随机性:Bootstrap采样导致每棵树仅看到部分数据,增加多样性。
  • 特征随机性:限制每棵树只能使用部分特征,降低模型复杂度。
  • 袋外估计(OOB) :用未参与训练的样本验证模型性能(验证集, 网格搜索+交叉验证),间接约束过拟合。

总结

  • 优点:高准确性、抗过拟合、支持并行化、可解释特征重要性。
  • 缺点:训练时间较长、对噪声敏感(需预处理数据)。
  • 适用场景:中小规模数据、需要解释特征重要性、非结构化数据(如图像需结合特征提取)。

随机森林通过集成和随机性平衡偏差与方差,是解决复杂问题的通用工具。