0
点赞
收藏
分享

微信扫一扫

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


上篇文章说了好多好多随机森林的优势,那么到底随机森林这种东西,到底是怎么搞出来的呢?那么今天这篇文章,我们来讲讲随机森林的实现算法。 

随机森林是Bagging(自举聚集法Bootstrap Aggregating的英文缩写)思想的一种实现,从名字就可以看出来袋装……

白话空间统计二十八:基于森林的分类和回归(5)_数据集

 

那么他的算法实现,有以下几个关键字:

01随机

首先是要在原始数据集上,随机的抽取K个样本,组成新的数据集,这个新的数据集就是用来做训练的数据集:


白话空间统计二十八:基于森林的分类和回归(5)_随机森林_02

 


02有放回

随机抽样的时候,采用的是有放回的模式,也就是某一条数据可能会被重复的抽样,这样就保证了抽样过程所有模型分类结果上的概率都是相同的。

白话空间统计二十八:基于森林的分类和回归(5)_数据集_03

 


03


OOB ( Out Of Bag ,袋外数据)


算法的思想叫做袋装法,但是抽样不可能把所有数据都加入运算,Bagging的采样中,每轮大约有36.8%的数据,不会被采样采中,那么这些数据就叫做袋外数据,这些没有参与模型训练的数据,就可用它来对模型的泛化能力进行检验。

白话空间统计二十八:基于森林的分类和回归(5)_数据_04

 

 

 


04投票

  

生成多颗树之后,对样本进行分类的时候,可能会得出多个结果,算法就会采用最简单的投票法:

如果是分类问题,得票最多的类别作为最终结果;

如果是回归问题,那么所有结果的平均数作为结果。

白话空间统计二十八:基于森林的分类和回归(5)_数据集_05

 

 

只要理解了Bagging,那么随机森林就很好理解了,随机森林就是Bagging思想的一种实现,只是在一些细节上做了直接的规定与设计:

 

弱分类器:随机森林算法采用了CART树(Classification And Regression Tree 二分决策树)作为弱学习分类器。

 

那么啥叫弱分类器呢?弱分类器从名字上就可以看出,弱指的是分类的能力,结构简单,容易构造,当然也容易错,所以叫做弱。有弱自然就有强,强分类器的构造负责,分类能力也强,结果也准确得多。

 

而一般强分类器是由多个弱分类器组合而成:

白话空间统计二十八:基于森林的分类和回归(5)_数据_06

 

 

这个特征,成为随机森林的主要特征,业界在习惯上,把采用CART树的作为弱学习器的Bagging方法,就叫做随机森林。 

随机选择:

随机森林会对特征也进行随机选择,而Bagging是采用全部特征进行构建决策树的。随机选择特征值,归类到数据结构上,也就是随机去选择列:

白话空间统计二十八:基于森林的分类和回归(5)_数据集_07

 

随机森林用的CART树只会去随机选择一部分特征来进行建模,这个数量一般是总特征数目的开方。

以上两点,就是随机森林针对Bagging算法的最核心的区别,关于更多的算法,大家请参阅相关文档,下面进入实现时间:

 

白话空间统计二十八:基于森林的分类和回归(5)_数据_08

白话空间统计二十八:基于森林的分类和回归(5)_数据集_09

白话空间统计二十八:基于森林的分类和回归(5)_数据_10

白话空间统计二十八:基于森林的分类和回归(5)_数据_11

   

说到这里,算法部分就暂时告一段落了,机器学习目前是比较前沿的内容,网络上的资源也汗牛充栋,我这里的内容也大多数是拾人牙慧,所以下一篇准备讲讲在ArcGIS里面怎么用,讲完就暂时停掉这一节,如果有更多的需求,大家可以关注一些互联网上的资料。

代码和数据,请大家到虾神的github上面下载:

​​https://github.com/allenlu2008/PythonDemo​​

举报

相关推荐

0 条评论