本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/
目录
- 一、随机森林简介
- 二、随机森林训练原理
- 2.1. 随机森林的训练流程
- 2.2. 随机森林训练的核心代码
用过随机森林的朋友都知道,随机森林是集成决策的一个经典代表,它通过训练多棵决策树,进行集体决策以抵抗过拟合。
但是,随机森林究竟具体是怎么训练出来的呢?笔者扒了python-sklearn的源码细读后发现原来如此简单,下面我们就一起看一看随机森林是怎么训练出来的吧~
一、随机森林简介
随机森林是将决策树进行简单bagging的一种集成算法,它经过多次随机抽取样本训练多棵决策树,用多棵决策树集成决策。由于它拥有多棵树,且每棵树是随机的,所以称为随机森林。
随机森林的模型表达式如下:
可以看到,随机森林就是多棵决策树的集成,要了解随机森林是如何训练的,也就只需要了解随机森林的每棵决策树是如何训练的就可以了。
用过随机森林的朋友都知道随机森林是怎么回事了,没用过随机森林的朋友,从上面的表达式也大概知道随机森林是个什么模型了,这里就不作过多的解释了,下面就直接介绍随机森林是怎么训练出这么多决策树的吧~!
二、随机森林训练原理
2.1. 随机森林的训练流程
下面展示随机森林的训练流程图:
随机森林的具体训练流程如下
1.样本抽取 : 放回式随机抽取n(样本个数)次样本,最终得到n个样本
2.训练弱树 : 用抽取的样本训练决策树,最多使用m个特征就退出树的训练
一直训练K棵树为止
简单地说,就是生成k棵树,每棵树用的样本随机抽取,最后k棵树组合在一起就是森林
2.2. 随机森林训练的核心代码
下面展示随机森林训练时的核心代码,如下
由于随机森林就是训练决策树,所以这里直接调用决策树模型的代码,从代码中可以看到,就是先对样本进行抽样,然后再训练决策树就行了。
总的来说,随机森林的训练原理就是这么简单。
相关链接:
《老饼讲解-机器学习》:老饼讲解-机器学习教程-通俗易懂
《老饼讲解-神经网络》:老饼讲解-matlab神经网络-通俗易懂
《老饼讲解-神经网络》:老饼讲解-深度学习-通俗易懂