随机森林算法
书名:计算机视觉40例从入门到深度学习:OpenCV-Python
作者:李立宗
出版社:电子工业出版社
出版时间:2022-07-01
ISBN:9787121436857
第15章 机器学习导读
15.3 OpenCV中的机器学习模块
15.3.2 决策树
三、随机森林算法
1、Bagging算法
-
训练数据的划分对算法的性能有直接影响。
如果将训练数据直接划分为N份,让集成中的每个个体学习器学习,那么每个个体学习器所面对的训练数据不相同,因此它们的模型也不同。
这相当于构建了一个一盘散沙的军队,大家各司其职,每个人的战斗力都很强,但是由于缺乏协作,未必有打胜仗的能力。
针对此情况,Bagging算法是一种解决方案,该算法采用相互有交叉的训练子集训练模型。 -
相互有交叉的训练子集是通过有放回的采样方式进行采样获得的。
例如,有一组训练数据里面有n个样本,如果想从中取出存在交叉(重复)的包含n个样本的采样数据,那么可以通过有放回地取n次实现。
操作时,每次取出1个样本,记住该样本的数值后再将其放回,以使该样本在下次采样时仍有可能被选中,依次类推,取n次完成采样。
通过上述方式,保证最终取到的n个样本是可能包含重复样本的采样数据。
或者说,初始样本集中的样本有的在最终样本集中会出现多次,有的并没有出现。 -
采用上述方式,采样出N组包含n个测试样本的采样数据,然后基于每组采样数据训练出一个个体学习器,最后将这些个体学习器加权组合,构成集成。
-
上述是Bagging算法的基本流程。
该过程与直接划分样本集相比,采用了有交叉样本集。也
就是说,不同的个体学习器面对的训练数据既有个性化的值,又有共性化的值。进一步说,不同的个体学习器具备协同作战的能力。
使用时,Bagging算法针对分类任务采用简单投票法,针对回归任务采用简单平均法。
2、随机森林算法
-
随机森林算法是Bagging算法的一种变换形式。
随机森林算法在以决策树作为个体学习器构建Bagging集成的基础上,在决策树的过程中引入了随机属性选择。
简单来说,传统的决策树在选择划分属性时是在所有的属性集中选择一个最优的;而随机森林算法每次选择划分属性时,先从属性集中选择一个子集(所有集合的一部分),然后从该子集中选择一个最优的。 -
随机森林算法的实现思路简单方便且计算量小,在实践中具有超乎想象的强大性能,被誉为“代表集成学习技术水平的方法”。
随机森林算法不仅在样本选择时采用了随机方式(Bagging算法使用的方法),而且在选择属性时也使用了随机方式,这使得最终模型的泛化性能通过个体学习器的差异增加得到了进一步提升。