下面详细介绍随机森林算法
关键词:
集成学习, 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. 节点划分方法
每棵树的节点划分通过以下步骤实现:
-
随机选择特征子集:在全部特征中随机选取 m 个候选特征(通常 m=总特征数
-
最优划分选择:
-
分类任务:使用基尼系数或信息增益(Information Gain)。
-
回归任务:使用均方误差(MSE)或平均绝对误差(MAE)。
-
-
递归分裂:重复上述过程直到达到停止条件(如节点样本数小于阈值)。
5. 惩罚项机制
随机森林 没有显式的惩罚项(如L1/L2正则化),但通过以下机制防止过拟合:
- 样本随机性:Bootstrap采样导致每棵树仅看到部分数据,增加多样性。
- 特征随机性:限制每棵树只能使用部分特征,降低模型复杂度。
- 袋外估计(OOB) :用未参与训练的样本验证模型性能(验证集, 网格搜索+交叉验证),间接约束过拟合。
总结
- 优点:高准确性、抗过拟合、支持并行化、可解释特征重要性。
- 缺点:训练时间较长、对噪声敏感(需预处理数据)。
- 适用场景:中小规模数据、需要解释特征重要性、非结构化数据(如图像需结合特征提取)。
随机森林通过集成和随机性平衡偏差与方差,是解决复杂问题的通用工具。