龙空技术网

三分钟了解随机森林算法

volcano99 315

前言:

眼前朋友们对“随机森林算法java”大概比较着重,小伙伴们都想要知道一些“随机森林算法java”的相关资讯。那么小编也在网络上搜集了一些有关“随机森林算法java””的相关内容,希望我们能喜欢,你们快快来了解一下吧!

决策树模型容易产生一个过于复杂的模型,这样的模型对数据的泛化性能(指对非训练集的样本预测的准确性)会很差。这就是所谓的过拟合。形象的说就是一棵决策树容易发生“树大招风,矫枉过正”的问题。一些策略像剪枝、设置叶节点所需要的最小样本数或者设置数的最大深度就是避免出现该问题的有效方法。

随机森林也是为了解决上述问题应运而生的,运用集成思想中的Bagging思想,通过自助采样的方法生成众多并行式的分类器,然后使用“少数服从多数”或“平均”的原则来确定最终的结果。

要理解随机森林算法,必须先理解决策树算法。决策树我在前面的文章已经有所介绍,只要理解了决策树算法,随机森林就不难理解。森林就是指有多棵决策树共同决策;随机则是指每棵决策树是从训练集中随机抽取固定数量的样本和固定数量的特征构建。比如有m个样本,n个特征的数量集,从中有放回的抽出i个样本(i<m),j个特征(j<n),共抽取k次,这样就可以构建k棵决策树。再通俗点就是从一张m×n的表中抽取i行j列来构建森林中的决策树。值得注意的是,由于是放回抽样,部分样本及特征会在不同的决策树中用到。

每棵决策树都会产生一个结果,如果是分类问题,最终结果则是则采取“少数服从多数”的原则确定;如果是回归问题,最终结果则采取求平均的原则确定。

随机森林示意图

随机森林算法的具体步骤:

1.预设模型的超参数,如几棵树?分几层?

2.随机采样,训练每个决策树。

3.输入待测样本到每棵树中,再将每棵树的结果按“少数服从多数”或“求平均”的原则整合。

随机森林算法流程示意图

随机森林只要理解了思路,具体实施与决策树相类似,本文不再重复,有需要的可参考我前面的文章。

最后聊聊随机森林的优缺点。

优点:

1.可以处理很高维度(特征很多)的数据,并且不用降维,无需做特征选择。

2.可以判断特征的重要程度。

3.可以判断出不同特征之间的相互影响。

4.不容易过拟合。

5.训练速度比较快,容易做成并行方法。

6.实现起来比较简单。

7.对于不平衡的数据集,可以平衡误差。

8.如果有很大一部分数据特征遗失,仍可以维持准确度。

缺点:

1.随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合。

2.对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产生的属性权值是不可信的。

水平有限,希望大家多多批评指正。

标签: #随机森林算法java