引入
我们回顾一下之前学习的两个算法,Bagging算法中,通过bootstrapping得到不一样的数据,通过这些数据送到一个基本算法之后,得到不同的g,最后对这些g取平均得到G;决策树算法中,通过递归方式建立子树,最终得到一棵完整的树。
这两种算法都有其鲜明的特点,决策树对于不同的数据相对会敏感一些,即其算法的variance很大,而Bagging的特点是通过投票和平均的方式来降低variance的效果。如果将这两种方法结合起来,就是该文要介绍的随机森林,random forest。
1. 随机森林算法
随机森立算法中的“随机”一词是指通过Bagging中的bootstrapping得到不同的数据,进而体现出来的随机性,而得到这笔数据用来送进CART算法训练得到一棵树,最后将所得的树做平均得到最终结果。
并行计算的可能性:随机森林算法从Bagging过程中可以分配到不同的计算机中进行计算,每台计算机可以独立学习一棵树,不同的树之间没有任何依赖关系。这使得Bagging过程很容易实现并行化。
2. 特征投影(Feature Projection)
在Bagging算法中,通过bootstrap在原来的数据中进行抽样,来得到不同的数据集,从而产生不同的g。
在随机森林的算法中,除了在数据集中做抽取之外,还可以在特征这一角度进行抽取。