随机森林(分类与回归)

Posted ahu-lichang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机森林(分类与回归)相关的知识,希望对你有一定的参考价值。

随机森林(可用于分类回归

 

随机森林主要应用于回归和分类。

随机森林在运算量没有显著提高的前提下提高了预测精度。

 

1、简介

随机森林由多棵决策树构成,且森林中的每一棵决策树之间没有关联,模型的最终输出由森林中的每一棵决策树共同决定。

处理分类问题时对于测试样本,森林中每棵决策树会给出最终类别,最后综合考虑森林内每一棵决策树的输出类别,以

投票方式来决定测试样本的类别处理回归问题时则以每棵决策树输出的均值为最终结果

 

2、随机森林的随机性

体现在两个方面:

Ⅰ:样本的随机性,从训练集中随机抽取一定数量的样本,作为每颗决策树的根节点样本;

Ⅱ:属性的随机性,在建立每颗决策树时,随机抽取一定数量的候选属性,从中选择最合适的属性作为分裂节点。

 

3、随机森林算法框架

 

 具体步骤:

(1)从训练集中随机抽取一定数量的样本,作为每棵树的根节点样本;

(2)在建立决策树时,随机抽取一定数量的候选属性,从中选择最合适属性作为分裂节点;(决策树构造见《决策树分类算法及python代码实现案例》)

(3)建立好随机森林以后,对于测试样本,进入每一颗决策树进行类型输出或回归输出;若是分类问题,以投票的方式输出最终类别,若是回归问题,

    每一颗决策树输出的均值作为最终结果。

 

在建立每一棵决策树的过程中,有两点需要注意:采样完全分裂

首先是两个随机采样的过程,随机森林对输入的数据要进行行、列的采样。对于行采样,采用有放回的方式,也就是在采样得到的样本集合中,可能有重复的样本。

假设输入样本为N个,那么采样的样本也为N个。这样使得在训练的时候,每一棵树的输入样本都不是全部的样本,使得相对不容易出现过拟合over-fitting。

然后进行列采样,从M个feature中,选择m个(m << M)。之后就是对采样之后的数据使用完全分裂的方式建立出决策树,这样决策树的某一个叶子节点要么是无

法继续分裂的,要么里面的所有样本的都是指向的同一个分类。

一般很多的决策树算法都一个重要的步骤 – 剪枝,但是这里不这样干,由于之前的两个随机采样的过程保证了随机性,所以就算不剪枝,也不会出现over-fitting。

每一棵决策树就是一个精通于某一个窄领域的专家(因为我们从M个feature中选择m让每一棵决策树进行学习),这样在随机森林中就有了很多个精通不同领域的专家,

对一个新的问题(新的输入数据),可以用不同的角度去看待它,最终由各个专家,投票得到结果。

 

4、可优化的参数

决策树算法中可优化的参数有:最小叶节点样本数、剪枝方式等。

随机森林中可优化的参数有:森林中决策树的棵数。

 

以上是关于随机森林(分类与回归)的主要内容,如果未能解决你的问题,请参考以下文章

分类算法 - 随机森林

使用 OpenCV 随机森林进行回归

随机森林原理

具有分类输入的回归树或随机森林回归器

决策树与随机森林

Bagging策略和随机森林的应用以及线性回归与局部加权回归三种实例(线性回归AdaBoostGradientBoostingRegressor)机器学习