前面两篇文章已经对决策树进行了一个简单的介绍,也介绍了两个包,那么今天我们介绍题目中的另外一个概念:森林。既然树已经理解了,那么森林不就一样么。

俗话说:独木不成林(PS:榕树除外),那么森林自然就是很多很多颗树咯,比如十一黄金周时候的故宫……

白话空间统计二十八:基于森林的分类和回归(4)

看到这里,同学们可能会问:what are you 弄撒捏?搞这么出来干嘛?一棵树不就完了么:

白话空间统计二十八:基于森林的分类和回归(4)

OK,正如有一个同学问我的这样一个问题:

白话空间统计二十八:基于森林的分类和回归(4)

白话空间统计二十八:基于森林的分类和回归(4)

人力有穷,机器的能力,理论上是无穷的,那么数据的数量理论也是无穷的……这样看来,无穷的算力+无穷的数据,就会变成一颗无穷大的树……

把所有数据都加入到一个算法里面进行计算,无非就两种结果:

1、数据量太大,超过了当前系统的处理能力,game over:

白话空间统计二十八:基于森林的分类和回归(4)

2、系统足够强大,生成出了一个全枝全叶的树木,而且是极其庞大的树木,那么计算量上面自然就:

白话空间统计二十八:基于森林的分类和回归(4)

而且生成出来之后,你发现你的判断模型是严重过拟合的:

白话空间统计二十八:基于森林的分类和回归(4)

做一件事,最怕的不是做不出来,而是连问题都提不出来,现在既然已经知道了问题,那么又如何解决呢?

在2001年的时候,美国著名统计学家,加州伯克利大学的Leo Breiman提出了随机森林算法

白话空间统计二十八:基于森林的分类和回归(4)

所谓的森林,就是由多棵决策树组成,那么这些树怎么来的呢?这就是随机算法中的随机一词的来由:

所谓的随机森林算法,就是在你需要计算的数据中,随机选取变量和样本进行决策树生成,生成很多颗树(组成所谓的森林),然后在对分类的结果进行汇总(集成学习)。

随机森林主要解决的就是上面提出的两个关键问题,所以它有如下优势:

  1  

随机森林可以很有效的运行在大数据集上面,基本上不会出现因为系统能力不足而导致game over的问题。

白话空间统计二十八:基于森林的分类和回归(4)

  2  

不显著增加计算的同时,有效的提高了预测的精度

白话空间统计二十八:基于森林的分类和回归(4)

  3  

可以有效的处理高维数据,而且不用做特征选择,也不用降维

白话空间统计二十八:基于森林的分类和回归(4)

  4  

特别容易适配各种数据,不管是连续数据还是分类数据,不挑食

白话空间统计二十八:基于森林的分类和回归(4)

  5  

随机特性的引入,第一不容易陷入过拟合的状态,第二具有良好的抗噪性

白话空间统计二十八:基于森林的分类和回归(4)

(无处不在的班主任,学生的噩梦啊)

  6  

它能够评估每个特征的重要性……实际上这个是回归分析的一个重要特性,回归的主要思想之一,就是描述各个自变量对因变量的贡献,随机森林作为分类回归的一种实现,也自然拥有这种特性

白话空间统计二十八:基于森林的分类和回归(4)

                          

  7  

可以有效的检测各个特性之间的相关关系。

白话空间统计二十八:基于森林的分类和回归(4)

                           

  8  

它很容易实现以及实现成并行计算的模式。

白话空间统计二十八:基于森林的分类和回归(4)

                        

另外随机森林还有很多很多的优势,大家有兴趣的可以去阅读相关的文献。说了这么多,实际上总结起来就是下面几句话:

码农联盟提醒

优势千万条,方便第一条

实现不容易,码农两行泪

正因为随机森林有那么的优势,所以它的使用范围也非常之广,几乎涵盖了所有的分类和回归的领域,你几乎可以把任意结构任意内容的数据都扔进去,他都可以发挥作用,所以被称为机器学习中的多面手。而且他不想SVM那样,有各种复杂的参数需要调整,所以称为机器学习算法中性价比最高的算法之一。

那么这个算法具体的实现过程是怎么样的呢?我们下期继续。

待续未完。

相关文章: