随机森林(Random Forest)是一种基于集成学习的机器学习算法,通过构建多棵决策树并综合其预测结果来提高模型的准确性和鲁棒性。它由Leo Breiman在2001年提出,结合了Bagging(Bootstrap Aggregating)和随机特征选择的思想,广泛应用于分类、回归和特征选择任务。
核心思想
1.Bagging(自助聚合):
从原始数据集中有放回地随机抽样(Bootstrap采样),生成多个子数据集。
每个子数据集训练一棵决策树,最终通过投票(分类)或平均(回归)得到预测结果。
2.随机特征选择:
每棵决策树在分裂时,仅从随机选取的部分特征中选择最优分裂点(而非所有特征),增加树之间的差异性。
算法步骤
随机采样:从训练集中有放回地抽取n个样本(Bootstrap采样)
随机选特征:对于每个节点,从 m个随机特征中选择最佳分裂点
构建多棵树:重复上述过程,生成T棵决策树
聚合结果:
分类任务:投票决定最终类别。
回归任务:取所有树的预测平均值。
随机森林的优点:
高准确性:在多数任务中表现优于单棵决策树和传统算法(如SVM、逻辑回归)。
无需特征缩放:对数据分布无假设,适用于混合类型特征。
内置特征重要性评估:可输出特征对模型的贡献度。
处理缺失值:通过近似median填充缺失值,减少数据预处理负担。
随机森林的缺点:
计算资源消耗大:树的数量多时,训练和预测速度较慢。
黑箱模型:相比单棵决策树,可解释性降低。
对噪声敏感:若数据中噪声过多,可能影响性能。