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

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

 

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

640?wx_fmt=jpeg

 

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

 

01
随机

 

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

640?wx_fmt=jpeg

 

02
有放回

 

 

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

640?wx_fmt=jpeg

 

03
OOB Out Of Bag ,袋外数据)

  

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

640?wx_fmt=jpeg

 

 

 

04
投票

  

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

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

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

640?wx_fmt=jpeg

 

 

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

 

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

 

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

 

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

640?wx_fmt=jpeg

 

 

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

 

随机选择:

 

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

640?wx_fmt=jpeg

 

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

 

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

 

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

  

 

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

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

https://github.com/allenlu2008/PythonDemo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虾神说D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值