今天在练习 Kaggle 的项目时,发现网上很多博主都选择用 RandomForest (随机森林)算法训练模型,虽然最后参照他们的写法我也写出来了,但是没有很明白其中的原理,在此打算深入了解一下这个算法。
1. 什么是随机森林
随机森林是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。
在集成学习中,主要分为 bagging 算法 和 boosting 算法,而这里的随机森林则主要运用了 bagging 算法。也就是说
Bagging + 决策树 = 随机森林
1.1 集成学习
集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成单预测,因此优于任何一个单分类的做出预测。
本文主要介绍集成学习中的 bagging 算法:
bagging的名称来源于 ( Bootstrap AGGregatING ),意思是自助抽样集成,这种方法将训练集分成m个新的训练集,然后在每个新训练集上构建一个模型,各自不相干,最后预测时我们将这个m个模型的结果进行整合,得到最终结果。整合方式就是:分类问题用majority voting,回归用均值。
Bag